软工概论-课堂练习:添加信息

题目要求:

设计思路:

对于该设计,主要使用两个jsp页面编码,一个java文件,其余java文件是定义相关变量与方法的,具体可参考下述代码。对于该设计首先使用jsp进行编码设计,设计出基本的框架,对“保存”按钮类型定义成submit,进行页面的跳转,跳转到接收上述文本框输入的内容jsp页面,在这个页面接收文字信息,并且使用这些文字信息(即将要添加到数据库的)进行数据库的插入操作,首先按照要求判断是否符合题目要求(注意使用Str.equals()而不是用==),具体判断用到了字符串取字符的函数.charAt(i)。具体方法如下:

最后进行数据库的链接操作即可。数据库和表格在后台提前创建好即可。

源码:

第一部分:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script>
function toregister()
{
window.location.href="addInput.jsp";
}
function xiaochutishi1()
{
document.getElementById("mm").innerHTML="";
}
function xiaochutishi2()
{
document.getElementById("mjh").innerHTML="";
}
function xiaochutishi3()
{
document.getElementById("m").innerHTML="";
}
function xiaochutishi4()//消除提示的函数
{
document.getElementById("jh").innerHTML="";
}
function tishi1()
{
var s=document.getElementById("username").value;
if(s.length==0)
{
document.getElementById("mm").innerHTML="请输入用户名!";
}
}
function tishi2()
{
var s=document.getElementById("password").value;
if(s.length==0)
{
document.getElementById("mjh").innerHTML="请输入密码!";
}
}
function tishi3()
{
var s=document.getElementById("nickname").value;
if(s.length==0)
{
document.getElementById("m").innerHTML="请再次输入密码!";
}
}
function tishi4() //这是判断手机号是不是十一位的不是则提示
{
var s=document.getElementById("phone").value;
var panduan=new RegExp("^0?1\\d{10}$","");
if(!panduan.test(s))
{
document.getElementById("j").innerHTML="请输入正确的手机号码!";
}
}

</script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册页面</title>
</head>
<h1 style="font-family:华文新魏;font-size:5em">REGISTER </h1>
<body bgcolor=#FFE4C4> <!-- <%=request.getAttribute("error") %></div> 这是提示错误的 就是那个null -->
<form action="add.jsp" method="post">
<table align="center" border="0" width="500">
<tr>
<td style="font-family:华文新魏;font-size:2em" align="right">课程名称 : </td>
<td>
<input id="username" style="width:200px;height:30px;" type="text" name="username" onfocus="javascript:xiaochutishi1();" onblur="javascript:tishi1();" /> <!-- style="width:200px;height:30px;"是设置文本框大小的 -->
</td>
<td id="mm" style="width:180px"></td>
</tr>

<tr>
<td style="font-family:华文新魏;font-size:2em" align="right">任课教师 :</td>
<td>
<input id="password" style="width:200px;height:30px;" type="text" name="password" onfocus="javascript:xiaochutishi2();" onblur="javascript:tishi2();"/>
</td>
<td id="mjh"></td>
</tr>

<tr>
<td style="font-family:华文新魏;font-size:2em" align="right">上课地点 :</td>
<td><input id="nickname" style="width:200px;height:30px;" type="text" name="nickname" onfocus="javascript:xiaochutishi3();" onblur="javascript:tishi3();"/></td>
<td id="m"></td>
</tr>

<tr><td style="width:200px;height:30px;"></td></tr> <!-- 加了一个自己设置的高度的空行 -->
<tr align="center">
<td colspan="2">
<input style="width:200px;height:30px;" type="submit" value="保存"/>
</td>
</tr>

</table>
</form>
</body>
</html>

第二部分:

<%@page import="com.jaovo.msg.Util.UserException"%>
<%@page import="com.jaovo.msg.dao.UserDaoImpl"%>
<%@page import="com.jaovo.msg.model.User"%>
<%@ page import="javax.swing.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%
//接收客户端传递过来的参数
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
String nickname = request.getParameter("nickname");
System.out.println(username+password);
//String phone = request.getParameter("phone");
//String email = request.getParameter("email");
if(username == null || "".equals(username.trim())){
{request.setAttribute("error", "用户名不能为空");} //下面的一句话是若姓名为空则显示并跳转到addinput 也可以跳转到本界面
%>
<jsp:forward page="register.jsp"></jsp:forward>
<%
}
User user = new User();
user.setUsername(username);
user.setPassword(password);
user.setNickname(nickname);
//user.setPhone(phone);
//user.setEmail(email);
int i=8;
UserDaoImpl userDao = new UserDaoImpl();

try{
/*char[] a=new char[11];
int sum=0;
for(int f=0;f<11;f++)
{
a[f]=phone.charAt(f);
if(a[i]>=48&&a[i]<=57) ++sum;
}
if(phone.length()!=11||a[0]!=49){*/
int m=0;int n=0;
if((user.getNickname().charAt(0)==‘一‘||user.getNickname().charAt(0)==‘二‘||user.getNickname().charAt(0)==‘三‘||user.getNickname().charAt(0)==‘基‘)&&user.getNickname().charAt(1)==‘教‘)
n=1;
if((user.getPassword().equals("王建民") || user.getPassword().equals("刘立嘉") ||
user.getPassword().equals("刘丹") ||user.getPassword().equals("王辉") ||
user.getPassword().equals("杨子光"))&&n==1)
{
i=userDao.add(user);
if(i==4)
%>

保存成功!!<br>
<%
}
else
{
%>
输入有误!<br>
<%

}
%>

<a href="register.jsp">继续添加</a><br>
<a href="addInput.jsp">进行登录</a>
<%
}catch(UserException e){
%>
<h2 style="color:red ; font-size:50px">发生错误 : <%=e.getMessage() %></h2>
<%
}
%>
</html>

第三部分:

package com.jaovo.msg.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.jaovo.msg.Util.DBUtil;
import com.jaovo.msg.Util.UserException;
import com.jaovo.msg.model.User;

import sun.net.www.content.text.plain;

public class UserDaoImpl implements IUserDao {

@Override
public int add(User user) {
//获得链接对象
Connection connection = DBUtil.getConnection();
//准备sql语句
String sql = "select count(*) from t_user1 where password = ?";
//创建语句传输对象
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, user.getPassword());//给问好赋值 第一个问号
//接收结果集
resultSet = preparedStatement.executeQuery();
//遍历结果集
while(resultSet.next())
{
if (resultSet.getInt(1) > 0) {
return 0;//("用户已存在") ;
}
}
String sql1 = "insert into t_user1(username,password,nickname) value(?,?,?)";
preparedStatement = connection.prepareStatement(sql1);
System.out.println("libusa");
preparedStatement.setString(1, user.getUsername());
preparedStatement.setString(2, user.getPassword());
preparedStatement.setString(3, user.getNickname());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally {
//关闭资源
DBUtil.close(resultSet);
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}
return 4;

}

运行结果:

错误:

正确的:

mysql表中内容前后对比:

按照PSP0级的要求记录开发过程中的项目计划日志、时间记录日志、缺陷记录日志:

1.                                                                                                                   周活动总结表

姓名:马佳慧                                                   日期:2017/11/28


日期\任务


听课


编程


阅读课本


日总计


周日


180


30


210


周一


180


100


280


周二


100


120


50


270


周三


180


50


230


周四


180


50


230


周五


100


120


30


250


周六


560


120


680


周总结


760


1080


340


1150

单位:min

2.                                                                                                           时间记录日志

学生:马佳慧                                            日期:2017/11/28

教师:王建民                                            课程:软件工程概论


日期\时间


开始时间


结束时间


中断时间


净时间


活动


备注


11/25


9:00


11:30


10:30


120分钟


听课


课间


14:00


17:30


15:30


140分钟


听课


课间休息


11/26


9:30


12:00


10:40


100分钟


练习


中场休息


14:30


18:00


16:00


200分钟


练习


中场休息(自习)


11/27


18:00


21:30


22:00


150分钟


写作业,练习,提交作业


熟悉使用GitHub


11/28


8:00


10:00


8:50/9:50


100分钟


听课,小测


课间


13:00


19:00


15:00


180分钟


改错,补充,写总结


导员开报作业等

单位:min

3                                                                                                           .缺陷记录日志

学生:马佳慧                                            日期:2017/11/28

教师:王建民                                            课程:软件工程概论


日期\时间


编号


类型


引入阶段


排除阶段


修复时间


修复缺陷


11/28


1


91


编码


编译


3min


描述:在判断上课地点是否以指定中文开头时出错


2


40


编码


编译


10min


描述:try......catch......finally语句的处理


3



编码


doc命令行


60min


描述:doc命令行不接受中文,在数据库中插入时并不能识别,以至于插不进去或者乱码


4


20


编码


编译


5min


描述:在jsp界面编写时,在<%    %>中漏掉了分号“;”

时间: 2024-10-10 15:34:35

软工概论-课堂练习:添加信息的相关文章

软工概论第一周动手动脑

一.需要网站系统开发需要掌握的技术 1.java语言 面向对象思想 设计模块和框架思想 xml语言 网页脚本语言 数据库 应用服务器 集成开发环境 二.本次课堂测试的源程序代码 //登录页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3

软工概论——1

1.需要的技术: WEB前端: AJAX全称为"Asynchronous JavaScript and XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. jQuery是继prototype之后又一个优秀的Javascrīpt框架,jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents.events.实现动画效果,并且方便地为网站提供AJAX交互. API(Application Programmi

软工概论第二周个人项目四则运算二(改进)

设计思想: 设计思想:输出表达式的个数n,利用随机数方法产生小于100的随机数,用for循环产生多个随机数,然后在进行判断,判断两个证书的和小于100,差大于0,乘积小于100,能够整除如果不符合要求则跳过本次循环,如果符合则赋值当总数到n时跳出循环,用字符串保存表达式,用double类型的数组保存正确结果,然后循环输出表达式,输入结果后跳转到判断结果界面,循环判断结果,如果相等flag[]为1,不等为0,最后给出正确的题目数量和错误的数量和未作的数量,在循环输出不正确的那些题目 改进的地方:表

二、软工个人项目:文本信息统计器

本软件的代码:https://github.com/amekao/SE_work1 界面: 一.需求分析阶段: 需求分析: 总需求:需要用户在cmd运行程序,根据所输入的参数提供对应的计算模式 基本功能: -c -w -l 显示字符数,词数,行数 拓展功能:-a 显示具体行数, -s 可以递归遍历指定目录下的文件 高级功能: -x 弹出界面让用户选择要统计的文本,显示所有的信息 二.设计阶段: 考虑到python语言对文本操作提供了较好的接口,而且文件编码也比较丰富,因此决定使用python来完

1-4软工概论

软件工程 过程 软件规格说明P(计划):规定软件的功能及其运行限制 软件开发D(做,实现):产生满足规格说明的软件 软件确认C(检查.测试调试维护运行):测试调试维护运行,确认软件能够完成客户提出的要求 软件的改进A(维护):按客户要求适当改进. 软件生存周期 提出问题--不用(从开始提出要做该软件开始一直到废弃不用,这段时间就是生存周期) 这期间,每个阶段都要产生相应的文档: 1.制定计划: 确定开发总目标,提出功能.性能.可靠性以及接口等方面的需求要求. 编写:可行性研究报告.项目开发计划.

软工实践之团队项目

我们的队名: Clean Code 031302511 林培兴 031302623 张衍坤 031302223 翁翰帅 031302536 苏丽玲 031302505 黄晓辉(组长) 团队项目描述: 校园通 团队成员介绍:    林培兴:我和组长是结对项目中的队友,在结对项目中,我们很好地合作分工,结对作业也取得不错的成绩.我有一定的Java基础,软工实践以来,也开始在努力学习安卓,在安卓编程方面有一定的进步.在我们的队伍中,我的定位主要是编程方面,负责我们项目的一部分模块的编程任务. 张衍坤:

夏季学期软工综合实践小记(二)

短学期的软工实践前五天的学习结束了,虽然在课堂中我们学到了很多以前从未接触过的如:JDBC.Java Servlet等框架,XML语言和简单的网页制作语句的浅析,亦或是通过编程语言实现网页与数据库内容的桥接和使用等内容,但时间上总体来讲还是较为紧迫,加上很多基础的知识如网页制作技术.语句的使用和语法规则并未先修相关课程,这就造成很多基础内容都需要讲师在课堂上现场普及.虽然编程语句和逻辑与之前所学的相差不多,但一天的学习下来因为内容量大,并且整个工程在实际运作时会在多个文件之间跳转调用,实际理解起

软工总结博客

本学期是我大学这三年中最忙碌的一个学期,因为编译大作业.数据库大作业和软工项目都集中在了这一个学期中,在这个学期里我也第一次有了通宵码代码调程序的“可怕”经历.在我们的团队项目中,我担当的是主力的前端程序员,主要负责对往届的前端代码进行重构.在M1阶段中,我对往届的代码进行了认真的分析,在他们的代码逻辑基础上结合最新的android技术进行代码的重构.重构的任务比较重,我也为这项任务通宵过.在M1阶段中,我们团队的另外两位同学对后端进行修改,从而成功地支持了我前端的各类功能.虽然还有一些功能没有

第一次软工实践体会

不知不觉,软工实践小学期已经进行了三天,一开始,老师就明确了我们最终要做出什么:一个客户信息维护软件 首先,我们需要安装编写软件的环境:my eclipse Java enterprise 要说明的是my eclipse和之前我们学习java语言所用的eclipse稍有出入MyEclipse企业级工作平台(My Eclipse Enterprise Workbench,简称MyEclipse)是对EclipseIDE的扩展,利用它可以在数据库和J2EE的开发.发布,以及应用程序服务器的整合方面极