web项目专项训练——学校管理系统代码分享

登录页面效果图

 

注册页面效果图

学生登录成功首页

修改密码页面效果图

修改用户信息页面效果图

管理员登陆成功首页

数据库表结构设计

用户表结构

管理员表结构

项目整体架构

dao层

package com.qf.dao;

import com.qf.vo.LoginUserVo;

public interface IAdminDao {
    public int login(LoginUserVo user);

    public int modifyPwd(String name, String newPwd);
}
package com.qf.dao;

import com.qf.entity.Student;
import com.qf.vo.LoginUserVo;

import java.util.List;

public interface IStudentDao {
    public int login(LoginUserVo user);

    public int register(Student stu);

    public int modifyPwd(String uname, String newPwd);

    public Student queryStudentByUname(String uname);

    public int modifyStudent(Student stu);

    public List<Student> queryStudentInformation();

    public int deleteStudentInformation(String uname);
}
package com.qf.dao.impl;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.qf.dao.IAdminDao;
import com.qf.vo.LoginUserVo;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.MapHandler;

import java.sql.SQLException;
import java.util.Map;

public class AdminDaoImpl implements IAdminDao {
	public QueryRunner qr=new QueryRunner(new ComboPooledDataSource());

	public int login(LoginUserVo user) {
		int result=0;
		try {
			String sql="select count(name) from admin where name=? and password=?";
			Map<String, Object> resultMap=qr.query(sql,new MapHandler(),user.getName() ,user.getPassword());
			result=Integer.valueOf(resultMap.get("count(name)").toString());
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return result;
	}

	public int modifyPwd(String name, String newPwd) {
		int result=0;
		try {
			String sql="update admin set password=? where name=?";
			result=qr.update(sql, newPwd,name);
		}catch (Exception e){
			e.printStackTrace();
		}
		return result;
	}

}
package com.qf.dao.impl;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.qf.dao.IStudentDao;
import com.qf.entity.Student;
import com.qf.vo.LoginUserVo;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class StudentDaoImpl implements IStudentDao {
	public QueryRunner qr=new QueryRunner(new ComboPooledDataSource());
	public int login(LoginUserVo user) {
		int result=0;
		try {
			String sql="select count(uname) from user where uname=? and pwd=?";
			Map<String,Object> resultMap=qr.query(sql,new MapHandler(),user.getName() ,user.getPassword());
			result=Integer.valueOf(resultMap.get("count(uname)").toString());
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return result;
	}
	
	public int register(Student stu) {
		int result= 0;
		try {
			String sql="insert into user(uname,pwd,nickname,phonenumber) values(?,?,?,?)";
			result = qr.update(sql, stu.getUname(),stu.getPwd(),stu.getNickname(),stu.getPhonenumber());
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return result;
	}

	public int modifyPwd(String uname, String newPwd) {

		int result= 0;
		try {
			String sql="update user set pwd=? where uname=?";
			result = qr.update(sql, newPwd,uname);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return result;
	}

	public Student queryStudentByUname(String uname) {
		Student stu=null;
		try {
			String sql="select uname,pwd,nickname,phonenumber from user where uname=?";
			stu=qr.query(sql,new BeanHandler<>(Student.class),uname);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return stu;
	}

	public int modifyStudent(Student stu) {

		int result= 0;
		try {
			String sql="update user set nickname=?,phonenumber=? where uname=?";
			result = qr.update(sql, stu.getNickname(),stu.getPhonenumber(),stu.getUname());
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return result;
	}

	public List<Student> queryStudentInformation() {
		List<Student> stus=new ArrayList<>();
		try {
			String sql="select uname,pwd,nickname,phonenumber from user";
			stus=qr.query(sql,new BeanListHandler<>(Student.class));
		} catch (Exception e) {
			e.printStackTrace();
		}
		return stus;
	}

	public int deleteStudentInformation(String uname) {
		int result= 0;
		try {
			String sql="delete from user where uname=?";
			result = qr.update(sql,uname);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return result;
	}


	

}

entity层

package com.qf.entity;

public class Admin {
	private String name;
	private String password;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}

package com.qf.entity;

public class Student {
	private String uname;
	private String pwd;
	private String nickname;
	private String phonenumber;
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public String getNickname() {
		return nickname;
	}
	public void setNickname(String nickname) {
		this.nickname = nickname;
	}
	public String getPhonenumber() {
		return phonenumber;
	}
	public void setPhonenumber(String phonenumber) {
		this.phonenumber = phonenumber;
	}
	
	@Override
	public String toString() {
		return "Student [uname=" + uname + ", pwd=" + pwd + ", nickname=" + nickname + ", phonenumber=" + phonenumber + "]";
	}
	
}

service层

package com.qf.service;

import com.qf.vo.LoginUserVo;

public interface IAdminService {
    int login(LoginUserVo user);

    int modifyPwd(String name, String newPwd);
}
package com.qf.service;

import com.qf.entity.Student;
import com.qf.vo.LoginUserVo;

import java.util.List;

public interface IStudentService {
    int register(Student stu);

    int login(LoginUserVo user);

    int modifyStudent(Student stu);

    int modifyPwd(String name, String newPwd);

    Student queryStudentByUname(String uname);

    List<Student> queryStudentInformation();

    int deleteStudentInformation(String uname);
}
package com.qf.service.impl;

import com.qf.dao.IAdminDao;
import com.qf.dao.impl.AdminDaoImpl;
import com.qf.service.IAdminService;
import com.qf.vo.LoginUserVo;

/**
 * @Author LXM
 * @Date 2020/3/30 0030
 */
public class AdminServiceImpl implements IAdminService {
    IAdminDao adminDao=new AdminDaoImpl();

    @Override
    public int login(LoginUserVo user) {
        return adminDao.login(user);
    }

    @Override
    public int modifyPwd(String name, String newPwd) {
        return adminDao.modifyPwd(name,newPwd);
    }
}
package com.qf.service.impl;

import com.qf.dao.IStudentDao;
import com.qf.dao.impl.StudentDaoImpl;
import com.qf.entity.Student;
import com.qf.service.IStudentService;
import com.qf.vo.LoginUserVo;

import java.util.List;

/**
 * @Author LXM
 * @Date 2020/3/30 0030
 */
public class StudentServiceImpl implements IStudentService {
    IStudentDao stuDao=new StudentDaoImpl();
    @Override
    public int register(Student stu) {
        return stuDao.register(stu);
    }

    @Override
    public int login(LoginUserVo user) {
        return stuDao.login(user);
    }

    @Override
    public int modifyStudent(Student stu) {
        return stuDao.modifyStudent(stu);
    }

    @Override
    public int modifyPwd(String name, String newPwd) {
        return stuDao.modifyPwd(name,newPwd);
    }

    @Override
    public Student queryStudentByUname(String uname) {
        return stuDao.queryStudentByUname(uname);
    }

    @Override
    public List<Student> queryStudentInformation() {
        return stuDao.queryStudentInformation();
    }

    @Override
    public int deleteStudentInformation(String uname) {
        return stuDao.deleteStudentInformation(uname);
    }
}

servlet层

package com.qf.servlet;

import cn.dsna.util.images.ValidateCode;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * Servlet implementation class CheckCodeServlet
 */
@WebServlet("/CheckCodeServlet")
public class CheckCodeServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		ValidateCode code=new ValidateCode(120, 30, 4, 2);
		
		String codeString=code.getCode();
		HttpSession session=request.getSession();
		session.setAttribute("checkCode", codeString);
		
		code.write(response.getOutputStream());
	}

}

package com.qf.servlet;

import com.qf.entity.Student;
import com.qf.service.IAdminService;
import com.qf.service.IStudentService;
import com.qf.service.impl.AdminServiceImpl;
import com.qf.service.impl.StudentServiceImpl;
import com.qf.vo.LoginUserVo;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

/**
 * Servlet implementation class CommonServlet
 */
@WebServlet("/CommonServlet")
public class CommonServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	IStudentService stuService=new StudentServiceImpl();
	IAdminService adminService=new AdminServiceImpl();

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		String method=request.getParameter("method");
		
		if("getStudentByName".equals(method)) {
			doGetStudentByName(request, response);
		}else if("modifyPwd".equals(method)) {
			doModifyPwd(request, response);	
		}else if("updateInformation".equals(method)) {
			doUpdateInformation(request, response);	
		}else if("login".equals(method)) {
			doLogin(request, response);	
		}else if("register".equals(method)) {
			doRegister(request, response);	
		}
	}

	/**
	 * 添加或注册学生信息的方法
	 * @param request
	 * @param response
	 * @throws IOException
	 */
	private void doRegister(HttpServletRequest request, HttpServletResponse response) throws IOException {
		Student stu=new Student();
		stu.setUname(request.getParameter("uname"));
		stu.setPwd(request.getParameter("pwd"));
		stu.setNickname(request.getParameter("nickname"));
		stu.setPhonenumber(request.getParameter("phonenumber"));
		
		String flag=request.getParameter("flag1");
		System.out.println(stu.toString());

		int result=stuService.register(stu);
		response.setContentType("text/html;charset=utf-8");
		if(result>0) {
			
			if("".equals(flag)||flag==null) {
				response.getWriter().write("添加成功!");
				response.setHeader("refresh", "3;url=qfonload.jsp");
			}else {
				response.sendRedirect("TeacherServlet?method=allStudent");
				
			}
		}else {
			response.getWriter().write("添加失败!");
			response.setHeader("refresh", "3;url=register.jsp");
		}
	}

	/**
	 * 学生或老师登录的方法
	 * @param request
	 * @param response
	 * @throws UnsupportedEncodingException
	 * @throws ServletException
	 * @throws IOException
	 */
	private void doLogin(HttpServletRequest request, HttpServletResponse response)
			throws UnsupportedEncodingException, ServletException, IOException {
		LoginUserVo user=new LoginUserVo();
		user.setName(request.getParameter("uname"));
		user.setPassword(request.getParameter("pwd"));
		user.setRole(request.getParameter("role"));
		System.out.println(user.toString());
		
		String rememberMe=request.getParameter("rememberMe");
		String code=request.getParameter("code");
		String checkCode=(String) request.getSession().getAttribute("checkCode");
		
		if(code.equalsIgnoreCase(checkCode)) {
			int result=0;
			if("student".equals(user.getRole())) {
				result=stuService.login(user);
			}else if("teacher".equals(user.getRole())) {
				result=adminService.login(user);
			}
			
			if(result!=0) {
				
				if("on".equals(rememberMe)) {
					Cookie c1=new Cookie("uname", URLEncoder.encode(user.getName(), "utf-8"));
					Cookie c2=new Cookie("pwd", user.getPassword());
					c1.setMaxAge(31536000);
					c2.setMaxAge(31536000);
					response.addCookie(c1);
					response.addCookie(c2);
				}
				
				
				request.getSession().setAttribute("user", user);
				request.getRequestDispatcher("programHomePage.jsp").forward(request, response);
				
				
			}else {
				response.setHeader("refresh", "3;url=qfonload.jsp");
			}
			
		}else {
			response.setHeader("refresh", "3;url=qfonload.jsp");
		}
	}

	/**
	 * 修改学生信息的方法
	 * @param request
	 * @param response
	 * @throws IOException
	 * @throws ServletException
	 */
	private void doUpdateInformation(HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {
		Student stu=new Student();
		stu.setUname(request.getParameter("uname"));
		stu.setPwd(request.getParameter("pwd"));
		stu.setNickname(request.getParameter("nickname"));
		stu.setPhonenumber(request.getParameter("phonenumber"));
		
		int result=stuService.modifyStudent(stu);
		
		if(result!=0) {
			response.getWriter().write("修改成功!");
			
			LoginUserVo user=(LoginUserVo) request.getSession().getAttribute("user");
			
			if("student".equals(user.getRole())) {
				request.getRequestDispatcher("programHomePage.jsp").forward(request, response);
				
			}else if("teacher".equals(user.getRole())) {
				response.sendRedirect("TeacherServlet?method=allStudent");
				
			}
		}
	}

	/**
	 * 修改学生或老师密码的方法
	 * @param request
	 * @param response
	 * @throws IOException
	 */
	private void doModifyPwd(HttpServletRequest request, HttpServletResponse response) throws IOException {
		response.setContentType("text/html;chartset=utf-8");
		LoginUserVo user=(LoginUserVo) request.getSession().getAttribute("user");
		String newPwd=request.getParameter("newPwd");
		
		int result=0;
		if("student".equals(user.getRole())) {
			result= stuService.modifyPwd(user.getName(),newPwd);
		}else if("teacher".equals(user.getRole())) {
			result= adminService.modifyPwd(user.getName(),newPwd);
			
		}
		if (result>0) {
			response.getWriter().write("修改成功!");
			response.setHeader("refresh", "3;url=qfonload.jsp");
		} else {
			response.getWriter().write("修改失败!");
			response.setHeader("refresh", "3;url=modifyPassword.jsp");
		}
	}

	/**
	 * 通过用户名得到学生或老师对象
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	private void doGetStudentByName(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		LoginUserVo user=(LoginUserVo) request.getSession().getAttribute("user");
		String uname=null;
		
		if("student".equals(user.getRole())) {
			uname=user.getName();
			
		}else if("teacher".equals(user.getRole())) {
			uname=request.getParameter("uname");
			
		}
		
		Student	stu=stuService.queryStudentByUname(uname);
		
		request.setAttribute("stu", stu);
		request.getRequestDispatcher("modifyUserInformation.jsp").forward(request, response);
	}

}

package com.qf.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * Servlet implementation class StudentServlet
 */
@WebServlet("/StudentServlet")
public class StudentServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		String method=request.getParameter("method");
		
		if("exit".equals(method)) {
			doExit(request, response);
		}
	}

	/**
	 * 注销学生用户的方法
	 * @param request
	 * @param response
	 * @throws IOException
	 */
	private void doExit(HttpServletRequest request, HttpServletResponse response) throws IOException {
		request.getSession().removeAttribute("user");
		response.sendRedirect("qfonload.jsp");
	}

}

package com.qf.servlet;

import com.qf.entity.Student;
import com.qf.service.IAdminService;
import com.qf.service.IStudentService;
import com.qf.service.impl.AdminServiceImpl;
import com.qf.service.impl.StudentServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * Servlet implementation class TeacherServlet
 */
@WebServlet("/TeacherServlet")
public class TeacherServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	IAdminService adminService=new AdminServiceImpl();
	IStudentService stuService=new StudentServiceImpl();

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		String method=request.getParameter("method");
		
		if("deleteStudent".equals(method)) {
			dodeleteStudent(request, response);
		}else if("allStudent".equals(method)) {
			doAllStudent(request, response);
		}else if("add".equals(method)) {//带个标记跳转到学生添加页面
			request.setAttribute("flag", "add");
			request.getRequestDispatcher("register.jsp").forward(request, response);
		}
	}
	
	/**
	 * 查询所有学生信息
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	private void doAllStudent(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		List<Student> stus=stuService.queryStudentInformation();
		
		request.setAttribute("stus", stus);
		request.getRequestDispatcher("manageStudent.jsp").forward(request, response);
	}

	/**
	 * 删除学生信息
	 * @param request
	 * @param response
	 * @throws IOException
	 * @throws ServletException 
	 */
	private void dodeleteStudent(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
		String uname=request.getParameter("uname");
		
		int result=stuService.deleteStudentInformation(uname);
		doAllStudent(request, response);
	}

}

vo层

package com.qf.vo;

public class LoginUserVo {
	private String name;
	private String password;
	private String role;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getRole() {
		return role;
	}
	public void setRole(String role) {
		this.role = role;
	}
	@Override
	public String toString() {
		return "LoginUserVo [name=" + name + ", password=" + password + ", role=" + role + "]";
	}
	
}

c3p0配置文件

#
# This file is detritus from various testing attempts
# the values below may change, and often do not represent
# reasonable values for the parameters.
#

#c3p0.testConnectionOnCheckout=true
#c3p0.testConnectionOnCheckin=true
#c3p0.minPoolSize=3
#c3p0.maxPoolSize=20
#c3p0.checkoutTimeout=2000
#c3p0.idleConnectionTestPeriod=5
#c3p0.maxConnectionAge=10
#c3p0.maxIdleTime=2
#c3p0.maxIdleTimeExcessConnections=1
#c3p0.propertyCycle=1
#c3p0.numHelperThreads=10
#c3p0.unreturnedConnectionTimeout=15
#c3p0.debugUnreturnedConnectionStackTraces=true
#c3p0.maxStatements=30
#c3p0.maxStatementsPerConnection=5
#c3p0.maxAdministrativeTaskTime=3
#c3p0.preferredTestQuery=SELECT 1
#c3p0.preferredTestQuery=SELECT a FROM emptyyukyuk WHERE a = 5
#c3p0.preferredTestQuery=SELECT a FROM testpbds WHERE a = 5
#c3p0.usesTraditionalReflectiveProxies=true
#c3p0.automaticTestTable=PoopyTestTable
#c3p0.acquireIncrement=4
#c3p0.acquireRetryDelay=1000
#c3p0.acquireRetryAttempts=60
#c3p0.connectionTesterClassName=com.mchange.v2.c3p0.test.AlwaysFailConnectionTester
#c3p0.initialPoolSize=10

c3p0.jdbcUrl=jdbc:mysql://localhost:3306/lianxi
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.user=root
c3p0.password=147258

#c3p0.user=poop
#c3p0.password=scoop

#com.mchange.v2.log.MLog=com.mchange.v2.log.log4j.Log4jMLog
#com.mchange.v2.log.MLog=com.mchange.v2.log.jdk14logging.Jdk14MLog
#com.mchange.v2.log.MLog=com.mchange.v2.log.FallbackMLog
#com.mchange.v2.log.NameTransformer=com.mchange.v2.log.PackageNames
#com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=ALL


#com.mchange.v2.c3p0.VMID=poop

配置默认起始页

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <welcome-file-list>
        <welcome-file>qfonload.jsp</welcome-file>
    </welcome-file-list>
</web-app>

管理学生页面前端代码

<%@page import="com.qf.entity.Student"%>
<%@page import="java.util.List"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>管理学生页面</title>
<style type="text/css">
	table{
		height: auto;
		margin: 0px auto;
		background-color: #f3f3f3;
	}
	h1{
		color:blue;	
		text-align: center;
	}
	#d1{
		text-align: center;
		font-weight:bolder ;
	}
	a{
		text-decoration: none;
		color: black;
	}
</style>
<script type="text/javascript">
	function deleteStu(name1){
		var result=confirm("确定要删除这个学生信息?")
		if(result){
			window.location="TeacherServlet?method=deleteStudent&uname="+name1;
		}
	}
	function modifyStu(name2){
		location.href="CommonServlet?method=getStudentByName&uname="+name2;
	}
</script>
</head>
<body>
	<c:set var="stus" value="${requestScope.stus}"></c:set>
	<h1>管理学生页面</h1>
	<table border="1">
		<tr id="d1">
			<td>用户名</td>
			<td>昵称</td>
			<td>手机号</td>
			<td>操作</td>
		</tr>
		<c:forEach var="s" items="${stus}">
			<tr>
				<td>${s.uname}</td>
				<td>${s.nickname}</td>
				<td>${s.phonenumber}</td>
				<td>
					<input type="button" value="修改" onclick="modifyStu('${s.uname}')" />
					<input type="button" value="删除" onclick="deleteStu('${s.uname}')" />
				</td>
			</tr>
		</c:forEach>
		<tr>
			<td colspan="4" id="d1"><a href="TeacherServlet?method=add">添加学生信息</a></td>				
	</table>
</body>
</html>

修改密码页面前端代码

<%@page import="com.qf.vo.LoginUserVo"%>
<%@page import="com.qf.entity.Student"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	form{
		width: 450px;
		height: 260px;
		margin: 0px auto;
		border: solid 1px black;
		background-color: #f3f3f3;
		padding-left:80px;
		
	}
	h1{
		color:blue;	
		padding-left:80px;
	}
	#d1{
		margin-left:125px;
	
	}
</style>
<script type="text/javascript">
			
		//验证原密码
		function isOldPwd(){
			//获得用户输入的原密码
			var oldPwd=document.getElementById("oldPwd").value;
			//获得当前用户登录的密码
			var old=document.getElementById("old").value;
				
			if(old==oldPwd){
				document.getElementById("oldPwd1").innerHTML="";
				return true;
			}else{
				document.getElementById("oldPwd1").style.color="red";
				document.getElementById("oldPwd1").innerHTML="原密码输入有误!";
				return false;
			}
		}
			
		//验证新密码和确认新密码
		function isReNewPwd(){
			//获得用户输入的新密码
			var newPwd=document.getElementById("newPwd").value;
			//获得用户输入的确认的新密码
			var reNewPwd=document.getElementById("reNewPwd").value;
			//获得当前用户登录的密码
			var old=document.getElementById("oldPwd").value;
			//密码正则表达式
			var regPwd=/^\d{6}$/;
			if(reNewPwd==old){
				document.getElementById("reNewPwd1").style.color="red";
				document.getElementById("reNewPwd1").innerHTML="新密码和原密码相同!";
				return false;
			}else if(regPwd.test(reNewPwd)&&newPwd==reNewPwd){
				document.getElementById("reNewPwd1").innerHTML="";
				return true;
			}else{
				document.getElementById("reNewPwd1").style.color="red";
				document.getElementById("reNewPwd1").innerHTML="两次输入的密码不一致!";
				return false;
			}
		}
			
		//表单提交事件
		function check(){
			var oldPwd=isOldPwd();
			var newPwd=isReNewPwd();
			if(oldPwd&&newPwd){
				return true;
			}else{
				return false;
			}
		}
			
</script>
</head>
<body>
	<!--表单-->
	<form method="post" action="CommonServlet?method=modifyPwd" onsubmit="return check()">
		<h1>修改密码页面</h1>
		<table>
			<tr>
				<td></td>
				<td></td>
				<!-- 巧用隐藏域将密码存在html页面中,方便js获得原密码 -->
				<td><input type="hidden" id="old" name="old" value="${user.password}"/></td>
			</tr>
			<tr>
				<td>原密码:</td>
				<!-- 表达式,在浏览中输出变量的值 -->
				<td><input type="password" id="oldPwd" name="oldPwd" onblur="isOldPwd()" /></td>
				<td id="oldPwd1">请输入原密码</td>
			</tr>
			<tr>
				<td>新密码:</td>
				<!-- 表达式,在浏览中输出变量的值 -->
				<td><input type="password" id="newPwd" name="newPwd" /></td>
				<td id="newPwd1">必填项,6位数字</td>
			</tr>
			<tr>
				<td>确认新密码:</td>
				<!-- 表达式,在浏览中输出变量的值 -->
				<td><input type="password" id="reNewPwd" name="reNewPwd" onblur="isReNewPwd()" /></td>
				<td id="reNewPwd1">与新密码保持一致</td>
			</tr>
		</table>
		<p id="d1">
			<!--提交按纽-->
			<input type="submit" value="修改"/>
			<!--重置按纽-->
			<input type="reset" value="重置"/>			
		</p>
	</form>
</body>
</html>

注册页面前端代码

<%@page import="com.qf.entity.Student"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册页面</title>
<style type="text/css">
	body{
		margin: 0px;
		padding: 0px;
		font-size:20px;
		font-weight: bolder; 
	}
	div{
		width:300px;
		height:230px;
		margin: 0px auto;
		background-color: #f3f3f3;
		border: solid 1px black;
		padding: 30px;
		padding-top: 0px;
	}
	td{
		line-height: 30px;
		margin-top:20px;
		text-align:center;
	}
	#d2{
		font-size: 10px;
		font-weight: normal;
		text-align:left;
		line-height: 10px;
	}
	#d3{
		text-align:right;
	}
	p{
		color: blue;
		font-size: 25px;
		text-align:center;
	}
	#d4{
		margin-left: 30px;
		margin-top: 20px;
	}
</style>
<script type="text/javascript">
	function isNickname(){
		var nickname=document.getElementById("nickname").value;
		var regNickname = /^([\u4e00-\u9fa5]{2,4})|([A-Za-z0-9_]{4,16})|([a-zA-Z0-9_\u4e00-\u9fa5]{3,16})$/;
		if(regNickname.test(nickname)){
			return true;
		}else{
			return false;
		}
	}
	function isPhonenumber(){
		var phonenumber=document.getElementById("phonenumber").value;
		var regPhonenumber=/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/
		if(regPhonenumber.test(phonenumber)){
			return true;
		}else{
			return false;
		}
	}
	function check(){
		var nicknameResult=isNickname();
		var phonenumberResult=isPhonenumber();
		if(nicknameResult&&phonenumberResult){
			return true;
		}else{
			return false;
		}
	}
</script>
</head>
<body>
	<c:set var="stu" value="${requestScope.stu}"></c:set>
	<div>
		<p>修改学生信息页面</p>
		<form method="post" action="CommonServlet?method=updateInformation" onsubmit="return check()">
			<table>
				<tr>
					<td id="d3">账号:</td>
					<td><input type="text" name="uname" id="uanme" onblur="isUname()" readonly="readonly" value="${stu.uname}" /></td>
				</tr>
				<tr>
					<td></td>
					<td id="d2">账号长度5-10,第一个必须是字母</td>
				</tr>
				<tr>
					<td id="d3">昵称:</td>
					<td><input type="text" name="nickname" id="nickname" onblur="isNickname()" value="${stu.nickname}"/></td>
				</tr>
				<tr>
					<td id="d3">手机号:</td>
					<td><input type="text" name="phonenumber" id="phonenumber" onblur="isPhonenumber()" value="${stu.phonenumber}" /></td>
				</tr>
				<tr>
					<td colspan="2"><input type="submit" value="&nbsp;&nbsp;&nbsp;提交&nbsp;&nbsp;&nbsp;" id="d4" /><input  id="d4" type="reset" value="&nbsp;&nbsp;&nbsp;重置&nbsp;&nbsp;&nbsp;" /></td>
				</tr>
			</table>
		</form>
	</div>
</body>
</html>

登录后首页前端代码

<%@page import="com.qf.vo.LoginUserVo"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
<style type="text/css">
	div{
		width:350px;
		height:300px;
		margin: 0px auto;
		background-color: #f3f3f3;
		border: solid 1px black;
	}
	h1{
		color:blue;	
		text-align: center;
	}
	h3{
		color:gray;	
		text-align: center;
	}
	a{
		text-decoration: none;
		color: black;
	}
</style>
</head>
<body>
		<c:choose>
			<c:when test="${sessionScope.user==null}">
				<h1>你还没有登录,3秒后跳转到登录页面</h1>
				<meta http-equiv="refresh" content="3;url=qfonload.jsp"/>
			</c:when>
			<c:when test="${sessionScope.user.role=='student'}">
				<div>
					<h1>学生后台首页</h1>
					<br/>
					<h3><a href="modifyPassword.jsp">修改密码</a></h3>
					<h3><a href="CommonServlet?method=getStudentByName">修改用户信息</a></h3>
					<h3><a href="StudentServlet?method=exit">注销</a></h3>
				</div>
			</c:when>
			<c:when test="${sessionScope.user.role=='teacher'}">
				<div>
					<h1>教师后台首页</h1>
					<br/>
					<br/>
					<h3><a href="modifyPassword.jsp">修改密码</a></h3>
					<h3><a href="TeacherServlet?method=allStudent">管理学生</a></h3>
				</div>			
			</c:when>
		</c:choose>
</body>
</html>

登录页面css样式及jsp页面代码

<%@page import="java.net.URLDecoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录页面</title>
<link rel="stylesheet" href="qfonload.css" />
<script type="text/javascript">
	function isUname(){
		var uname=document.getElementById("uName").value;
		var regUname=/^[0-9a-zA-Z_]{1,}$/;
		if (regUname.test(uname)) {
			return true;
		} else{
			return false;
		}
	}
	function ispwd(){
		var pwd=document.getElementById("pwd").value;
		var regpwd=/^[0-9a-zA-Z]{6,12}$/;
		if (regpwd.test(pwd)) {
			return true;
		} else{
			return false;
		}
	}
	
	function isCode(){
		var code=document.getElementById("code").value;
		if (code.length==4) {
			return true;
		}else{
			alert("验证码的输入有误!");
			return false;
		}
	}
	
	function nolook(){
		document.getElementById("ckcode").src="CheckCodeServlet?a="+new Date();
	}
	
	function check() {
		var unameResult=isUname();
		var pwdResult=ispwd();
		var codeResult=isCode();
		
		if(unameResult&&pwdResult&&codeResult){
			return true;
		}else{
			nolook();
			return false;
		}
	}
</script>
</head>
<body>
	<%
		String uname="";
		String pwd="";
		Cookie co[]=request.getCookies();
		if(co!=null){
			for(Cookie c:co){
				if(c.getName().equals("uname")){
					uname=URLDecoder.decode(c.getValue(), "utf-8");
				}else if(c.getName().equals("pwd")){
					pwd=c.getValue();
				}
			}
		}
		request.setAttribute("uname", uname);
		request.setAttribute("pwd", pwd);
	%>
	<h1>千峰学员系统</h1>
	<div>
		<form method="post" action="CommonServlet?method=login" onsubmit="return check()">
			<table>
				<tr>
					<td>账号</td>
					<td><input type="text" name="uname" id="uname" onblur="isUname()" value="${uname}" /> </td>
				</tr>
				<tr>
					<td>密码</td>
					<td><input type="password" name="pwd" id="pwd" onblur="isPwd()" value="${pwd}" /> </td>
				</tr>
				<tr>
					<td>验证码</td>
					<td><input type="text" name="code" id="code" onblur="isCode()" /> </td>
				</tr>
				<tr>
					<td colspan="2"><img id="ckcode" src="CheckCodeServlet" onclick="nolook()"/><a onclick="nolook()">看不清,点我刷新试试</a> </td>
				</tr>
				<tr>
					<td>选择身份</td>
					<td>
						<input type="radio" name="role" value="student" checked="checked" />学生
						<input type="radio" name="role" value="teacher" />老师
					</td>
				</tr>
				<tr>
					<td colspan="2" id="rememberMe"><input type="checkbox" name="rememberMe"/>记住账号密码 </td>
				</tr>
				<tr>
					<td colspan="2" id="submit"><input type="submit" value="&nbsp;&nbsp;&nbsp;登录&nbsp;&nbsp;&nbsp;"/></td>
				</tr>
				<tr>
					<td colspan="2" id="register"><a href="register.jsp">没有账号?点击注册</a></td>
				</tr>
			</table>
		</form>
	</div>
</body>
</html>
@charset "UTF-8";
body{
	margin: 0px;
	padding: 0px;
	font-size:15px;
	font-weight: bolder; 
}
h1{
	color:blue;
	height:60px;
	text-align:center;
}
div{
	width:250px;
	height:250px;
	margin: 0px auto;
	background-color: #f3f3f3;
	border: solid 1px black;
	padding: 30px;
}
td{
	line-height: 30px;
	margin-top:20px;
}
body a{
	font-size:10px;
	font-weight: normal;
}
#rememberMe{
	font-size: 10px;
	text-align: center;
}
#submit{
	text-align: center;
}
#register{
	text-align: center;
}

注册页面css样式及jsp页面代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册页面</title>
<link rel="stylesheet" href="register.css" />
<script type="text/javascript">
	function isUname(){
		var uname=document.getElementById("uname").value;
		var regUname=/^[a-zA-Z]\w{4,9}$/
		if(regUname.test(uname)&&uname!=null){
			return true;
		}else{
			return false;
		}
	}
	function isPwd(){
		var pwd=document.getElementById("pwd").value;
		var regPwd=/^[a-zA-Z]{4}\[0-9a-zA-Z!@#$^]{1,6}$/
		if(regPwd.test(pwd)&&pwd!=null){
			return true;
		}else{
			return false;
		}
	}
	function isNickname(){
		var nickname=document.getElementById("nickname").value;
		var regNickname = /^([\u4e00-\u9fa5]{2,4})|([A-Za-z0-9_]{4,16})|([a-zA-Z0-9_\u4e00-\u9fa5]{3,16})$/;
		if(regNickname.test(nickname)&&nickname!=null){
			return true;
		}else{
			return false;
		}
	}
	function isPhonenumber(){
		var phonenumber=document.getElementById("phonenumber").value;
		var regPhonenumber=/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/
		if(regPhonenumber.test(phonenumber)&&phonenumber!=null){
			return true;
		}else{
			return false;
		}
	}
	function check(){
		var unameResult=isUname();
		var pwdResult=isPwd();
		var nicknameResult=isNickname();
		var phonenumberResult=isPhonenumber();
		if(unameResult&&pwdResult&&nicknameResult&&phonenumberResult){
			return true;
		}else{
			return false;
		}
	}
</script>
</head>
<body>
	<div>
		<p>添加学生信息</p>
		<form method="post" action="CommonServlet?method=register" onsubmit="return check()">
			<input type="hidden" name="flag1" value="${flag }" />
			<table>
				<tr>
					<td id="d3">账号:</td>
					<td><input type="text" name="uname" id="uanme" onblur="isUname()" /></td>
				</tr>
				<tr>
					<td></td>
					<td id="d2">账号长度5-10,第一个必须是字母</td>
				</tr>
				<tr>
					<td id="d3">密码:</td>
					<td><input type="password" name="pwd" id="pwd" onblur="isPwd()" /></td>
				</tr>
				<tr>
					<td></td>
					<td id="d2">密码长度5-10,前四个是字母</td>
				</tr>
				<tr>
					<td id="d3">昵称:</td>
					<td><input type="text" name="nickname" id="nickname" onblur="isNickname()" /></td>
				</tr>
				<tr>
					<td id="d3">手机号:</td>
					<td><input type="text" name="phonenumber" id="phonenumber" onblur="isPhonenumber()" /></td>
				</tr>
				<tr>
					<td colspan="2">
						<input type="submit" value="&nbsp;&nbsp;&nbsp;提交&nbsp;&nbsp;&nbsp;" id="d4" />
						<input  id="d4" type="reset" value="&nbsp;&nbsp;&nbsp;重置&nbsp;&nbsp;&nbsp;" />
					</td>
				</tr>
			</table>
		</form>
	</div>
</body>
</html>
@charset "UTF-8";
body{
	margin: 0px;
	padding: 0px;
	font-size:20px;
	font-weight: bolder; 
}
div{
	width:300px;
	height:280px;
	margin: 0px auto;
	background-color: #f3f3f3;
	border: solid 1px black;
	padding: 30px;
	padding-top: 0px;
}
td{
	line-height: 30px;
	margin-top:20px;
	text-align:center;
}
#d2{
	font-size: 10px;
	font-weight: normal;
	text-align:left;
	line-height: 10px;
}
#d3{
	text-align:right;
}
p{
	color: blue;
	font-size: 25px;
	text-align:center;
}
#d4{
	margin-left: 30px;
	margin-top: 20px;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值