jsp+servlet实现一套简单的增删改查

功能简介

  • 登录功能
    ajax用户名失焦之后判断是否存在,cookie设置十天免登陆。
    在这里插入图片描述
  • 学生信息显示
    图片上传以及图片删除功能未添加
    在这里插入图片描述
  • 删除功能
    在这里插入图片描述
  • 添加功能
    加粗样式
  • 修改功能
    在这里插入图片描述
  • 全选删除功能
    加粗样式

代码实现

login.jsp登录界面:

<%@ 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>教师登录页</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="static/css/style.css" rel='stylesheet' type='text/css' />
	<script type="application/x-javascript">
	 addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false);
	  function hideURLbar(){ window.scrollTo(0,1); } 
	</script>

  </head>
  
  <body>
  
	 <div class="main">
		<div class="login-form">
			<h1>${title}</h1>
					<div class="head">
						<img src="static/img/user.png" alt=""/>
					</div>
				<form action="Login_demo" method="post">
						<input type="text" name="username" id="username" placeholder="USERNAME" >
						<input type="password" name="password" id="password" placeholder="Password" >
						<div class="submit">
							<input type="submit" name="sub" id="sub" value="LOGIN" style="margin-left:-10px;" >
					</div>
					<p style="margin-right:210px;">
					<input type="checkbox" name="free" id="free" value="on"><label for="free">十天内免登陆</label></p>
					<a href="#" style="float:right;margin-top:-20px;">Forgot Password ?</a>
				</form>
			</div>
   					
		</div>
		 		
<div style="display:none">
</div>
</body>
<script src="https://cdn.bootcss.com/jquery/3.4.0/jquery.js"></script>
<script>
$("#username").blur(function(){
	username = $("#username").val();
	$.get("Register",{username:username},function(data){
	      if(data=='不存在'){
			setTimeout(function(){
				$(this).val("");
				$(this).focus();
				console.log(123);
			},1000);
			alert('用户不存在');
			return false;
		}
	});

});
</script>
</html>

Login_demo.java登录逻辑处理servlet

package ceshi;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

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 database.Db_connect;

/**
 * Servlet implementation class Login_demo
 */
public class Login_demo extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Login_demo() {
        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 stub
		response.getWriter().write("哈哈");
	}

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

		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		
		String username = request.getParameter("username");	//接收用户名
		String password = request.getParameter("password");	//接收密码
		String ison = request.getParameter("free");	  //接收是否十天免登陆
		
		Connection conn  = new Db_connect().getConn();
		try {
			Statement state=conn.createStatement();
			String sql="select * from user where user='"+username+"' and pwd='"+password+"'";
			ResultSet rs = state.executeQuery(sql);
			if(rs.next()) {
				Cookie ck_username = new Cookie("username",username);
				Cookie ck_password = new Cookie("password",password);
				//判断是否点击了十天内免登陆
				if("on".equals(ison)) {
					ck_username.setMaxAge(60*60*24*10);
					ck_password.setMaxAge(60*60*24*10);
				}else {
					//设置时间为10分钟
					ck_username.setMaxAge(60*10);
					ck_password.setMaxAge(60*10);
				}  
				response.addCookie(ck_username);
				response.addCookie(ck_password);
				
				response.getWriter().print("<script language='javascript'>alert('登录成功!正在为您跳转……')</script>");
				response.setHeader("refresh", "1;URL=jsp/index_stu.jsp");
//				response.sendRedirect(request.getContextPath()+"/jsp/index_stu.jsp");
			}else {
				response.getWriter().print("<script language='javascript'>alert('登录失败!请确认信息')</script>");
				response.setHeader("refresh", "1;URL=jsp/login.jsp");
//				response.sendRedirect(request.getContextPath()+"/jsp/login.jsp");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}


index_stu.jsp学生信息显示界面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="database.Db_connect,java.sql.*" %>
<%
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>学生信息显示表</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="static/css/res.css">
	<script src="https://cdn.bootcss.com/jquery/3.4.0/jquery.js"></script>
  </head>
  
  <body>
  <%
  String username="";
  String password="";
  Cookie cookie = null;
  Cookie[] cookies = null;
  cookies = request.getCookies();

  for(Cookie c: cookies){
		if(c.getName().equals("username")){
			username = c.getValue();
		}
		if(c.getName().equals("password")){
			password = c.getValue();
		}
  }
  /* if(username==""){
  	  	response.sendRedirect(request.getContextPath()+"/jsp/login.jsp");  
  } */
  %>
  欢迎您!:<%=username %><a href="Signout_demo" style="margin-left:20px;">点我退出</a>
  <form action="Delall_demo" method="post">
  <table border="1" width="60%" align="center">
  	<caption style="font-size:26px;color:red">学生信息显示表</caption>
  	<tr>
  		<td>ID</td>
  		<td>编号</td>
  		<td>姓名</td>
  		<td>性别</td>
  		<td>头像</td>
  		<td>生日</td>
  		<td>班级</td>
  		<td>操作</td>
  	</tr>
  	
  		<%
  			Connection conn  = new Db_connect().getConn(); 
  			String sql="select * from stu join class on stu.cid=class.id";
  			PreparedStatement pst =conn.prepareStatement(sql);
  			ResultSet rs = pst.executeQuery();
  			while(rs.next()){
  		%>
  	<tr>
  		<td><input type="checkbox" name="info" value="<%=rs.getString("sid") %>" /></td>
  		<td><%=rs.getString("sid") %></td>
  		<td><%=rs.getString("sname") %></td>
  		<td><%=rs.getString("sex") %></td>
  		<td><img src="static/img/<%=rs.getString("newname") %>" width="150px" alt="images"/> 		</td>
  		<td><%=rs.getString("brithday") %></td>
  		<td><%=rs.getString("cname") %></td>
  		<td>
  		<a href="Del_demo?sid=<%=rs.getString("sid") %>" οnclick="return confirm('确定要删除吗?')">删除</a>|
  		<a href="Upd1_demo?sid=<%=rs.getString("sid") %>">修改</a>
  		</td>
  		
  	</tr>
  
  		
  		<%
  			}
  		 %>
  	<tr>
  		<td><input type="checkbox" id="checkall" name="checkall" onclick="checkAll(checkall)" />全选</td>
  		<td colspan="7">
  			<input type="submit" id="delall" value="删除" onclick='return fun()' />
  			<input type="button" value="学生信息添加" onclick="location.href='./jsp/add_stu.jsp'" />
  		</td>
  	</tr>
  </table>
       </form>

  </body>
  <script>
		function fun(){
			var a=document.getElementsByName('info');
			var b=0;     //设定一个初始值
			for(var i=0;i<a.length;i++)
			{
					
				if(a[i].checked==true)
				{
					return true;
				}
				else
				{
					if(a[i].checked==false)
					{
						b++;    //如果方框没选中,该值会累加
					} 
					if(b==a.length)   //如果该值和方框的个数相同,那么就会报错
					{
						alert('至少要选择一项!');
						return false;
					}
				}
			}
		}
		function checkAll(checkall) {  
			arr = document.getElementsByName('info'); 
			if (checkall.checked == true) { 
				for(i=0;i<arr.length;i++){ 
					
					arr[i].checked = true; 
				}
 
				}else{
					for(i=0;i<arr.length;i++){ 
						if((arr[i]).checked==false){
							arr[i].checked = true;
						}else
						{
							arr[i].checked = false;
						}
					}
				}
	}  
 

</script>
</html>


Delall_demo.java全选删除逻辑处理servlet

package ceshi;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import database.Db_connect;

public class Delall_demo extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
		 * Constructor of the object.
		 */
	public Delall_demo() {
		super();
	}

	/**
		 * Destruction of the servlet. <br>
		 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

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


	}

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

		request.setCharacterEncoding("utf-8"); //1	
		response.setContentType("text/html;charset=utf-8"); //2
		PrintWriter out = response.getWriter();
		//接收jsp页面传来的多个checkbox值
		String[] selectdelete = request.getParameterValues("info");
		String id="";
		for(int i=0;i<selectdelete.length;i++) {
			//以逗号分割字符串
			id+=selectdelete[i]+",";
		}
		//去掉字符串中最后一个逗号
		String ids=id.substring(0,id.length()-1);
		
		//讲字符串转化为整形
		Connection conn  = new Db_connect().getConn();
		PreparedStatement pstm = null;
		int i=0;
		try {
			String sql="delete from stu where sid in ("+ids+")";
			pstm = conn.prepareStatement(sql);
			i = pstm.executeUpdate();
			if(i!=0) {
				response.getWriter().print("<script language='javascript'>alert('删除成功!')</script>");
				response.setHeader("refresh", "1;URL=jsp/index_stu.jsp");
			}else {
				response.getWriter().print("<script language='javascript'>alert('删除失败!')</script>");
				response.setHeader("refresh", "1;URL=jsp/index_stu.jsp");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		new Db_connect().close();
		out.flush();
		out.close();
	}

	public void init() throws ServletException {
		// Put your code here
	}

}


Del_demo.java学生删除逻辑处理servlet

package ceshi;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import database.Db_connect;

public class Del_demo extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
		 * Constructor of the object.
		 */
	public Del_demo() {
		super();
	}

	/**
		 * Destruction of the servlet. <br>
		 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/**
		 * 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 {

		request.setCharacterEncoding("utf-8"); //1	
		response.setContentType("text/html;charset=utf-8"); //2
		PrintWriter out = response.getWriter();
		
		String sid = request.getParameter("sid");
		Connection conn  = new Db_connect().getConn();
		PreparedStatement pstm = null;
		int i=0;
		try {
			String sql="delete from stu where sid=?";
			pstm = conn.prepareStatement(sql);
			pstm.setString(1,sid);
			i = pstm.executeUpdate();
			if(i!=0) {
				response.getWriter().print("<script language='javascript'>alert('删除成功!')</script>");
				response.setHeader("refresh", "1;URL=jsp/index_stu.jsp");
			}else {
				response.getWriter().print("<script language='javascript'>alert('删除失败!')</script>");
				response.setHeader("refresh", "1;URL=jsp/index_stu.jsp");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		new Db_connect().close();
		out.flush();
		out.close();
	}

	/**
		 * The doPost method of the servlet. <br>
		 *
		 * This method is called when a form has its tag value method equals to post.
		 * 
		 * @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 doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		
		out.println("213");
		out.flush();
		out.close();
	}

	/**
		 * Initialization of the servlet. <br>
		 *
		 * @throws ServletException if an error occurs
		 */
	public void init() throws ServletException {
		// Put your code here
	}

}


add_stu.jsp学生添加显示页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="database.Db_connect,java.sql.*" %>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE>
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>学生信息添加表</title>
	<script src="https://cdn.bootcss.com/jquery/3.4.0/jquery.js"></script>
  </head>
  <body>
  	<h1>学生信息添加表</h1>
  	<input type="button" value="学生信息显示表" onclick="location.href='jsp/index_stu.jsp'" />
    <form action="Add_demo" method="post">
    <table width="500" border="1">
    <tr>
    	<td>姓名:</td>
    	<td><input type="text" name="sname" id="sname" /></td>
    </tr>
    <tr>
    	<td>性别:</td>
    	<td>
    		<input type="radio" name="sex" value="" id="sex" /><input type="radio" name="sex" value="" id="sex" /></td>
    </tr>
    <tr>
    	<td>头像:</td>
    	<td><input type="file" name="file" /></td>
    </tr>
    <tr>
    	<td>生日:</td>
    	<td><input type="date" name="brithday" id="brithday" /></td>
    </tr>
    <tr>
    	<td>班级:</td>
    	<td>
    		<select name="class" id="class">
    			<option>请选择</option>
    			<%
    				Connection conn  = new Db_connect().getConn();
    				String sql="select * from class";
    				PreparedStatement pst =conn.prepareStatement(sql);
		  			ResultSet rs = pst.executeQuery();
		  			while(rs.next()){
    			 %>
    			<option value="<%=rs.getString("id") %>"><%=rs.getString("cname") %></option>
    			<%
    				}
    			 %>
    		</select>
    	</td>
    </tr>
    <tr>
    	<td>操作</td>
    	<td><input type="submit" id="sub" name="sub" value="提交" /></td>
    </tr>
   	</table>
   	</form>
	<br>
  </body>
  <script type="text/javascript">
  	$("#sub").click(function(){
  		var sname=$("#sname").val();
  		var sex=document.getElementsByName("sex");
  		var sexval;
  		for(var i=0;i<sex.length;i++){
  			if(sex[i].checked==true) {
  				sexval=sex[i].value;
  				break;
  			}
  		}
  		var brithday=$("#brithday").val();
  		var banji=$("#class").val();
  		if(sname==""){
  			alert("请输入姓名!");
  			$("#sname").focus();
  			return false;
  		}
  		if(sexval==null){
  			alert("请选择性别!");
  			$("#sex").focus();
  			return false;
  		}
  		if(brithday==""){
  			alert("请输入生日!");
  			$("#brithday").focus();
  			return false;
  		}
  		if(banji==""){
  			alert("请选择班级!");
  			$("#banji").focus();
  			return false;
  		}
  	})
  </script>
</html>


Add_demo.java学生添加逻辑处理界面

package ceshi;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.sql.*;
import database.Db_connect;
public class Add_demo extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
		 * Constructor of the object.
		 */
	public Add_demo() {
		super();
	}

	/**
		 * Destruction of the servlet. <br>
		 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/**
		 * 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 {

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
		out.println("<HTML>");
		out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
		out.println("  <BODY>");
		out.print("    This is ");
		out.print(this.getClass());
		out.println(", using the GET method");
		out.println("  </BODY>");
		out.println("</HTML>");
		out.flush();
		out.close();
	}

	/**
		 * The doPost method of the servlet. <br>
		 *
		 * This method is called when a form has its tag value method equals to post.
		 * 
		 * @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 doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8"); //1	
		response.setContentType("text/html;charset=utf-8"); //2
		PrintWriter out = response.getWriter();

		String sname = request.getParameter("sname");
		String sex = request.getParameter("sex");
		String brithday = request.getParameter("brithday");
		String cid = request.getParameter("class");
		Connection conn  = new Db_connect().getConn();
		
		try {
			String sql="insert into `stu`(`sname`,`sex`,`brithday`,`cid`) VALUES (?,?,?,?)";
			PreparedStatement pst=conn.prepareStatement(sql);
			pst.setString(1, sname);
			pst.setString(2, sex);
			pst.setString(3, brithday);
			pst.setString(4, cid);
			int i=0;
			i = pst.executeUpdate();
			if(i!=0) {
				response.getWriter().print("<script language='javascript'>alert('添加成功!')</script>");
				response.setHeader("refresh", "1;URL=jsp/index_stu.jsp");
			}else {
				response.getWriter().print("<script language='javascript'>alert('添加失败!')</script>");
				response.setHeader("refresh", "1;URL=jsp/add_stu.jsp");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		new Db_connect().close();
		out.flush();
		out.close();
	}

	/**
		 * Initialization of the servlet. <br>
		 *
		 * @throws ServletException if an error occurs
		 */
	public void init() throws ServletException {
		// Put your code here
	}

}


upd_stu.jsp学生修改显示页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="database.Db_connect,java.sql.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"  %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE>
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>学生信息修改表</title>

  </head>
  <body>
  	<h1>学生信息修改表</h1>
  	<input type="button" value="学生信息显示表" onclick="location.href='jsp/index_stu.jsp'" />
    <form action="Upd2_demo" method="post">
    <table width="500" border="1">
    <%
		String sname =(String)request.getAttribute("sname");
		String sex =(String)request.getAttribute("sex");
		String brithday =(String)request.getAttribute("brithday");
		String cid =(String)request.getAttribute("cid");
		String sid =(String)request.getAttribute("sid");
	%>
    <tr>
    	<td>姓名:</td>
    	<td><input type="text" name="sname" value="<%=sname %>" /></td>
    </tr>
    <tr>
    	<td>性别:</td>
    	<td>
    		
    		<input type="radio" name="sex" ${sex=='男'?'checked':''} value="男" />男
    		<input type="radio" name="sex" ${sex=='女'?'checked':''} value="女" />女
    	</td>
    </tr>
    <tr>
    	<td>头像:</td>
    	<td><input type="file" name="file" /></td>
    </tr>
    <tr>
    	<td>生日:</td>
    	<td><input type="text" name="brithday" value="<%=brithday %>" /></td>
    </tr>
    <tr>
    	<td>班级:</td>
    	<td>
    		<select name="class">
    			<%
    				Connection conn  = new Db_connect().getConn();
    				String sql="select * from class";
    				PreparedStatement pst =conn.prepareStatement(sql);
		  			ResultSet rs = pst.executeQuery();
		  			while(rs.next()){
    			 %>
    			
    			<option <% if(rs.getString("id").equals(cid)){ %>selected="selected"<% }%>
    			 value="<%=rs.getString("id") %>">
    			<%=rs.getString("cname") %>
    			</option>
    			<%
    				}
    			%>
    		</select>
    	</td>
    </tr>
    <tr>
    	<td>操作</td>
    		
    	<td><input type="hidden" name="hid" value="<%=sid %>" />
    	<input type="submit" name="sub" value="提交" /></td>
    </tr>
   	</table>
   	</form>
	<br>
  </body>
</html>


Upd1_demo.java学生修改逻辑处理查询该学生

package ceshi;

import java.awt.List;
import java.io.*;
import java.sql.*;
import java.util.*;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import database.Db_connect;

public class Upd1_demo extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
		 * Constructor of the object.
		 */
	public Upd1_demo() {
		super();
	}

	/**
		 * Destruction of the servlet. <br>
		 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/**
		 * 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 {
		request.setCharacterEncoding("utf-8"); //1	
		response.setContentType("text/html;charset=utf-8"); //2
		PrintWriter out = response.getWriter();
		
		String sid = request.getParameter("sid");
		
		Connection conn  = new Db_connect().getConn(); 
		Statement state;

		String sql="select * from stu where sid="+sid;
		ResultSet rs=null;
		try {
			state = conn.createStatement();
			rs=state.executeQuery(sql);
			while(rs.next()) {
				String sname=rs.getString("sname");
			    String sex=rs.getString("sex");
			    String brithday=rs.getString("brithday");
			    String cid=rs.getString("cid");
			    request.setAttribute("sname",sname);
			    request.setAttribute("sex",sex);
			    request.setAttribute("brithday",brithday);
			    request.setAttribute("cid",cid);
			    request.setAttribute("sid",sid);
			    request.getRequestDispatcher("jsp/upd_stu.jsp").forward(request,response);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	   
	    new Db_connect().close();
	}

	/**
		 * The doPost method of the servlet. <br>
		 *
		 * This method is called when a form has its tag value method equals to post.
		 * 
		 * @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 doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
		out.println("<HTML>");
		out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
		out.println("  <BODY>");
		out.print("    This is ");
		out.print(this.getClass());
		out.println(", using the POST method");
		out.println("  </BODY>");
		out.println("</HTML>");
		out.flush();
		out.close();
	}

	/**
		 * Initialization of the servlet. <br>
		 *
		 * @throws ServletException if an error occurs
		 */
	public void init() throws ServletException {
		// Put your code here
	}

}


Upd2_demo.java学生修改逻辑处理

package ceshi;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import database.Db_connect;

public class Upd2_demo extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
		 * Constructor of the object.
		 */
	public Upd2_demo() {
		super();
	}

	/**
		 * Destruction of the servlet. <br>
		 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/**
		 * 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 {

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
		out.println("<HTML>");
		out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
		out.println("  <BODY>");
		out.print("    This is ");
		out.print(this.getClass());
		out.println(", using the GET method");
		out.println("  </BODY>");
		out.println("</HTML>");
		out.flush();
		out.close();
	}

	/**
		 * The doPost method of the servlet. <br>
		 *
		 * This method is called when a form has its tag value method equals to post.
		 * 
		 * @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 doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		request.setCharacterEncoding("utf-8"); //1	
		response.setContentType("text/html;charset=utf-8"); //2
		PrintWriter out = response.getWriter();
		
		String sid = request.getParameter("hid");
		String sname = request.getParameter("sname");
		String sex = request.getParameter("sex");
		String brithday = request.getParameter("brithday");
		String cid = request.getParameter("class");
		Connection conn  = new Db_connect().getConn();
		try {
			String sql="update stu set sname=?,sex=?,brithday=?,cid=? where sid="+sid;
			PreparedStatement pst=conn.prepareStatement(sql);
			pst.setString(1, sname);
			pst.setString(2, sex);
			pst.setString(3, brithday);
			pst.setString(4, cid);
			int i=0;
			i = pst.executeUpdate();
			if(i!=0) {
				response.getWriter().print("<script language='javascript'>alert('修改成功!')</script>");
				response.setHeader("refresh", "1;URL=jsp/index_stu.jsp");
			}else {
				response.getWriter().print("<script language='javascript'>alert('修改失败!')</script>");
				response.setHeader("refresh", "1;URL=jsp/index_stu.jsp");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
		out.flush();
		out.close();
	}

	/**
		 * Initialization of the servlet. <br>
		 *
		 * @throws ServletException if an error occurs
		 */
	public void init() throws ServletException {
		// Put your code here
	}

}

Signout_demo.java学生信息退出逻辑处理

package ceshi;

import java.io.IOException;
import java.io.PrintWriter;

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;

/**
 * Servlet implementation class Signout_demo
 */
@WebServlet("/Signout_demo")
public class Signout_demo extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Signout_demo() {
        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 stub
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		
		Cookie[] cookies=request.getCookies();

	    for(Cookie cookie: cookies){

            cookie.setMaxAge(0); 

//            cookie.setPath(request.getContextPath()+"/jsp/index_stu.jsp"); 

            response.addCookie(cookie);    
            
	    }
	    response.sendRedirect(request.getContextPath()+"/jsp/login.jsp");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

Listener_demo使用到的监听器(基本上没怎么用到)

package listener;

import javax.servlet.AsyncEvent;
import javax.servlet.AsyncListener;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionIdListener;
import javax.servlet.http.HttpSessionListener;

/**
 * Application Lifecycle Listener implementation class Listener_demo
 *
 */
@WebListener
public class Listener_demo implements ServletContextListener, ServletContextAttributeListener, HttpSessionListener, HttpSessionAttributeListener, HttpSessionActivationListener, HttpSessionBindingListener, HttpSessionIdListener, ServletRequestListener, ServletRequestAttributeListener, AsyncListener {

    /**
     * Default constructor. 
     */
    public Listener_demo() {
    	
    }

	/**
     * @see HttpSessionListener#sessionCreated(HttpSessionEvent)
     */
    public void sessionCreated(HttpSessionEvent se)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see ServletContextAttributeListener#attributeRemoved(ServletContextAttributeEvent)
     */
    public void attributeRemoved(ServletContextAttributeEvent event)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see AsyncListener#onError(AsyncEvent)
     */
    public void onError(AsyncEvent event) throws java.io.IOException { 
         // TODO Auto-generated method stub
    }

	/**
     * @see HttpSessionIdListener#sessionIdChanged(HttpSessionEvent, String)
     */
    public void sessionIdChanged(HttpSessionEvent event, String oldSessionId)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see ServletRequestAttributeListener#attributeAdded(ServletRequestAttributeEvent)
     */
    public void attributeAdded(ServletRequestAttributeEvent srae)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see AsyncListener#onTimeout(AsyncEvent)
     */
    public void onTimeout(AsyncEvent event) throws java.io.IOException { 
         // TODO Auto-generated method stub
    }

	/**
     * @see HttpSessionAttributeListener#attributeReplaced(HttpSessionBindingEvent)
     */
    public void attributeReplaced(HttpSessionBindingEvent event)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see HttpSessionActivationListener#sessionWillPassivate(HttpSessionEvent)
     */
    public void sessionWillPassivate(HttpSessionEvent se)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see ServletContextListener#contextInitialized(ServletContextEvent)
     */
    public void contextInitialized(ServletContextEvent sce)  { 
         String contextPath = sce.getServletContext().getContextPath();
         sce.getServletContext().setAttribute("app", contextPath);
         //在登录界面使用了该title
         sce.getServletContext().setAttribute("title", "学生管理系统");
    }

	/**
     * @see ServletContextAttributeListener#attributeAdded(ServletContextAttributeEvent)
     */
    public void attributeAdded(ServletContextAttributeEvent event)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see AsyncListener#onComplete(AsyncEvent)
     */
    public void onComplete(AsyncEvent event) throws java.io.IOException { 
         // TODO Auto-generated method stub
    }

	/**
     * @see ServletRequestListener#requestDestroyed(ServletRequestEvent)
     */
    public void requestDestroyed(ServletRequestEvent sre)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see ServletRequestAttributeListener#attributeRemoved(ServletRequestAttributeEvent)
     */
    public void attributeRemoved(ServletRequestAttributeEvent srae)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see AsyncListener#onStartAsync(AsyncEvent)
     */
    public void onStartAsync(AsyncEvent event) throws java.io.IOException { 
         // TODO Auto-generated method stub
    }

	/**
     * @see HttpSessionBindingListener#valueBound(HttpSessionBindingEvent)
     */
    public void valueBound(HttpSessionBindingEvent event)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see ServletRequestListener#requestInitialized(ServletRequestEvent)
     */
    public void requestInitialized(ServletRequestEvent sre)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)
     */
    public void sessionDestroyed(HttpSessionEvent se)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see HttpSessionActivationListener#sessionDidActivate(HttpSessionEvent)
     */
    public void sessionDidActivate(HttpSessionEvent se)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see ServletContextListener#contextDestroyed(ServletContextEvent)
     */
    public void contextDestroyed(ServletContextEvent sce)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see ServletRequestAttributeListener#attributeReplaced(ServletRequestAttributeEvent)
     */
    public void attributeReplaced(ServletRequestAttributeEvent srae)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see HttpSessionAttributeListener#attributeAdded(HttpSessionBindingEvent)
     */
    public void attributeAdded(HttpSessionBindingEvent event)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see HttpSessionAttributeListener#attributeRemoved(HttpSessionBindingEvent)
     */
    public void attributeRemoved(HttpSessionBindingEvent event)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see ServletContextAttributeListener#attributeReplaced(ServletContextAttributeEvent)
     */
    public void attributeReplaced(ServletContextAttributeEvent event)  { 
         // TODO Auto-generated method stub
    }

	/**
     * @see HttpSessionBindingListener#valueUnbound(HttpSessionBindingEvent)
     */
    public void valueUnbound(HttpSessionBindingEvent event)  { 
         // TODO Auto-generated method stub
    }
	
}

Login_filter.java使用到的过滤器(判断是否登录)

package filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet Filter implementation class Login_filter
 */
//@WebFilter("/Login_filter")
public class Login_filter implements Filter {

    /**
     * Default constructor. 
     */
    public Login_filter() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Filter#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
	}

	/**
	 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		//向下转型的目的就是为了子类也能用父类中的方法
		HttpServletRequest req = (HttpServletRequest)request;
		HttpServletResponse res = (HttpServletResponse)response;
		// requsetURI的值是:/Wangchuang/Login_filter
		String requsetURI = req.getRequestURI();
		if((req.getContextPath()+"/jsp/login.jsp").equals(requsetURI)||(req.getContextPath()+"/Login_demo").equals(requsetURI)) {
			chain.doFilter(req, res);
			return ;
		}
		String username ="";
		Cookie[] Cookies = req.getCookies();  
	    for(int i =0;i<Cookies.length;i++){  
	        Cookie c = Cookies[i];
	        if(c.getName().equals("username")) {
	        	username=c.getValue();
	        }
	    }
		if(username=="") {
			//为了做别的吧这个先注释掉
//			res.sendRedirect(req.getContextPath()+"/jsp/login.jsp");
			chain.doFilter(req, res);
			return ;
		}else {
			chain.doFilter(req, res);
			return ;	
		}
	}

	/**
	 * @see Filter#init(FilterConfig)
	 */
	public void init(FilterConfig fConfig) throws ServletException {
		// TODO Auto-generated method stub
	}

}

在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值