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

题目要求:

 

设计思路:

对于该设计,主要使用两个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界面编写时,在<%    %>中漏掉了分号“;”

 

posted @ 2017-11-28 18:42  小程大序的猿  阅读(302)  评论(0编辑  收藏  举报