基于JavaScript、Javabean、Servlet、ajax的异步请求登录注册找回密码Javaweb项目

来源:互联网 发布:网络有什么坏处 编辑:程序博客网 时间:2024/05/12 00:46

基于JavaScript原生代码、Javabean、Servlet、ajax的异步请求登录注册找回密码Javaweb项目,加了一个过滤器若未登录不能直接访问过滤器设置要过滤的界面,这个简单项目是自己初学的时候自己写的,有些不足之处,见谅哈。。。

用的数据库为person中的persons表mysql数据库

下面贴出代码:

1、xml配置文件

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">  <display-name>JavaWebLyy</display-name>  <welcome-file-list>    <welcome-file>index.html</welcome-file>    <welcome-file>index.htm</welcome-file>    <welcome-file>index.jsp</welcome-file>    <welcome-file>default.html</welcome-file>    <welcome-file>default.htm</welcome-file>    <welcome-file>default.jsp</welcome-file>  </welcome-file-list>  <servlet>    <servlet-name>OperateQuery</servlet-name>    <servlet-class>ope.OperateQuery</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>OperateQuery</servlet-name>    <url-pattern>/OperateQuery</url-pattern>  </servlet-mapping>  <servlet>    <servlet-name>CheckServlet</servlet-name>    <servlet-class>ope.CheckServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>CheckServlet</servlet-name>    <url-pattern>/CheckServlet</url-pattern>  </servlet-mapping>  <servlet>    <servlet-name>OperateInsert</servlet-name>    <servlet-class>ope.OperateInsert</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>OperateInsert</servlet-name>    <url-pattern>/OperateInsert</url-pattern>  </servlet-mapping>  <servlet>    <servlet-name>OperateUpdate</servlet-name>    <servlet-class>ope.OperateUpdate</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>OperateUpdate</servlet-name>    <url-pattern>/OperateUpdate</url-pattern>  </servlet-mapping>  <servlet>    <servlet-name>OperateFind</servlet-name>    <servlet-class>ope.OperateFind</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>OperateFind</servlet-name>    <url-pattern>/OperateFind</url-pattern>  </servlet-mapping>  <filter>  <filter-name>loginfilter</filter-name>  <filter-class>filters.LoginFilter</filter-class>  </filter>  <filter-mapping>  <filter-name>loginfilter</filter-name>  <url-pattern>/show.jsp</url-pattern>  </filter-mapping>  </web-app>
2、连接数据库的javabean类JdbcUtil.java,,,用的 properties文件的方式该文件在下面贴出来

package dbc;import java.sql.*;import java.util.Properties;public final class JdbcUtil {private static String DBDRIVER;private static String DBURL;private static String DBUSER;private static String DBPASSWORD;private static Properties pr = new Properties();public static Connection getConnection() {try {pr.load(JdbcUtil.class.getClassLoader().getResourceAsStream("db.properties"));DBDRIVER = pr.getProperty("driver");DBURL = pr.getProperty("url");DBUSER = pr.getProperty("username");DBPASSWORD = pr.getProperty("password");Class.forName(DBDRIVER);Connection conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);return conn;} catch (Exception e) {return null;}}public static void free(ResultSet rs, Statement st, Connection conn) {try {if (rs != null)rs.close();} catch (SQLException e) {e.printStackTrace();} finally {if (conn != null)try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}}


3、登录界面Main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><link href="page.css" type="text/css" rel="stylesheet"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript">var xmlHttp;var flag;var xmlHttp1;function creatXMLHttp() {if (window.XMLHttpRequest) {xmlHttp = new XMLHttpRequest();} else {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}}function checkUserid(userid) {creatXMLHttp();xmlHttp.open("POST", "CheckServlet?userid=" + userid);xmlHttp.onreadystatechange = checkUseridCallback;xmlHttp.send(null);document.getElementById("msg").innerHTML = "正在验证...";}function checkUseridCallback() {if (xmlHttp.readyState == 4) {if (xmlHttp.status == 200) {var text = xmlHttp.responseText;if (text == "true") {flag = false;document.getElementById("msg").innerHTML = "此用户id可登陆!";} else {flag = true;document.getElementById("msg").innerHTML = "用户id不存在,请重新输入!";}}}}function checkForm() {return flag;}function creatXMLHttp1() {if (window.XMLHttpRequest) {xmlHttp1 = new XMLHttpRequest();} else {xmlHttp1 = new ActiveXObject("Microsoft.XMLHTTP");}}function landX(id, pwd) {creatXMLHttp1();xmlHttp1.open("POST", "OperateQuery?userid=" + id + "&userpwd=" + pwd);xmlHttp1.onreadystatechange = landCallback;xmlHttp1.send(null);document.getElementById("mss").innerHTML = "正在登录...";}function landCallback() {if (xmlHttp1.readyState == 4) {if (xmlHttp1.status == 200) {var text = xmlHttp1.responseText;if (text == "true") {document.getElementById("mss").innerHTML = "欢迎登录本系统!祝你天天快乐!";window.location.href = 'show.jsp';} else {document.getElementById("mss").innerHTML = "密码错误,请重新登录!";}}}}</script><title>登录</title></head><body><%request.setCharacterEncoding("UTF-8");%><div class="bg2"><form action="Main.jsp" method="post" onsubmit="return checkForm()"class="bg3"><table width="300" border="0" cellspacing="4" cellpadding="0"align="center"><tr><td colspan="2" align="center" height="20" class="font11"><h2>LogIn</h2></td></tr><tr><td align="right" class="font-b">帐号:</td><td align="center"><input autofocus type="text"placeholder="请输入用户名" name="userid"onblur="checkUserid(this.value)" class="name02" requiredaria-required="true"></td></tr><tr><td> </td><td>      <span id="msg"></span></td></tr><tr><td align="right" class="font-b">密码:</td><td align="center"><input type="password" placeholder="请输入密码"name="userpwd" class="name02" required aria-required="true"></td></tr><tr><td> </td><td> <span id="mss"></span></td></tr><tr><td align="right"></td><td align="left">     <input type="submit"onclick="landX(userid.value,userpwd.value)" size="50" value="登录">   <a href="Register.jsp" class="font12">注册</a> <a href="Find.jsp"class="font12">找回密码</a> <a href="Updateone.jsp" class="font12">修改密码</a></td></tr><tr><td> </td><td> </td></tr></table></form></div></body></html>
4、数据库操作类UserDao.java类

package dbc;import java.sql.*;public class UserDao {private static Connection conn = null;private static PreparedStatement pstmt = null;private static ResultSet rs = null;public static int insert(String id,String pwd,String email) {int n = 0;try {conn = JdbcUtil.getConnection();String sql = "insert into persons value(?,?,?)";pstmt = conn.prepareStatement(sql);pstmt.setString(1, id);pstmt.setString(2, pwd);pstmt.setString(3, email);n = pstmt.executeUpdate();return n;} catch (Exception e) {e.printStackTrace();return 0;}finally{JdbcUtil.free(rs, pstmt, conn);}}public static int update(String id,String pwd) {int n = -1;try {conn = JdbcUtil.getConnection();String sql = "update  persons set userpwd=?  where userid=?";pstmt = conn.prepareStatement(sql);pstmt.setString(1,pwd);pstmt.setString(2,id);n = pstmt.executeUpdate();return n;} catch (Exception e) {e.printStackTrace();return 0;}finally{JdbcUtil.free(rs, pstmt, conn);}}public static int query(String id,String pwd) {try {conn = JdbcUtil.getConnection();String sql = "select count(userid) from persons  where userid=? and userpwd=?";pstmt = conn.prepareStatement(sql);pstmt.setString(1, id);pstmt.setString(2, pwd);rs = pstmt.executeQuery();int re=0;rs.beforeFirst();if(rs.next()){re=rs.getInt(1);}return re;} catch (SQLException e) {e.printStackTrace();return 0;}finally{JdbcUtil.free(rs, pstmt, conn);}}public static int check(String id){try {conn = JdbcUtil.getConnection();String sql="select count(userid) as count_id from persons  where userid=?";pstmt = conn.prepareStatement(sql);pstmt.setString(1,id);rs = pstmt.executeQuery();int re=0;//before方法和next方法一定要存在getInt才会执行!!!!!!!!找了好长时间的错 。。。//rs.beforeFirst();while(rs.next()){//索引顺序从1开始,,不是从零开始啊啊啊啊 啊 啊啊啊!!!!re=rs.getInt(1);int re1=Integer.parseInt(rs.getString("count_id"));System.out.println(re1);}return re;} catch (SQLException e) {e.printStackTrace();return 0;}finally{JdbcUtil.free(rs, pstmt, conn);}}public static String find(String id,String email) {try {conn = JdbcUtil.getConnection();String sql = "select * from persons  where userid=? and useremail=?";pstmt = conn.prepareStatement(sql);pstmt.setString(1, id);pstmt.setString(2, email);rs = pstmt.executeQuery();rs.beforeFirst();String pp = null;//现在的主要问题是怎么将密码传出去,怎么显示出来密码!!!!!!if(rs.next()){pp=rs.getString(2);}return pp;} catch (SQLException e) {e.printStackTrace();return null;}finally{JdbcUtil.free(rs, pstmt, conn);}}}

5、登录界面传请求的servlet页面CheckServlet.java

package ope;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 dbc.UserDao;public class CheckServlet extends HttpServlet {private static final long serialVersionUID = 1L;             public CheckServlet() {        super();            }    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    request.setCharacterEncoding("UTF-8");        PrintWriter out=response.getWriter();    String id=request.getParameter("userid");        int num=UserDao.check(id);    if (num>=1) {out.print("true");}else{out.print("false");}    out.close();  }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}}

6.注册页面Register.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><link href="page.css" type="text/css" rel="stylesheet"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript">var xmlHttp;var flag;var xmlHttp1;function creatXMLHttp(){if(window.XMLHttpRequest){xmlHttp=new XMLHttpRequest();}else{xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}}function checkUserid(userid){creatXMLHttp();xmlHttp.open("POST","CheckServlet?userid="+userid);xmlHttp.onreadystatechange=checkUseridCallback;xmlHttp.send(null);document.getElementById("msg").innerHTML="正在验证...";}function checkUseridCallback(){if(xmlHttp.readyState==4){if(xmlHttp.status==200){var text=xmlHttp.responseText;if(text=="true"){flag=false;document.getElementById("msg").innerHTML="此用户已存在,请重新输入!";}else{flag=true;document.getElementById("msg").innerHTML="用户id不存在,可以使用!";}}}}function checkForm(){return flag;}function creatXMLHttp1(){if(window.XMLHttpRequest){xmlHttp1=new XMLHttpRequest();}else{xmlHttp1=new ActiveXObject("Microsoft.XMLHTTP");}}function insert(id,pwd,email){creatXMLHttp1();xmlHttp1.open("POST","OperateInsert?userid="+id+"&userpwd="+pwd+"&useremail="+email);xmlHttp1.onreadystatechange=insertCallback;xmlHttp1.send(null);document.getElementById("mss").innerHTML="正在注册...";}function insertCallback(){if(xmlHttp1.readyState==4){if(xmlHttp1.status==200){var text=xmlHttp1.responseText;if(text=="true"){document.getElementById("mss").innerHTML="注册成功啦!!";}else{document.getElementById("mss").innerHTML="注册失败啦!!";}}}}</script><title>注册</title></head><body><% request.setCharacterEncoding("UTF-8"); %><div class="bg2"><form action="Register.jsp" method="post" onsubmit="return checkForm()" class="bg3"><center> <table width="300" border="0" cellspacing="6" cellpadding="0"  align="center"> <tr><td colspan="2" align="center" height="20" class="font11"><h2>Register</h2></td></tr> <tr><td align="right" class="font-b">帐号:</td><td align="center"><input autofocus type="text" placeholder="请输入用户名" name="userid" onblur="checkUserid(this.value)" class="name02" required aria-required="true">  </td></tr><tr><td>  </td><td>      <span id="msg"></span></td></tr><tr><td align="right" class="font-b">密码:</td><td align="center" ><input type="password" placeholder="请输入密码" name="userpwd"  class="name02" required aria-required="true"></td></tr><tr><td>  </td><td>      <span id="msg"></span></td></tr><tr><td align="right" class="font-b">email:</td><td align="center" ><input type="text" placeholder="请输入email,用于找回密码!" name="useremail"  class="name02" required aria-required="true"></td></tr><tr><td> </td><td> <span id="mss"></span></td></tr><tr><td align="right"> </td><td align="left">    <input type="submit" onclick="insert(userid.value,userpwd.value,useremail.value)"value="注册">   <a href="Main.jsp" class="font12">登录</a>  </td></tr><tr><td> </td><td> </td></tr> </table></center> </form> </div></body></html>
7.注册页面发送的请求servlet页面OperateInsert.java

package ope;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 dbc.UserDao;public class OperateInsert extends HttpServlet {private static final long serialVersionUID = 1L;       public OperateInsert() {        super();    }    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    request.setCharacterEncoding("UTF-8");    PrintWriter out=response.getWriter();    String id=request.getParameter("userid");    String pwd=request.getParameter("userpwd");    String email=request.getParameter("useremail");    int num=UserDao.insert(id,pwd,email);    if (num>=1) {out.print("true");}else{out.print("false");}    out.close();  }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}}

8.更新的两个界面Updateone.jsp和Update.jsp

updateone界面

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><link href="page.css" type="text/css" rel="stylesheet"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>更新界面</title><script type="text/javascript">var xmlHttp;var flag;var xmlHttp1;function creatXMLHttp(){if(window.XMLHttpRequest){xmlHttp=new XMLHttpRequest();}else{xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}}function checkUserid(userid){creatXMLHttp();xmlHttp.open("POST","CheckServlet?userid="+userid);xmlHttp.onreadystatechange=checkUseridCallback;xmlHttp.send(null);document.getElementById("msg").innerHTML="正在验证...";}function checkUseridCallback(){if(xmlHttp.readyState==4){if(xmlHttp.status==200){var text=xmlHttp.responseText;if(text=="true"){flag=false;document.getElementById("msg").innerHTML="此用户存在!";}else{flag=true;document.getElementById("msg").innerHTML="用户id不存在!";}}}}function creatXMLHttp1(){if(window.XMLHttpRequest){xmlHttp1=new XMLHttpRequest();}else{xmlHttp1=new ActiveXObject("Microsoft.XMLHTTP");}}function landX(id,pwd){creatXMLHttp1();xmlHttp1.open("POST","OperateQuery?userid="+id+"&userpwd="+pwd);xmlHttp1.onreadystatechange=landCallback;xmlHttp1.send(null);document.getElementById("mss").innerHTML="正在验证...";}function landCallback(){if(xmlHttp1.readyState==4){if(xmlHttp1.status==200){var text=xmlHttp1.responseText;if(text=="true"){alert("密码正确!请点击确定按钮!");}else{alert("密码错误,请重新输入!");}}}}</script></head><body><div class="bg2"><form action="Update.jsp" method="post"  class="bg3"><table border="0" align="center" width="250" cellspacing="5"><tr><td colspan="2" align="center" height="20" class="font11"><h4>Update</h4></td></tr><tr><td align="center" class="font-b"><b>账号:</b></td><td align="center"><input autofocus type="text" onblur="checkUserid(this.value)"placeholder="账号" name="userid" required aria-required="true"></td></tr> <tr><td> </td><td>  <span id="msg"></span></td></tr><tr><td align="center" class="font-b"><b>密码:</b></td><td align="center"><input autofocus type="text"placeholder="密码" name="userpwd" required aria-required="true" onblur="landX(userid.value,userpwd.value)" ></td></tr> <tr><td colspan="2" class="font12" align="center">请输入所想要修改人的账号和原密码!!</td></tr><tr><td> </td><td align="left"><input type="button" value="验证"><input type="submit"  value="确定"> </td></tr><tr><td> </td><td> </td></tr></table></form></div></body></html>
update.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><link href="page.css" type="text/css" rel="stylesheet"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript">var xmlHttp1;function creatXMLHttp1(){if(window.XMLHttpRequest){xmlHttp1=new XMLHttpRequest();}else{xmlHttp1=new ActiveXObject("Microsoft.XMLHTTP");}}function update(id,pwd){creatXMLHttp1();xmlHttp1.open("POST","OperateUpdate?userid="+id+"&userpwd="+pwd);xmlHttp1.onreadystatechange=updateCallback;xmlHttp1.send(null);document.getElementById("mss").innerHTML="正在修改...";}function updateCallback(){if(xmlHttp1.readyState==4){if(xmlHttp1.status==200){var text=xmlHttp1.responseText;if(text=="true"){document.getElementById("mss").innerHTML="密码修改成功!!";}else{document.getElementById("mss").innerHTML="密码修改失败啦!!";}}}}</script><title>注册</title></head><body><% request.setCharacterEncoding("UTF-8");String id=(String)request.getParameter("userid");%><div class="bg2"><form action="Update.jsp" method="post" onsubmit="return checkForm()" class="bg3"> <center> <table width="300" border="0" cellspacing="8" cellpadding="0"  align="center"> <tr><td colspan="2" align="center" height="20" class="font11"><h2>Update</h2></td></tr> <tr><td align="right" class="font-b">帐    号:</td><td align="center"><input autofocus  type="text" placeholder="请输入用户名" name="userid" value=<%=id%>  class="name02" required aria-required="true">  </td></tr><tr><td>  </td><td>      <span id="msg"></span></td></tr><tr><td align="right" class="font-b">新密码:</td><td align="center" ><input   type="password" placeholder="请输入新密码" name="userpwd"  class="name02" required aria-required="true"></td></tr><tr><td> </td><td> <span id="mss"></span></td></tr><tr><td align="right"> </td><td align="left">    <input type="submit" onclick="update(userid.value,userpwd.value)"value="更新">   <a href="Main.jsp" class="font12">登录</a>  </td></tr><tr><td> </td><td> </td></tr> </table> </center> </form> </div></body></html>

9、更新页面发送请求到的界面OperateUpdate.java

package ope;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 dbc.UserDao;public class OperateUpdate extends HttpServlet {private static final long serialVersionUID = 1L;       public OperateUpdate() {        super();    }    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    request.setCharacterEncoding("UTF-8");    PrintWriter out=response.getWriter();    String id=request.getParameter("userid");    String pwd=request.getParameter("userpwd");    int num=UserDao.update(id,pwd);    if (num>=1) {out.print("true");}else{out.print("false");}    out.close();  }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}}

10、找回密码界面Find.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><link href="page.css" type="text/css" rel="stylesheet"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>找回密码页面</title></head><script type="text/javascript"> var xmlHttp;var flag;var xmlHttp1;function creatXMLHttp(){if(window.XMLHttpRequest){xmlHttp=new XMLHttpRequest();}else{xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}}function checkUserid(userid){creatXMLHttp();xmlHttp.open("POST","CheckServlet?userid="+userid);xmlHttp.onreadystatechange=checkUseridCallback;xmlHttp.send(null);document.getElementById("msg").innerHTML="正在验证...";}function checkUseridCallback(){if(xmlHttp.readyState==4){if(xmlHttp.status==200){var text=xmlHttp.responseText;if(text=="true"){flag=false;document.getElementById("msg").innerHTML="存在此用户id!";}else{flag=true;document.getElementById("msg").innerHTML="用户id不存在,请重新输入!";}}}}function checkForm(){return flag;}function creatXMLHttp1(){if(window.XMLHttpRequest){xmlHttp1=new XMLHttpRequest();}else{xmlHttp1=new ActiveXObject("Microsoft.XMLHTTP");}}function find(id,email){creatXMLHttp1();xmlHttp1.open("POST","OperateFind?userid="+id+"&useremail="+email);xmlHttp1.onreadystatechange=findCallback;xmlHttp1.send(null);document.getElementById("mss").innerHTML="正在找回密码...";}function findCallback(){if(xmlHttp1.readyState==4){if(xmlHttp1.status==200){var text=xmlHttp1.responseText;if(text!="false"){document.getElementById("mss").innerHTML="找回密码成功!";alert("密码:"+text);}else{document.getElementById("mss").innerHTML="找回密码失败,请重新输入!";}}}}</script><body><% request.setCharacterEncoding("UTF-8"); %><div class="bg2"> <form action="Find.jsp" method="post" onsubmit="return checkForm()" class="bg3"><center> <table width="300" border="0" cellspacing="6" cellpadding="0"  align="center"> <tr><td colspan="2" align="center" height="20" class="font11"><h4>Find Password</h4></td></tr> <tr><td align="right" class="font-b">帐号:</td><td align="center"><input autofocus type="text" placeholder="请输入用户名" name="userid" onblur="checkUserid(this.value)" class="name02" required aria-required="true">  </td></tr><tr><td>  </td><td>      <span id="msg"></span></td></tr><tr><td align="right" class="font-b">email:</td><td align="center" ><input type="text" placeholder="请输入注册时写入的email" name="useremail"  class="name02" required aria-required="true"></td></tr><tr><td> </td><td> <span id="mss"></span></td></tr><tr><td align="right"> </td><td align="left">    <input type="submit" onclick="find(userid.value,useremail.value)" value="找回密码">   <a href="Main.jsp" class="font12">登录</a>  </td></tr><tr><td> </td><td> </td></tr> </table></center></form></div></body></html>
11.找回密码的请求的servlet页面OperateFind.java

package ope;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 dbc.UserDao;public class OperateFind extends HttpServlet {private static final long serialVersionUID = 1L;    public OperateFind() {        super();    }protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    request.setCharacterEncoding("UTF-8");    String id=request.getParameter("userid");    String email=request.getParameter("useremail");    PrintWriter out=response.getWriter();    String pp=UserDao.find(id,email);     if (pp!=null) {out.print(pp);}else{out.print("false");}    out.close();    }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}}

12.db.properties文件

driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/person?useUnicode=true&characterEncoding=UTF-8username=rootpassword=12345


13.page.css文件

@CHARSET "UTF-8";a:link {text-decoration: none;}.strong{font-size:36px;}body{background-image:url(image/1.jpg);background-size:100%;background-repeat:no-repeat;}.bg2{margin-top:10%;margin-left:30%;margin-right:30%;}.bg3{background-image:url(image/2.jpg);background-repeat:no-repeat;    background-size:100% 100%; } }.font11 {font-family: "微软雅黑","黑体";font-size: 25px;color: #ff0000;vertical-align: top;position:relative;font-style:italic ;font-weight:200;text-shadow:-6px -6px 4px gray} .btn01 {font-family: Arial;font-size: 12px;color: #FFFFFF;text-align: center;vertical-align: middle;background-image: url(D:/image/login.gif);height: 21px;width: 49px;background-repeat: no-repeat;background-position: center center;}.input01 {height: 21px;width: 220px;border: 1px solid #666666;}.font-b {font-family: Arial;font-size: 14px;font-weight: bold;color: #000000;}.font12 {font-family: Arial;font-size: 14px;font-weight: bold;color: red;}.font13 {font-family: Arial;font-size: 14px;font-weight: bold;color: black;}.name01{width:180px;height:20px;border:none;}.name02{outline-color: #c0c0c0;outline-style: groove;    outline-width: medium;     width:200px;height:20px;}  .font15 {font-family: Arial;font-size: 35px;color: #0000ff;vertical-align: top;position:relative;font-style:italic ;font-weight:900} input[type="text"]:focus,input[type="password"]:focus{border:1px solid gray;background-color:#FEC0DC;}.font16 {font-family: "微软雅黑","黑体";font-size: 24px;color: red;vertical-align: top;position:relative;font-style:italic ; text-decoration: none;font-weight: 900;text-shadow: -6px -6px 4px gray;}


14、过滤器代码LoginFilter.java

package filters;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class LoginFilter extends HttpServlet implements Filter {private static final long serialVersionUID = 1L;           public LoginFilter() {        super();    }    public void init(FilterConfig arg0) throws javax.servlet.ServletException {         }    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterchain) throws java.io.IOException, javax.servlet.ServletException {HttpServletRequest requ=(HttpServletRequest)request;HttpServletResponse resp=(HttpServletResponse)response;HttpSession session=requ.getSession();if(session.getAttribute("UserId")==null){resp.sendRedirect("Main.jsp");}else{filterchain.doFilter(request, response);}    }}


1 0