用jsp实现的用户登录的代码

来源:互联网 发布:以撒的结合胎衣mac版 编辑:程序博客网 时间:2024/04/29 19:36

register.jsp:

<%@ page contentType="text/html" pageEncoding="GB2312"%>


<jsp:useBean id="registerForm" class="org.it315.bean.RegisterFormBean"
scope="request"></jsp:useBean>
<form action="../servlet/controller" method="post">
姓名:
<input type="text" name="name"
value='<jsp:getProperty name="registerForm" property="name" />'>
<font color="red"><%=registerForm.getErrorMsg("name")%></font>
<br />
密码:
<input type="password" name="password1"
value='<jsp:getProperty name="registerForm" property="password1"/>'>
<font color="red"><%=registerForm.getErrorMsg("password1")%></font>
<br>
确认密码:
<input type="password" name="password2"
value='<jsp:getProperty name="registerForm" property="password2"/>'>
<font color="red"><%=registerForm.getErrorMsg("password2")%></font>
<br>
Email:
<input type="text" name="email"
value='<jsp:getProperty name="registerForm" property="email" />'>
<font color="red"><%=registerForm.getErrorMsg("email")%></font>
<br>
<input type="submit" name="submit" value="注册" />
</form>

logonSuccess.jsp:

<%@ page Xlanguage="java" import="java.util.*" pageEncoding="GB2312"%>
<%
if ("logout".equals(request.getParameter("action"))) {
session.invalidate();
%>
<jsp:forward page="logon"></jsp:forward>
<%
}
if (session.getAttribute("logonUser") == null) {
%>
<jsp:forward page="logon.jsp"></jsp:forward>
<%
}
%>
<jsp:useBean id="logonUser" class="org.it315.bean.UserBean"
scope="session"></jsp:useBean>
恭喜你,登陆成功!
<br>
<jsp:getProperty property="name" name="logonUser" /><br>
<jsp:getProperty property="password" name="logonUser" /><br>
<jsp:getProperty property="email" name="logonUser" /><br>
<a href="logonSuccess.jsp?action=logout">注销</a>
<br>
<a href="logon.jsp">重新登录</a>

ControllerServlet.java:

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.it315.bean.RegisterFormBean;
import org.it315.bean.UserBean;
import org.it315.util.DbUtil;
import org.it315.util.DbUtilException;

public class ControllerServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

RequestDispatcher rd = null;
String name = request.getParameter("name");
String password1 = request.getParameter("password1");
String password2 = request.getParameter("password2");
String email = request.getParameter("email");

RegisterFormBean registerForm = new RegisterFormBean();
registerForm.setName(name);
registerForm.setPassword1(password1);
registerForm.setPassword1(password2);
registerForm.setEmail(email);
request.setAttribute("registerForm", registerForm);

if (!registerForm.validate()) {
rd = request.getRequestDispatcher("/jsp/register.jsp");
rd.forward(request, response);
return;

}

UserBean user = new UserBean();
user.setName(name);
user.setPassword(password1);
user.setEmail(email);
try {
DbUtil db = DbUtil.getInstance();
db.insertUser(user);
} catch (DbUtilException ex) {
registerForm.setErrorMsg("name", ex.getErrorMsg("name"));
rd = request.getRequestDispatcher("/jsp/register.jsp");
rd.forward(request, response);
return;
}
HttpSession session = request.getSession();
session.setAttribute("logonUesr", user);
rd = request.getRequestDispatcher("/jsp/logonSuccess.jsp");
rd.forward(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doGet(request, response);
}

}

DbUtil.java

import java.util.Hashtable;

import org.it315.bean.UserBean;

public class DbUtil {
private static DbUtil instance = new DbUtil();
private Hashtable users = new Hashtable();

private DbUtil() {
UserBean user1 = new UserBean();
user1.setName("zxx");
user1.setPassword("12345678");
user1.setEmail("zxx@it315.org");
users.put("zxx", user1);

UserBean user2 = new UserBean();
user2.setName("flx");
user2.setPassword("abcdefg");
user2.setEmail("flx@it315,org");
users.put("flx", user2);

}

public static DbUtil getInstance() {
return instance;
}

public UserBean getUser(String userName) {
UserBean user = (UserBean) users.get(userName);
return user;
}

public void insertUser(UserBean user) throws DbUtilException {
if (user == null) {
return;
}
String userName = user.getName();
if (users.get(userName) != null) {
DbUtilException ex = new DbUtilException();
ex.setErrorMsg("name", "username have used.");
throw ex;
}
users.put(userName, user);

}

}

DbUtilException.java:

import java.util.Hashtable;

public class DbUtilException extends Exception {
private Hashtable errors = new Hashtable();

public void setErrorMsg(String err, String errMsg) {
if ((err != null) && (errMsg != null)) {
errors.put(err, errMsg);

}
}

public String getErrorMsg(String err) {
String err_msg = (String) errors.get(err);
return (err_msg == null) ? "" : err_msg;
}

}

UserBean.java:

import java.io.IOException;
import java.io.PrintWriter;
import java.io.Serializable;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UserBean implements Serializable {
private String name = "";
private String password = "";
private String email = "";

public void setName(String name) {
this.name = name;
}

public String getName() {
return this.name;

}

public void setPassword(String password) {
this.password = password;
}

public String getPassword() {
return password;

}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}
}

RegisterFormBean.java

import java.util.*;

public class RegisterFormBean {
private String name = "";
private String password1 = "";
private String password2 = "";
private String email = "";
private Hashtable errors = new Hashtable();

public void setName(String name) {
this.name = name;
}

public String getName() {
return this.name;
}

public void setPassword1(String password1) {
this.password1 = password1;
}

public String getPassword1() {
return this.password1;
}

public void setPassword2(String password2) {
this.password2 = password2;
}

public String getPassword2() {
return this.password2;
}

public void setEmail(String email) {
this.email = email;
}

public String getEmail() {
return this.email;
}

@SuppressWarnings("unchecked")
public boolean validate() {
boolean allOk = true;
if (name.trim().equals("")) {
errors.put("name", "Pleaseinput your name.");
allOk = false;
}
if (password1.length() > 10 || password1.length() < 6) {
errors.put("password1", "password must have6-10 characters.");
allOk = false;
}
if (!password2.equals(password1)) {
errors.put("password2", "passwords do not match.");
allOk = false;
}
if (!email.matches("[a-zA-ZO-9_-]+@[a-zA-ZO-9_-]+(\\.[a-zA-ZO-9_-]+)+")) {
errors.put("email", "illegal email.");
allOk = false;
}
return allOk;
}

public void setErrorMsg(String err, String errMsg) {
if ((err != null) && (errMsg != null)) {
errors.put(err, errMsg);
}
}

public String getErrorMsg(String err) {
String err_msg = (String) errors.get(err);
return (err_msg == null) ? "" : err_msg;
}

}

原创粉丝点击