您的位置:首页 > 编程语言 > Java开发

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

2017-07-01 11:11 816 查看
 目录结构:



代码:

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文件中。注册登录的验证结果皆在客户端显示。在经过前端页面处理提交的用户注册失败主要是该用户名称已存在,登录失败是因为用户名或密码错误,当用户要退出登录时,点击"退出登录"按钮即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐