1. 程式人生 > >用jsp實現的使用者登入的程式碼

用jsp實現的使用者登入的程式碼

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("[email protected]");
users.put("zxx", user1);

UserBean user2 = new UserBean();
user2.setName("flx");
user2.setPassword("abcdefg");
user2.setEmail("[email protected],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_-][email protected][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;
}

}

相關推薦

jsp實現登入登入成功則跳轉到登入成功頁面,失敗則跳轉到失敗頁面

login.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8

jsp實現的使用者登入程式碼

register.jsp:<%@ page contentType="text/html" pageEncoding="GB2312"%><jsp:useBean id="registerForm" class="org.it315.bean.RegisterFormBean"scope="

登入時生成驗證碼和後臺驗證詳解(驗證碼圖片jsp顯示出來的)

登入視窗程式碼HTML <section class="mainlogin"> <div class="container"> <div class="col-md-4 col-md-offset-7 loginconte

jsp頁面與java代碼分離的方式寫一個簡單的二維表

color arraylist 一個 3-9 業務 動態顯示 復雜 分層架構 方式 前提:在我們做程序時追求的是高內聚,低耦合,但是如果我們把jsp頁面的的代碼和java的代碼都放在了jsp的代碼編寫中,使java和jsp高耦合這樣的話不僅使jsp代碼頁面顯得很復雜,而

簡單基礎路徑配置(單JSP)EASYUI

yui ces getitem col oca ase frame new request <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page

JSP判斷輸入是質數還是非質數

break 圖片 amp 輸入 bre 技術分享 img 技術 ima <%int n=Integer.parseInt(request.getParameter("n"));if(n<=1){   out.print("既不是質數,也不是非質數");}for

sqlserver安裝後不管理器不能IP登入,只能機器名登入的問題

電腦作業系統是Win7中文版,新裝的英文版SQL Server2014,純預設安裝,沒有做任何改動。 裝完SQL Server 2014之後,發現只能用預設的機器名來登入: 用127.0.0.1登入會出現錯誤 第一步,開啟TCP/IP。因為裝完SQL之後這項協議預設是不開

程式設計師軟體生成前端程式碼,前端妹子看完直接傻眼!卻遭領導批評

作為程式設計師經常會有一些口頭禪,比如說“程式碼複用思想”,“寫高質量的程式碼”,“程式碼在精不在多”,“思路比努力更重要”,這些話中大多強調的是策略的重要性,在工作中,勤奮固然重要,如果能在勤奮的基礎上強調一下方法與策略,那便會使工作起到事半功倍的效果,最近有一個程式設計師網友異於其他程式設計師,

120行Java程式碼寫一個自己的區塊鏈

區塊鏈是目前最熱門的話題,廣大讀者都聽說過比特幣,或許還有智慧合約,相信大家都非常想了解這一切是如何工作的。這篇文章就是幫助你使用 Java 語言來實現一個簡單的區塊鏈,用不到 120 行程式碼來揭示區塊鏈的原理! “用不到120行 Java 程式碼就能實現一個

JSP的常用程式碼片段

 獲取滑鼠位置的程式碼片段 <SCRIPT LANGUAGE="JavaScript"> var x; var y; if (navigator.appName == 'Netscape'){

Android sp儲存登入狀態以及退出登入

public class SharedPrefUtility { private static final String FILE_NAME = "share_date"; public static final String INDEX="index"; publi

git命令把程式碼提交到碼雲倉庫

1,首先要在碼雲上新建一個專案: 點選建立之後: 這樣就建立完成了一個私人的專案了: 建立完成之後: 複製這個地址,這個就是你原生代碼要跟這個地址建立遠端庫的連線,下面會用到的 ,先複製儲存起來。 下面就是使用git命令進行操作了: cd 你的程式碼目錄git initgit

程式設計師最愛的8個程式碼編輯器,你哪款?

這些年來,編寫程式碼本身已經成為一種藝術。現在,有大量的程式語言可供開發者選擇使用,從組合語言到 Ruby 和 Python。儘管對於給定的專案有許多程式語言可供選擇,但有一件事是亙古不變的,每個開發者都需要一個程式碼編輯器來寫程式碼。 一個好的程式碼編輯器不僅僅是一個簡單的文字編輯工具

在centos下cmatrix做出×××螢幕程式碼雨效果

文章出處: http://blog.51cto.com/5232821/2146115 1、下載cmatrix-1.2a.tar.gz檔案 [[email protected] ~]# wget https://jaist.dl.sourceforge.net/project/

許可權管理登入程式碼實現

功能實現:在頁面輸入給定的使用者名稱之一,可以顯示當前使用者的許可權,也可以在頁面更改該使用者的許可權,更新之後儲存。像下面這樣。 填寫使用者名稱提交: 顯示使用者AAA的許可權: 修改許可權(增加article3): 點選Update之後,許可權更新,下次訪問,輸入使用者名稱AAA提

VC寫Assembly程式碼

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

eclipse下maven外掛mybatis-generator生成程式碼

眾所眾知,mybatis是半自動的ORM持久化框架,不像hibernate可以全自動根據庫表生產pojo實體類或根據pojo實體類反向生成庫表。 不過我們可以利用maven外掛的mybatis-generator功能生成mybatis的xml對映檔案和資料庫對應的實體類。 下面請看生成程

在linux\mac os\raspberry pi\環境下gcc編譯openssl程式碼

因為要在樹莓派上跑自己寫的程式碼,考慮到樹莓派上沒有Xcode了,沒有編譯器讓程式碼自己去找標頭檔案和庫檔案的路徑,只能用gcc。 在網上看了會資料,自己琢磨了一下,程式碼如下:(在MAC上我通過以下語句能成功編譯可執行檔案,但是在linux和pi下不能)  gcc m

50行Python程式碼從零開始實現一個AI平衡小遊戲!

集智導讀: 本文會為大家展示機器學習專家 Mike Shi 如何用 50 行 Python 程式碼建立一個 AI,使用增強學習技術,玩耍一個保持杆子平衡的小遊戲。所用環境為標準的 OpenAI Gym,只使用 Numpy 來建立 agent。 學習Python中有不明白推薦加入交流群號

ssh遠端登入Linux(ubuntu)

一般流程,如果有問題,按照下面步驟排查一遍即可 檢視ssh是否開啟 service ssh status service ssh start service ssh restart service ssh stop 如果沒有安裝 sudo apt-get install