功能简介
- 登录功能
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
}
}