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
- Servlet +JSP+Javabean 实现用户登录注册
- jsp+Servlet+javaBean实现登录和注册
- JSP+JavaBean+Servlet用户注册登录请求的处理
- jsp+jstl+servlet+javaBean+Mysql用户登录注册页面
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- JSP+JavaBean+Servlet技术实现某网站用户注册和登录功能
- JSP+Servlet+JavaBean+JDBC实现用户登录,及成绩查询
- 登录和注册(jsp+servlet+JavaBean)
- JSP+Servlet实现简单的用户登录注册
- JavaWeb学习总结(基于Servlet+JSP+JavaBean开发模式的用户登录注册)
- 深入分析JavaWeb Item19 -- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 深入分析JavaWeb 19 -- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- JavaWeb开发之十五:基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 对基于Servlet+JSP+JavaBean开发模式的用户登录注册的升级
- Makefile ---0
- Bootstrap3 工具提示之个人学习笔记
- Java基础教程37-HashSet
- VMware Ubuntu安装详细过程
- Nginx 1.0.x
- Servlet +JSP+Javabean 实现用户登录注册
- switch语句的输出问题
- Linux 下Java 进程启动停止shell脚本
- 对于json中的map中为对象的解析
- bzoj 2716 天使玩偶 CDQ分治
- PAT乙级 1018. 锤子剪刀布 (20)
- arcgis添加瓦片图层解决图层加载缓慢问题
- httpd(apache)--知识总结(3)--https
- android-apt切换为官方annotationProcessor