题目要求:
设计思路:
对于该设计,主要使用两个jsp页面编码,一个java文件,其余java文件是定义相关变量与方法的,具体可参考下述代码。对于该设计首先使用jsp进行编码设计,设计出基本的框架,对“保存”按钮类型定义成submit,进行页面的跳转,跳转到接收上述文本框输入的内容jsp页面,在这个页面接收文字信息,并且使用这些文字信息(即将要添加到数据库的)进行数据库的插入操作,首先按照要求判断是否符合题目要求(注意使用Str.equals()而不是用==),具体判断用到了字符串取字符的函数.charAt(i)。具体方法如下:
最后进行数据库的链接操作即可。数据库和表格在后台提前创建好即可。
源码:
第一部分:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
REGISTER
第二部分:
<%@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"%>
<%
//接收客户端传递过来的参数
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 也可以跳转到本界面
%>
<%
}
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)
%>
保存成功!!
<%
}
else
{
%>
输入有误!
<%
}
%>
继续添加
进行登录
<%
}catch(UserException e){
%>
发生错误 : <%=e.getMessage() %>
<%
}
%>
第三部分:
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界面编写时,在<% %>中漏掉了分号“;” |