一.项目功能简介

功能流程图

源码:

百度网盘链接:https://pan.baidu.com/s/1QpbX1Sz0nZJwlvzEvx7zEw 
提取码:ynzu

数据库:

链接:https://pan.baidu.com/s/1p2LIfcOeQ1EKdCDS4D29PA 
提取码:mbpc

二.项目详解

1.创建javaweb项目

2.创建目录

src/com.neusoft.dao存放实体类和数据库操作的java文件

src/com.neusoft.servlet存放servlet的文件,用来接收前台发来的请求和数据,传到数据库,再返回给前台

webContent文件夹一般存放jsp、html、js等文件

web.xml存放在WEB-INF文件夹下

3.login.jsp(JSP页面用了Bootstrap http://www.bootcss.com/,联网状态加入下边标签,然后标签的class中引入Bootstrap中已有的class即可)

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'login.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"></head><body style="background:url('http://localhost:8080/webDomo2/login4.jpg') no-repeat;background-size: cover;"><div style="width:30% ;height:376px;margin:136px 10px 10px 825px;border-radius:25px;box-shadow: 5px 5px 5px 5px #888888;background-color:"><div style="height:70px;margin-left: 172px;margin-top:3px;float:left;"><h1 style="font: bold em Brush Script MT ; color:#222; text-shadow: 0px 2px 3px #666;float:left;"> Login<h1/></div><form name="myform" method="post" action="LoginServlet" class="form-group"style="position:absolute;left:889px;top:216px;"> 用户名: <input type="text" name="username" class="form-control" style="width:285px;"/><br/><br/>密码:<input type="text" name="userpwd" class="form-control" style="width:285px;"/><br/><br/><input type="submit"  class="btn btn-default" value="登录"/><a href="registerStudent.html">注册</a></form>  </div></body>
</html>

4.LoginServlet.java,接收login.jsp发来的请求,调用数据库文件StudentDAO.java中的doLogin()方法,查询数据返回回来后,根据查询结果跳转页面。

package com.neusoft.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.neusoft.dao.StudentDAO;
import com.neusoft.dao.StudentPO;public class LoginServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");        String username=request.getParameter("username");String userpwd=request.getParameter("userpwd");StudentDAO sd = new StudentDAO();try {StudentPO sp=sd.doLogin(username, userpwd);;if(sp==null){response.sendRedirect("/login.jsp");}else{request.setAttribute("student", sp);if(sp.getUserPower()==1)request.getRequestDispatcher("/main.jsp").forward(request, response);//request对象提供了一个getRequestDispatcher方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发。else if(sp.getUserPower()==0)request.getRequestDispatcher("/user.jsp").forward(request, response);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}

5.StudentDAO.java 存放数据库操作的java文件,由servlet调用

package com.neusoft.dao;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;public class StudentDAO {//链接数据库public Connection getConnection(){// 数据库连接对象Connection conn = null;//JDBC驱动String driverName="com.mysql.jdbc.Driver";// 数据库连接地址String connectionString="jdbc:mysql://localhost:3306/test?"+"user=root&password=123456&useUnicode=true&characterEncoding=utf-8";try{//加载驱动Class.forName(driverName);//通过DriverManager类的getConenction方法指定三个参数,连接数据库conn=DriverManager.getConnection(connectionString);//conn.close();}catch(ClassNotFoundException e){e.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return conn;}//用户登录public StudentPO doLogin(String username,String userpwd) throws SQLException{//定义SQL语句String sql="select * from test where loginname=? and loginpwd=?";//获取连接Connection conn = getConnection();PreparedStatement ps = null;  //向数据库中发送数据集ResultSet rs = null;          //接受返回的数据集对象-结果集StudentPO sp = null;          //将传回的行封装为列对象try {ps=conn.prepareStatement(sql);//  创建一个Statement对象ps.setString(1, username); //向sql语句的问号添加数据ps.setString(2, userpwd);//返回结果集rs = ps.executeQuery();/*用Connection接口的createStatement()方法获得Statement对象传递Sql语句* 用它的ExecuteQuery()方法获取单个ResultSet对象.* String Sql = "select * from login";*stt = conn.createStatement();*set = stt.executeQuery(Sql);*///获取数据,遍历结果集,将数据封装到集合中while(rs.next()){sp = new StudentPO();sp.setUserName(rs.getString("loginname"));/*********/sp.setUserPwd(rs.getString("loginpwd"));    sp.setuserPower(rs.getInt("power"));sp.setUserId(rs.getInt("id"));sp.setRealName(rs.getString("name"));}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{rs.close();ps.close();conn.close();}return sp;}//按id查找public StudentPO selectbyid(int id) throws SQLException{//定义SQL语句String sql="select * from test where id=?";//获取连接Connection conn = getConnection();PreparedStatement ps = null;  //向数据库中发送数据集ResultSet rs = null;          //接受返回的数据集对象-结果集StudentPO sp = null;          //将传回的行封装为列对象try {ps=conn.prepareStatement(sql);//  创建一个Statement对象ps.setInt(1, id); //向sql语句的问号添加数据//返回结果集rs = ps.executeQuery();/*用Connection接口的createStatement()方法获得Statement对象传递Sql语句* 用它的ExecuteQuery()方法获取单个ResultSet对象.* String Sql = "select * from login";*stt = conn.createStatement();*set = stt.executeQuery(Sql);*///获取数据,遍历结果集,将数据封装到集合中while(rs.next()){sp = new StudentPO();sp.setUserName(rs.getString("loginname"));/*********/sp.setUserPwd(rs.getString("loginpwd"));    sp.setuserPower(rs.getInt("power"));sp.setUserId(rs.getInt("id"));sp.setRealName(rs.getString("name"));}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{rs.close();ps.close();conn.close();}return sp;}public int executeNonQuery(String sql,Object[]args) throws SQLException{Connection conn = getConnection();PreparedStatement ps=null;int result=0;try {ps = conn.prepareStatement(sql);if(args!=null){for(int i=0;i<args.length;i++){System.err.println("2T   "+args[i]);ps.setObject(i+1, args[i]);}}result=ps.executeUpdate();//返回执行成功的记录的条数 int} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{ps.close();conn.close();}return result;}//用户注册public int add(int id,String name,String loginpwd,int userage,String realname,int userpower) throws SQLException{String sql="insert into test(id,loginname,loginpwd,age,name,power)"+"values(?,?,?,?,?,?)";Object[] args={id,name,loginpwd,userage,realname,userpower};for(int i=0;i<5;i++)System.err.println("1T   "+args[i]);int result=executeNonQuery(sql, args);return result;}//刷新用户(在哪调用)public int update(int id,String username,String loginpwd,int age,String name) throws SQLException{String sql="update test set loginname=? ,loginpwd=? ,name=?,age=?"+" where id=?";Object[] args={username,loginpwd,name,age,id};int result = executeNonQuery(sql, args);return result;}//删除用户信息public int delete(int id) throws SQLException{String sql="delete from test where id="+id;int result=executeNonQuery(sql, null);return result;}//封装数据集public List<StudentPO> queryAllStudent() throws SQLException{String sql="select * from test";Connection conn = getConnection();PreparedStatement ps = null;ResultSet rs = null;List<StudentPO> list = new ArrayList<StudentPO>();try {ps=conn.prepareStatement(sql);rs = ps.executeQuery();//遍历结果集,将数据封装到集合中while(rs.next()){int userid=rs.getInt("id");//***********int userage=rs.getInt("age");int userpower=rs.getInt("power");String username = rs.getString("loginname");String userpwd = rs.getString("loginpwd");String realname=rs.getString("name");StudentPO sp = new StudentPO();sp.setUserId(userid);sp.setUserName(username);sp.setRealName(realname);sp.setUserPwd(userpwd);sp.setUserAge(userage);sp.setuserPower(userpower);list.add(sp);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{rs.close();ps.close();conn.close();}return list;}//注册检索public List<StudentPO> queryStudentById(int id) throws SQLException{String sql="select * from test where id="+id;Connection conn = getConnection();PreparedStatement ps = null;ResultSet rs = null;List<StudentPO> list = new ArrayList<StudentPO>();try {ps=conn.prepareStatement(sql);rs = ps.executeQuery();//遍历结果集,将数据封装到集合中while(rs.next()){int userid=rs.getInt("id");//**************/int userage=rs.getInt("age");int userpower=rs.getInt("power");String username = rs.getString("loginname");String userpwd = rs.getString("loginpwd");String realname=rs.getString("name");StudentPO sp = new StudentPO();sp.setUserId(userid);sp.setUserName(username);sp.setUserPwd(userpwd);sp.setUserAge(userage);sp.setRealName(realname);sp.setuserPower(userpower);list.add(sp);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{rs.close();ps.close();conn.close();}return list;}
}

6.registerStudent.html 注册页面

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>registerStudent.html</title><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="this is my page"><meta http-equiv="content-type" content="text/html; charset=UTF-8"><!--<link rel="stylesheet" type="text/css" href="./styles.css">--></head><body style="background:url('http://localhost:8080/webDomo2/login4.jpg') no-repeat;background-size: cover;"><center><form name="myform" method="post" action="RegisterServlet" style="margin-top:200px">用户ID :  <input type="text" name="userid"><br/>用户姓名:<input type="text" name="username"/><br/>真实姓名:<input type="text" name="realname"><br/>用户密码:<input type="text" name="userpwd"><br/>用户年龄:<input type="text" name="userage"><br/><input type="radio" name="power" value="0" checked>员工<input type="radio" name="power" value="1" checked="true">管理员<br/><input type="submit" value="注册"/></form></center></body>
</html>

7.RegisterServlet.java 接收注册页面传来的请求,调用数据库的add()方法,将用户信息添加至数据库,然后跳转登录页面

package com.neusoft.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;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 com.neusoft.dao.StudentDAO;public class RegisterServlet extends HttpServlet{/** HttpServlet中有两个方法需要我们自己重写* 需要在web.xml文件中进行注册*/@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.err.println("进入POST");req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");//1.接受客户端数据//按照客户端调教数据的name-value的形式来提取数据String userid=req.getParameter("userid");String username = req.getParameter("username");String realname=req.getParameter("realname");String userpwd=req.getParameter("userpwd");String userage=req.getParameter("userage");String userpower=req.getParameter("power");System.err.println("查到power"+userage);int id = Integer.parseInt(userid);int age = Integer.parseInt(userage);int power=Integer.parseInt(userpower);//2.使用JDBC,将数据添加到数据库中StudentDAO sd = new StudentDAO();//3.HttpServletResponse对象//将HTML代码以数据流的形式响应给客户端//客户端使用IE浏览器来解析响应的HTML数据流//获得一个输出流对象
//        PrintWriter out = resp.getWriter();
//
//        out.println("<html>");
//        out.println("<head>");
//        out.println("<meta http-equiv='content-type' content='text/html; charset=UTF-8'>");
//        out.println("</head>");
//        out.println("<body>");try {int result=sd.add(id,username,userpwd,age,realname,power);System.err.println(result);if(result>0){//1.站内跳转,请求转发//只能转发网站内部的资源//转发的是同一个请求和响应对象req.getRequestDispatcher("/login.jsp").forward(req, resp);//2.重定向跳转//可以请求外部资源//由于是客户端重新发起的请求,所以请求和响应对象不是同一个//resp.sendRedirect("/webDemo/success.jsp");//out.println("添加成功");}else{//out.println("添加失败");}} catch (SQLException e) {//out.println("添加失败");}}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {doPost(req, resp);}}

8.main.jsp 管理员主页面 调用QueryAllStudent.java

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="com.neusoft.dao.StudentPO"%>
<%
//java脚本
//写java的代码
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%StudentPO stu=(StudentPO)request.getAttribute("student");%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'main.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">  <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script><script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body  style="background:url('http://localhost:8080/webDomo2/login4.jpg') no-repeat;background-size: cover;"><div style="height:70px;margin-left: 458px;margin-top:261px;float:left;"><h1 style="font: bold em Brush Script MT ; color:#222; text-shadow: 0px 2px 3px #666;float:left;"> User Management<h1/></div><a href="QueryAllStudent" style="float:left;margin-left: 15px;margin-top: 281px;"><button type="button" class="btn btn-default btn-lg"><span class="glyphicon glyphicon-user"></span> <%=stu.getUserName() %></button></a></body>
</html>

9.QueryAllStudent.java 查询出所有用户信息,跳转至用户信息列表页面

package com.neusoft.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.neusoft.dao.StudentDAO;
import com.neusoft.dao.StudentPO;public class QueryAllStudent extends HttpServlet {/*** The doGet method of the servlet. <br>** This method is called when a form has its tag value method equals to get.* * @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {StudentDAO sd = new StudentDAO();try {List<StudentPO> list=sd.queryAllStudent();request.setAttribute("students", list);request.getRequestDispatcher("/showStudent.jsp").forward(request, response);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}

10.showStudents.jsp 用户信息页面,实现查询、更新、删除功能,分别调用各自servlet文件,分别为select.java   Edit.java   Delete.java

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="com.neusoft.dao.StudentPO"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%List<StudentPO> list=(List<StudentPO>)request.getAttribute("students");%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'showStudents.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body style="background:url('http://localhost:8080/webDomo2/login4.jpg') no-repeat;background-size: cover;"><div style="width:80%;margin:10px auto">
<div style="height:70px;margin-left: 390px;margin-top: 30px;">
<h1 style="font: bold em Brush Script MT ; color:#222; text-shadow: 0px 2px 3px #666;float:left;">User Management</h1>
<img src="http://localhost:8080/webDomo2/List.png" style="width: 50px;height: 50px;float:left;margin-top: 13px;"/>
</div>
<form id="select" method="post" action="Select" style="margin-left: 631px"><input id="selectbyname" class="form-control" type="text" name="id"  placeholder="请输入用户id" style="width:200px;float:left;margin-top: 19px;"/><div class="col-sm-offset-2 col-sm-10 form-group" style="width:202px;margin:10px auto;float:left"><button type="submit" class="btn btn-default btn-info" style="width:170px; margin:10px auto">查询</button></div></form>
<form method="POST" id="form"><table align="center"  class="table table-hover table-striped" style="height:70px;margin-top: 50px;filter:alpha(opacity=50,Style=0);"><tr><th>用户ID</th><th>真实姓名</th><th>用户姓名</th><th>用户年龄</th><th>用户权限</th><th>操作</th></tr><%for(StudentPO s :list){%><tr><td><%=s.getUserId() %></td><td><%=s.getRealName() %>></td><td><%=s.getUserName() %></td><td><%=s.getUserAge() %></td><td><%=s.getUserPower() %></td><td><div class="btn btn-default" onclick="update('<%=s.getUserId() %>')">更新</div><div class="btn btn-default" onclick="deleteUser('<%=s.getUserId() %>')">删除</div></td></tr><% }%></table><input id="user_id" type="hidden" name="userid" /></form></div></body>
<script src="https://code.jquery.com/jquery.js"></script><script type="text/javascript">
var update=function(id){$("#user_id").val(id);$("#form").attr("action","Edit");$("#form").submit();
};
var deleteUser=function(id){$("#user_id").val(id);$("#form").attr("action","Delete");$("#form").submit();
};
</script>
</html>

11.Edit.java  跳转至编辑页面,调用Edit.jsp文件

package com.neusoft.servlet;import java.io.IOException;
import java.sql.SQLException;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 com.neusoft.dao.StudentDAO;
import com.neusoft.dao.StudentPO;public class Edit extends HttpServlet {private static final long serialVersionUID = 1L;public Edit() {super();// TODO Auto-generated constructor stub}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubSystem.err.println("进到servlet");request.setCharacterEncoding("utf-8");        String id=request.getParameter("userid");System.err.println("获取id为"+id);int userid = Integer.parseInt(id);StudentDAO sd = new StudentDAO();try {StudentPO sp=sd.selectbyid(userid);if(sp==null){}else{request.setAttribute("student", sp);request.getRequestDispatcher("/Edit.jsp").forward(request, response);//request对象提供了一个getRequestDispatcher方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

12.Edit.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1"><link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<title>修改用户信息页面</title>
</head>
<body style="background:url('http://localhost:8080/webDomo2/login4.jpg') no-repeat;background-size: cover;">
<div style="width:80%;margin:10px auto">
<div style="height:70px;margin-left: 390px;">
<h1 style="font: bold em Brush Script MT ; color:#222; text-shadow: 0px 2px 3px #666;float:left;">User Management<h1/>
<img src="http://localhost:8080/maven02/resources/img/List.png" style="width: 50px;height: 50px;float:left;margin-top: 13px;"/>
</div><form class="form-horizontal" action="Editend" method="POST"><div class="form-group"><label class="col-sm-2 control-label">用户名:</label><div class="col-sm-10 center-block"><input type="text" class="form-control" name="username" id="inputEmail3" value="${student.getUserName()}"> </div></div><div class="form-group"><label for="inputPassword3" class="col-sm-2 control-label">密码</label><div class="col-sm-10"><input type="password" class="form-control" id="inputPassword3" name="password" value="${student.getUserPwd()}"></div></div><div class="form-group"><label for="inputPassword3" class="col-sm-2 control-label">年龄</label><div class="col-sm-10"><input type="password" class="form-control" id="inputPassword3" name="age" value="${student.getUserAge()}"></div></div><div class="form-group"><label class="col-sm-2 control-label">真实姓名:</label><div class="col-sm-10 center-block"><input type="text" class="form-control" name="name" id="inputEmail3" value="${student.getRealName()}"> </div></div><div class="form-group"><div class="col-sm-offset-2 col-sm-10"><button type="submit" class="btn btn-default">确定</button></div></div><input id="user_id" type="hidden" name="userid" value="${student.getUserId()}" />
</form>
</div><!-- jQuery (Bootstrap 的 JavaScript 插件需要引入 jQuery) --><script src="https://code.jquery.com/jquery.js"></script><!-- 包括所有已编译的插件 --><script src="js/bootstrap.min.js"></script><script type="text/javascript">$(function(){if(""=="${code}"){console.log("没有异常");}else if("500"=="${code}"){alert("${msg}");}});
</script>
</body>
</html>

13.Editend.java  编辑页面调用Editend.java

package com.neusoft.servlet;import java.io.IOException;
import java.sql.SQLException;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 com.neusoft.dao.StudentDAO;/*** Servlet implementation class Editend*/
public class Editend extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public Editend() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubSystem.err.println("进入POST");req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");//1.接受客户端数据//按照客户端调教数据的name-value的形式来提取数据String userid=req.getParameter("userid");String username = req.getParameter("username");String realname=req.getParameter("name");String userpwd=req.getParameter("password");String userage=req.getParameter("age");String userpower=req.getParameter("power");System.err.println("查到power"+userage);int id = Integer.parseInt(userid);int age = Integer.parseInt(userage);//2.使用JDBC,将数据添加到数据库中StudentDAO sd = new StudentDAO();//3.HttpServletResponse对象//将HTML代码以数据流的形式响应给客户端//客户端使用IE浏览器来解析响应的HTML数据流//获得一个输出流对象
//          PrintWriter out = resp.getWriter();
//
//          out.println("<html>");
//          out.println("<head>");
//          out.println("<meta http-equiv='content-type' content='text/html; charset=UTF-8'>");
//          out.println("</head>");
//          out.println("<body>");try {int result=sd.update(id,username,userpwd,age,realname);System.err.println(result);if(result>0){//1.站内跳转,请求转发//只能转发网站内部的资源//转发的是同一个请求和响应对象req.getRequestDispatcher("/QueryAllStudent").forward(req, resp);//2.重定向跳转//可以请求外部资源//由于是客户端重新发起的请求,所以请求和响应对象不是同一个//resp.sendRedirect("/webDemo/success.jsp");//out.println("添加成功");}else{//out.println("添加失败");}} catch (SQLException e) {//out.println("添加失败");}}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

14.select.java  接收查询请求

package com.neusoft.servlet;import java.io.IOException;
import java.sql.SQLException;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 com.neusoft.dao.StudentDAO;
import com.neusoft.dao.StudentPO;/*** Servlet implementation class Select*/
public class Select extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public Select() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubSystem.err.println("进到servlet");request.setCharacterEncoding("utf-8");        String id=request.getParameter("id");System.err.println("获取id为"+id);int userid = Integer.parseInt(id);StudentDAO sd = new StudentDAO();try {StudentPO sp=sd.selectbyid(userid);if(sp==null){}else{System.err.println("sp"+sp.getRealName());request.getRequestDispatcher("QueryOnlyOne?userid="+sp.getUserId()).forward(request, response);//request对象提供了一个getRequestDispatcher方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

15.delete.java 接收删除请求

package com.neusoft.servlet;import java.io.IOException;
import java.sql.SQLException;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 com.neusoft.dao.StudentDAO;
import com.neusoft.dao.StudentPO;/*** Servlet implementation class delete*/
public class Delete extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public Delete() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubSystem.err.println("进到servlet");request.setCharacterEncoding("utf-8");        String id=request.getParameter("userid");System.err.println("获取id为"+id);int userid = Integer.parseInt(id);StudentDAO sd = new StudentDAO();try {int result=sd.delete(userid);if(result>0){//1.站内跳转,请求转发//只能转发网站内部的资源//转发的是同一个请求和响应对象request.getRequestDispatcher("/QueryAllStudent").forward(request, response);//2.重定向跳转//可以请求外部资源//由于是客户端重新发起的请求,所以请求和响应对象不是同一个//resp.sendRedirect("/webDemo/success.jsp");//out.println("添加成功");}else{//out.println("添加失败");}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

16.QueryOnlyOne.java 接收普通用户的主页面的请求

package com.neusoft.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.neusoft.dao.StudentDAO;
import com.neusoft.dao.StudentPO;public class QueryOnlyOne extends HttpServlet {/*** The doGet method of the servlet. <br>** This method is called when a form has its tag value method equals to get.* * @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {StudentDAO sd = new StudentDAO();StudentPO  sp = new StudentPO();String id=request.getParameter("userid");int userid = Integer.parseInt(id);try {//将对象保存在请求对象中List<StudentPO> list=sd.queryStudentById(userid);request.setAttribute("students", list);request.getRequestDispatcher("/showStudent.jsp").forward(request, response);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}

17.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><servlet><servlet-name>RegisterServlet</servlet-name><servlet-class>com.neusoft.servlet.RegisterServlet</servlet-class></servlet><servlet><servlet-name>Edit</servlet-name><servlet-class>com.neusoft.servlet.Edit</servlet-class></servlet><servlet><servlet-name>Select</servlet-name><servlet-class>com.neusoft.servlet.Select</servlet-class></servlet><servlet><servlet-name>Delete</servlet-name><servlet-class>com.neusoft.servlet.Delete</servlet-class></servlet><servlet><servlet-name>Editend</servlet-name><servlet-class>com.neusoft.servlet.Editend</servlet-class></servlet><servlet><servlet-name>QueryOnlyOne</servlet-name><servlet-class>com.neusoft.servlet.QueryOnlyOne</servlet-class></servlet><servlet><servlet-name>LoginServlet</servlet-name><servlet-class>com.neusoft.servlet.LoginServlet</servlet-class></servlet><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>QueryAllStudent</servlet-name><servlet-class>com.neusoft.servlet.QueryAllStudent</servlet-class></servlet><servlet-mapping><servlet-name>QueryOnlyOne</servlet-name><url-pattern>/QueryOnlyOne</url-pattern></servlet-mapping><servlet-mapping><servlet-name>RegisterServlet</servlet-name><url-pattern>/RegisterServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>LoginServlet</servlet-name><url-pattern>/LoginServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>QueryAllStudent</servlet-name><url-pattern>/QueryAllStudent</url-pattern></servlet-mapping><servlet-mapping><servlet-name>Edit</servlet-name><url-pattern>/Edit</url-pattern></servlet-mapping><servlet-mapping><servlet-name>Select</servlet-name><url-pattern>/Select</url-pattern></servlet-mapping><servlet-mapping><servlet-name>Delete</servlet-name><url-pattern>/Delete</url-pattern></servlet-mapping><servlet-mapping><servlet-name>Editend</servlet-name><url-pattern>/Editend</url-pattern></servlet-mapping>
</web-app>

18.StudentPO.java  实体类

package com.neusoft.dao;import java.util.List;public class StudentPO {private int userId;private String userName;private int userAge;private String userPwd;private String realName;private int userPower;public int getUserPower(){return userPower;}public void setuserPower(int userpower) {this.userPower = userpower;}public String getRealName(){return realName;}public void setRealName(String realname) {this.realName = realname;}public String getUserPwd() {return userPwd;}public void setUserPwd(String userpwd) {this.userPwd = userpwd;}public int getUserId() {return userId;}public void setUserId(int userId) {this.userId = userId;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public int getUserAge() {return userAge;}public void setUserAge(int userAge) {this.userAge = userAge;}}

完成!

三.效果图展示

1.登录界面——用户的登录注册

2.主页面——按钮跳转用户信息列表页

3.用户信息列表——实现用户信息的查询、修改、删除

4.编辑页面——编辑用户信息

5.注册页面——实现用户的增加

javaweb+servlet+mysql登录+注册+增删改查源码相关推荐

  1. java增删改查实例源码_Spring Data JPA 实现简单的CRUD增删改查源码案例

    Spring专题 Spring Data JPA 实现简单的CRUD增删改查源码案例 Spring Data JPA旨在简化JPA基础知识库构建和减少需要与数据库进行通信的代码量.第一部分是如何配置H ...

  2. android 增删改查 源码_学生信息增删改查小程序案例(springboot服务端)

    项目描述: 该小程序实现了简单的管理员登录,学生信息添加,修改,删除,列表显示等功能,服务器端采用springboot框架提供接口,数据传输格式为json,适合新手学习小程序与服务端的交互,以及增删改 ...

  3. 使用javaweb进行用户管理系统的增删改查,分页和条件查询

    使用javaweb进行用户管理系统的增删改查,分页和条件查询 如有转载请标注来源!!!谢谢配合 源码已经上传,可以自行下载 https://download.csdn.net/download/wei ...

  4. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)Shell脚本与MySQL数据库交互(增删改查)# 环境准备:安装mariadb 数据库 [root ...

  5. java jdbc标签jsp_jsp+servlet+javabean+jdbc实现增删改查和分页功能 案例源码

    [实例简介] 客户管理案例 1.目的:总结JDBC,和Servlet JSP结合到一起. 2.开发中的一些小技巧. 3.客户管理平台功能 * 添加客户 * 查询所有的客户的信息 * 修改客户信息 * ...

  6. mysql 原生 添加数据_手撸Mysql原生语句--增删改查

    mysql数据库的增删改查有以下的几种的情况, 1.DDL语句 数据库定义语言: 数据库.表.视图.索引.存储过程,例如CREATE DROP ALTER SHOW 2.DML语句 数据库操纵语言: ...

  7. java servlet dao_Java+MyEclipse+Tomcat 详解Servlet和DAO数据库增删改查操作(源码)

    [实例简介] 该资源主要参考自己的博客http://blog.csdn.net/eastmount/article/details/45936121 讲诉Java+MyEclipse+Tomcat 详 ...

  8. Java Web 应用实例 servlet实现oracle 基本增删改查

    原文地址为: Java Web 应用实例 servlet实现oracle 基本增删改查 很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的 ,所以从今天开始 , ...

  9. adodb mysql.inc.php,php adodb操作mysql数据库示例(增删改查)

    php adodb操作mysql数据库示例(增删改查) 发布于 2014-10-05 08:16:18 | 113 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: H ...

最新文章

  1. GPT2文本生成有问题?这里有些潜在解决思路
  2. Spring Boot 2.X整合Spring-cache,让你的网站速度飞起来
  3. springboot获取getBean方法以及ApplicationContext空指针问题解决
  4. android source镜像源_说要替代安卓的Fuchsia OS,国内镜像上线了!
  5. 12、MySQL逻辑运算符
  6. QML基础类型之int
  7. 【转】ABP源码分析三十一:ABP.AutoMapper
  8. matlab水蒸气焓值计算_从第一性原理计算出发来理解含能配合物宏观行为的趋势...
  9. 如何在 Flink 中规划 RocksDB 内存容量?
  10. 十字路口红绿灯plc程序_PLC编程-典型案例红绿灯控制
  11. php 开发商城 注意,thinkPHP商城公告功能开发问题分析
  12. 将调试串口作为普通串口使用(仅限于调试、测试)
  13. 深度摄像头:一:深度了解深度摄像头
  14. (57)Linux驱动开发之三Linux字符设备驱动
  15. FMI飞马网【线上直播】京东POP接口自动化测试
  16. Vmware_jjbLite_jb51不是有效的短文件名
  17. ubuntu安装nvidia和cuda重启后,鼠标键盘失灵
  18. Python爬取自然风景图片代码
  19. 提升ASO榜单排名优化主要方式有哪些?
  20. VM虚拟机:VMware Kernel Module Updater

热门文章

  1. ios 证书生成流程
  2. 需要了解的常用Webpack插件配置-loader加载器
  3. springboot + shiro的配置
  4. 微信转发指定的图文消息到朋友圈(JAVA版)
  5. 谈谈玩游戏遇到的问题(巫师3)
  6. 玩3D游戏头晕怎么办?为什么会头晕?如何解决?
  7. 沉睡者 - 微信内测一个手机可注册2微信号
  8. MATLAB2018B下用Faster-RCNN做目标检测的训练和测试步骤
  9. PyQt5_pyqtgraph双均线组合工具
  10. 视频工作室必备利器——群晖NAS