Servlet +JSP+Javabean 实现用户登录注册

来源:互联网 发布:基础建筑学软件 编辑:程序博客网 时间:2024/05/22 02:05

 目录结构:



代码:

login.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><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>登录验证</title><script type="text/javascript">function check(){var uname = document.getElementById("uname").value;var upassword = document.getElementById("upassword").value;if(uname==""){alert("用户名为空!");return false;}if(upassword==""){alert("密码为空!");return false;}}if(window.top!=window){ window.top.location = "Login";}</script></head><body>  <center>     <h1>用户登录</h1>     <hr/>     <form action="${pageContext.request.contextPath }/Login" method="post" onsubmit="return check()">        <table border="0" width="400px">           <tr>             <td align="right">用户名:</td>             <td><input type="text" id="uname" name="username" style="width: 180px"/></td>           </tr>           <tr>             <td align="right">密    码:</td>             <td><input type="password" id="upassword" name="password" style="width: 180px"/></td>           </tr>           <tr>             <td align="right"><input type="submit" value="登录"/></td>             <td><input type="reset" value="重置"/></td>             <td><a href="${pageContext.request.contextPath }/Register.jsp">尚未注册,注册用户</a></td>           </tr>           <tr>             <td></td>             <td><font color="red">${message}</font></td>           </tr>        </table>     </form>  </center></body></html>

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><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>注册用户</title><script type="text/javascript">function check(){var uname = document.getElementById("uname").value;var upassword = document.getElementById("upassword").value;var upasswordtwo = document.getElementById("upasswordtwo").value;var phone = document.getElementById("phone").value;var email = document.getElementById("email").value;if(uname==""){alert("用户名为空!");return false;}if(upassword==""){alert("密码为空!");return false;}if(upasswordtwo==""){alert("请再次输入密码!");return false;}if(upassword != upasswordtwo){alert("两次密码不一致!");return false;}if(phone==""){alert("电话号码为空!");return false;}if(email==""){alert("电子邮箱为空!");return false;}}if(window.top!=window){ window.top.location = "Login";}</script></head><body> <center>  <h1>用户注册</h1>  <hr/>  <form action="${pageContext.request.contextPath }/Register" method="post" onsubmit="return check()">   <table border="0" width="420px">     <tr>       <td align="right">用户名:</td>       <td><input type="text" id="uname" name="username" style="width: 180px"/></td>     </tr>     <tr>        <td align="right">密    码:</td>        <td><input type="password" id="upassword" name="password" style="width: 180px"/></td>     </tr>     <tr>        <td align="right">确认密码:</td>        <td><input type="password" id="upasswordtwo" name="passwordtwo" style="width: 180px"/></td>     </tr>     <tr>        <td align="right">手机号码:</td>        <td><input type="text" id="phone" name="phone" style="width: 180px"/></td>     </tr>     <tr>        <td align="right">电子邮箱:</td>        <td><input type="text" id="email" name="email" style="width: 180px"/></td>     </tr>     <tr>        <td align="right"><input type="submit" value="提交注册"/></td>        <td><input type="reset" value="重置"/></td>        <td><a href="${pageContext.request.contextPath }/login.jsp">已经注册,直接登录</a></td>     </tr>     <tr>        <td></td>        <td><font color="red">${register}</font></td>     </tr>   </table>  </form> </center></body></html>

Main.jsp

<%@page import="java.util.Date"%><%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>页面头部</title><script type="text/javascript">function doLogout(){  //访问LogoutServlet注销当前登录的用户  window.parent.location.href="${pageContext.request.contextPath}/Logout";  //以父容器的形式跳出frameset框架}var timerID = null;  var timerRunning = false;  function showtime() {      var now = new Date();     // var now = new Date().format("yyyy-MM-dd HH:mm:ss");   // document.clock.thetime.value = now.toString();     document.clock.thetime.value = now.toLocaleString();     timerID = setTimeout("showtime()", 1000);      timerRunning = true;  }  </script></head><body style="background-color: gray;" onload="showtime()"> <center>  <form name=clock>   <c:if test="${user!=null}">                 欢迎您:${user.user_name}     <input type="button" value="退出登陆" onclick="doLogout()" />  </c:if>         <input name=thetime style="font-size: 15px;color:#FF3030;border:0" size=20 />    </form> </center></body></html>

RegisterSuss.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><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>注册成功</title></head><body><center>  <h1>恭喜您,注册成功!</h1>  <hr/>  <a href="${pageContext.request.contextPath }/login.jsp">登录账户</a></center></body></html>

User.java

package com.bean;public class User {  private int user_id;  //用户id  private String user_name; //用户名  private String user_password;  //用户密码  private int user_phone;  //用户电话  private String user_email;  //用户邮箱public int getUser_id() {return user_id;}public void setUser_id(int user_id) {this.user_id = user_id;}public String getUser_name() {return user_name;}public void setUser_name(String user_name) {this.user_name = user_name;}public String getUser_password() {return user_password;}public void setUser_password(String user_password) {this.user_password = user_password;}public int getUser_phone() {return user_phone;}public void setUser_phone(int user_phone) {this.user_phone = user_phone;}public String getUser_email() {return user_email;}public void setUser_email(String user_email) {this.user_email = user_email;}  }

UserDao.java(数据访问层)

package com.dao;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.BeanHandler;import com.bean.User;import com.utils.DButil;public class UserDao {//添加public void AddUser(User user){   try{QueryRunner runner = new QueryRunner(DButil.open());String sql = "insert into user(user_name,user_password,user_phone,user_email) values(?,?,?,?)";Object params[] = {user.getUser_name(),user.getUser_password(),user.getUser_phone(),user.getUser_email()};System.out.println("添加用户成功!");runner.update(sql, params);}catch (Exception e) {System.out.println("添加用户失败!");throw new RuntimeException(e);}}//查找是否存在用户public User find(String user_name){   try{QueryRunner runner = new QueryRunner(DButil.open());String sql = "select * from user where user_name= ?";System.out.println("查找成功!");return (User) runner.query(sql, user_name, new BeanHandler(User.class));}catch (Exception e) {System.out.println("查找失败!");throw new RuntimeException(e);}} //登录验证public User login(String user_name, String user_password) {try{QueryRunner runner = new QueryRunner(DButil.open());String sql="select * from user where user_name=? and user_password=? ";Object params[] = {user_name,user_password};System.out.println("查找数据成功!");return (User)runner.query(sql, params, new BeanHandler(User.class));}catch (Exception e) {System.out.println("查找数据失败!");throw new RuntimeException(e);}}}

EncodingFilter.java(编码过滤器)

package com.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;public class EncodingFilter implements Filter { private String encoding;   public EncodingFilter() {          // TODO Auto-generated constructor stub   }   public void destroy() {          // TODO Auto-generated method stub   }   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {        // TODO Auto-generated method stub        request.setCharacterEncoding(encoding);        //fc.getServletContext().log("你的编码为UTF-8");        chain.doFilter(request, response);   }   public void init(FilterConfig fConfig) throws ServletException {       // TODO Auto-generated method stub       encoding=fConfig.getInitParameter("encoding");       //this.fc=fConfig;   }  }

Login.java

package com.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.bean.User;import com.dao.UserDao;@WebServlet("/Login")public class Login extends HttpServlet {private static final long serialVersionUID = 1L;           public Login() {        super();        // TODO Auto-generated constructor stub    }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoPost(request, response); }protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub//设置编码          request.setCharacterEncoding("utf-8");          response.setCharacterEncoding("utf-8");          response.setHeader("Content-Type","text/html; charset=utf-8");                 String user_name = request.getParameter("username");        String user_password = request.getParameter("password");                UserDao dao = new UserDao();        User user = dao.login(user_name, user_password);        if(user != null){        System.out.println("登录成功!");        request.getSession().setAttribute("user", user); //用session保存用户信息        request.getRequestDispatcher("JSP/Main.jsp").forward(request, response);        }        else{        request.getSession().setAttribute("message", "用户名或密码错误!");//response.getWriter().write("<script language='javascript'>alert('用户名或密码不正确!')</script>");//request.getRequestDispatcher("/login.jsp").forward(request, response);response.sendRedirect(request.getContextPath()+"/login.jsp");        }}}

Logout.java

package com.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/Logout")public class Logout extends HttpServlet {private static final long serialVersionUID = 1L;           public Logout() {        super();        // TODO Auto-generated constructor stub    }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoPost(request, response); }protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub//移除存储在session中的user对象,实现注销功能request.getSession().removeAttribute("user");    request.getSession().removeAttribute("message");response.sendRedirect(request.getContextPath()+"/login.jsp");}}

Register.java

package com.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.bean.User;import com.dao.UserDao;@WebServlet("/Register")public class Register extends HttpServlet {private static final long serialVersionUID = 1L;           public Register() {        super();        // TODO Auto-generated constructor stub    }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoPost(request, response); }protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub//设置编码          request.setCharacterEncoding("utf-8");          response.setCharacterEncoding("utf-8");          response.setHeader("Content-Type","text/html; charset=utf-8");                 String user_name = request.getParameter("username");        String user_password = request.getParameter("password");        String user_phone = request.getParameter("phone");        int phone = Integer.parseInt(user_phone);        String email = request.getParameter("email");                User user = new User();        user.setUser_name(user_name);        user.setUser_password(user_password);        user.setUser_phone(phone);        user.setUser_email(email);                UserDao dao = new UserDao();        User us = dao.find(user_name);      //  System.out.println("您的用户名:"+us.getUser_name());        if(us!=null){          request.setAttribute("register", "该用户已经存在!");  request.getRequestDispatcher("Register.jsp").forward(request, response);        }        else{        dao.AddUser(user);            request.getRequestDispatcher("JSP/RegisterSuss.jsp").forward(request, response);            request.getSession().removeAttribute("register");        }}}

Time.java(系统时钟)

package com.utils;import java.text.SimpleDateFormat;import java.util.Date;public class Time {public static void main(String[] args) { // TODO Auto-generated method stub       time();}public static String time(){ Date date = new Date(System.currentTimeMillis());   for (int i = 0; i < 100000000; i++ ) {        try {Thread.sleep(1000);date.setTime(System.currentTimeMillis());String time = new SimpleDateFormat("yyyy年  MM月 dd日   HH时 mm分 ss秒").format(date);        System.out.println("当前时间: " + time.toString());} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();    } }   return time();}} 

截图:















 Project说明:本模块是采用Servlet+JSP+JavaBean设计的用户注册登录模块,数据库采用C3P0数据库连接池,数据库连接配置文件在src目录下的c3p0-config.xml文件中。注册登录的验证结果皆在客户端显示。在经过前端页面处理提交的用户注册失败主要是该用户名称已存在,登录失败是因为用户名或密码错误,当用户要退出登录时,点击"退出登录"按钮即可。


阅读全文
0 0