Javaweb学生管理系统期末设计

学生管理-描述文档

有需要参考的可以进入,项目下载地址。
一:功能描述
该项目实现了以下功能:
 页面包括展示信息和管理信息两部分,并且实现了图片验证登录
 通过连接数据库并执行SQL语句实现对数据库的增、删、查、改
 使用DBUtils数据库工具(QueryRunner)
 页面基本美观且合理
 设置了过滤器解决乱码问题,并实现了退出返回主页
下面是部分截图:
1.主页
Javaweb学生管理系统期末设计_第1张图片
2.登录界面
Javaweb学生管理系统期末设计_第2张图片
3.登录成功
登陆时调用登录doLogin,该Servlet完成相应的逻辑操作(判断用户名、密码、验证码是否为空)、并且调用相应的BaseDao数据库访问层的相应组件,完成登陆校验,然后将结果返回给视图层 ,视图层提供给用户,以界面的形式展示。
Javaweb学生管理系统期末设计_第3张图片
4.修改
Javaweb学生管理系统期末设计_第4张图片
5.查看
Javaweb学生管理系统期末设计_第5张图片
6.添加
Javaweb学生管理系统期末设计_第6张图片
7.删除
Javaweb学生管理系统期末设计_第7张图片
二:实现方法
①实现该项目涉及的知识有:
HTML,CSS,JavaScript,MySQL数据库,JSP指令,JSP对象,JavaBean,JDBC,EL和JSTL,Servlet,Filter过滤器等最基本的知识。使用了JavaBean+JSP+Servlet开发模型,就是Model+View+Controller,即MVC设计模式。
Javaweb学生管理系统期末设计_第8张图片
②主要的思想和方法
• 继承HTTPServlet父类重写 doGet() 和doPost()方法
• 使用request.getParameter(String str); 获取前台(页面)的数据(获取参数)
• 给前台页面设置值用:request.setAttribute(String args, Object obj);
• Jsp重定向,使用的是HttpServletResponese对象中response.sendRedirect(Sting location)方法。是一个响应对象的方法,调用这个方法,表明整个请求已经结束。
• 请求转发,是javax.servlet.RequestDispatcher接口的forward(“”)方法来实现的。
③设计流程:
Servlet -> Service(业务类) -> DAO -> database
当浏览器提交请求到 Tomcat Web 服务器的时候,对应的 Servlet 的doGet/doPost 方法会被调用,接着在 Servlet 中调用 Service类,然后在 Service 类中调用DAO类,最后在 DAO 中访问数据库获取相应的数据。
Javaweb学生管理系统期末设计_第9张图片
**④实现该项目我所做的基本步骤:**需求分析,软件设计,编码及实现,美化以及完善。
首先需要搭建数据库,实现学生和老师实体类,这里不做具体描述。
1.数据库操作的基类BaseDao,实现连接、查询、释放资源,下面是部分代码:

try {
			Class.forName("com.mysql.jdbc.Driver");
			String url = "jdbc:mysql://localhost:3306/Student";
			String username = "root";
	    	String password = "123";
connection = DriverManager.getConnection(url, username, password);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			return false;
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}

2.定义学生操作的接口StudentDao,下面是部分代码:

public interface StudentDao {
	//获取所有学生信息
	public List getAllStudent();
	//获取指定学生信息
	public Student getStudentMoreInfo(Student student);
	//添加学生
	public int addStudent(Student student);
	//删除学生
	public int delStudent(Student student);
	//修改学生信息
	public int modifyStudent(Student student);
}

3.实现接口StudentDao,获取所有学生信息部分代码:

List list = new ArrayList();
		String sql = "select `id`,`name`,`gradeId`,`age`,`sex`,`profile` from student ";
		Object[] params = {};
		ResultSet rs = this.executeQuerySQL(sql, params);
		try {
			while (rs.next()) {
				Student stu = new Student();
				stu.setId(rs.getInt("id"));
				stu.setAge(rs.getInt("age"));
				stu.setGradeId(rs.getInt("gradeId"));
				stu.setSex(rs.getString("sex"));
				stu.setName(rs.getString("name"));
				stu.setProfile(rs.getString("profile"));
				list.add(stu);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}

下图为查询方法以及步骤:
Javaweb学生管理系统期末设计_第10张图片
4. 实现接口StudentDao,获取指定学生信息部分代码:

Student stu = new Student();
String sql = "select `name`,`gradeId`,`age`,`sex`,`profile` from student where `id`=?";
Object[] params = { student.getId() };
ResultSet rs = this.executeQuerySQL(sql, params);
try {
	while (rs.next()) {
		stu.setAge(rs.getInt("age"));
		stu.setGradeId(rs.getInt("gradeId"));
		stu.setSex(rs.getString("sex"));
		stu.setName(rs.getString("name"));
		stu.setProfile(rs.getString("profile"));
	}
} catch (SQLException e) {
	e.printStackTrace();
}

5 实现接口StudentDao,添加学生部分代码:

int row = 0;
		String sql = "insert into student(`id`,`name`,`age`,`sex`,`gradeId`,`profile`) values(?,?,?,?,?,?)";
		Object[] params = {student.getId(),student.getName(),student.getAge(),student.getSex(),student.getGradeId(),student.getProfile()};
		row = this.executeUpdateSQL(sql, params);
		if(row>0){
			System.out.println("增加学生成功");
		}else{
			System.out.println("增加学生失败");
		}
		return row;

删除学生和添加学生操作类似,这里不再做具体描述。
6. 下面是处理登录的Servlet,用来处理登录请求,部分代码如下:

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String userName = request.getParameter("username");
		String password = request.getParameter("password");
		String checkCode = request.getParameter("check_code");
		String savedCode = (String) request.getSession().getAttribute(
				"check_code");
if(userName!=null && !userName.equals("")&& checkCode.equals(savedCode)){
			UserService uerService = new UserServiceimp();
			User user = new User();
			user.setUsername(userName);
			user.setPassword(password);
			if(uerService.findUser(user)){//存在这个用户,可以正常访问学生信息
				request.getSession().setAttribute("user", user);
				response.sendRedirect("/Student/pages/stuList.jsp");
}else {//不存在这个用户,给出提示,转回登录页面
				String message = "用户名或密码错误";
				request.getSession().setAttribute("msg", message);
				response.sendRedirect("/Student/login.jsp");
			}
		}else {
			//判断验证码是否正确
			String message = "验证码输入错误!!!";
			request.getSession().setAttribute("msg", message);
			response.sendRedirect("/Student/login.jsp");
		}
			}
  1. 下面是addStudent Servlet类实现添加学生到数据库的部分代码,其他不做详细描述:

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

     	String name = request.getParameter("stuName");
     	String sex = request.getParameter("sex");
     	int age = Integer.parseInt(request.getParameter("stuAge"));
     	String gradeName = request.getParameter("stuGrade");
     	String profile = request.getParameter("showProfile");
     	
     	
     	GradeService gService = new GradeServiceimp();
     	Grade grade = gService.getGrade(gradeName);
     	
     	Student stu = new Student();
     	stu.setName(name);
     	stu.setAge(age);
     	stu.setSex(sex);
     	stu.setProfile(profile);
     	stu.setGradeId(grade.getGradeId());
     	
     	StudentService studentService = new StudentServiceimp();
     		
     		String opr = request.getParameter("opr");//根据传的opr参数决定是添加学生还是修改学生信息
     		int n = 0;
     		if(opr.equals("addStu")){ //添加
     			n = studentService.addStudent(stu);
     		}else if(opr.equals("modifyStu")){//修改
     			int id = Integer.parseInt(request.getParameter("stuId"));
     			stu.setId(id);
     			n = studentService.modifyStudent(stu);
     		}			
     		if(n>0){
     			response.sendRedirect("/Student/pages/stuList.jsp");
     		}else{
     			response.sendRedirect("/Student/pages/addStu.jsp");
     		}
     	}
    

此外,jsp中使用了css来统一控制样式,用JavaScript在本地处理一些简单的判断,例如:


                    
                    

你可能感兴趣的:(JavaEE,作品)