Servlet +JSP+Javabean 实现用户登录注册
2017-07-01 11:11
816 查看
目录结构:
代码:
login.jsp
Register.jsp
Main.jsp
RegisterSuss.jsp
User.java
UserDao.java(数据访问层)
EncodingFilter.java(编码过滤器)
Login.java
Logout.java
Register.java
Time.java(系统时钟)
截图:
Project说明:本模块是采用Servlet+JSP+JavaBean设计的用户注册登录模块,数据库采用C3P0数据库连接池,数据库连接配置文件在src目录下的c3p0-config.xml文件中。注册登录的验证结果皆在客户端显示。在经过前端页面处理提交的用户注册失败主要是该用户名称已存在,登录失败是因为用户名或密码错误,当用户要退出登录时,点击"退出登录"按钮即可。
代码:
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 stub doPost(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 stub doPost(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 stub doPost(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 block e.printStackTrace(); } } return time(); } }
截图:
Project说明:本模块是采用Servlet+JSP+JavaBean设计的用户注册登录模块,数据库采用C3P0数据库连接池,数据库连接配置文件在src目录下的c3p0-config.xml文件中。注册登录的验证结果皆在客户端显示。在经过前端页面处理提交的用户注册失败主要是该用户名称已存在,登录失败是因为用户名或密码错误,当用户要退出登录时,点击"退出登录"按钮即可。
相关文章推荐
- JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)
- JSP+JavaBean+Servlet技术实现某网站用户注册和登录功能
- JSP作业4 - 使用JSP+JavaBean+Servlet实现用户登录注册页面
- Java Web学习(30): 使用JSP+Servlet+JavaBean实现用户登录
- JavaWeb总结二十二、基于Servlet+JSP+JavaBean开发模式的用户登录注册
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 深入分析JavaWeb 19 -- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 在jsp中用bean和servlet联合实现用户注册、登录
- 基于MVC 用户登录的实现(JavaBean + Servlet + JSP)
- 服务器搭建:servlet+dao+javabean+jsp实现简单的用户登录
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
- J2EE初级学习项目——JSP+Servlet+JavaBean开发模式+Filter+(Listener)+Jdbc的用户登录注册系统
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 深入分析JavaWeb Item19 -- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 对基于Servlet+JSP+JavaBean开发模式的用户登录注册的升级
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 在jsp中用bean和servlet联合实现用户注册、登录
- 方立勋_30天掌握JavaWeb_(Servlet+JSP+JavaBean实现)用户注册和登陆