天天看點

JSP+Javabean+Servlet實作使用者注冊

在entity包下建立javabean   也就是實體類User

注意id用 Integer 而不用 int, 因為 int 自動初始化為0

public class User {

private Integer id;

private String username;

private String password;

後面是set和get方法...

在Servlet包下建立servlet  右擊Servlet包→建立→servlet   

doget和dopost方法已經預設勾選了  直接下一步

左上角的勾是說會把servlet注冊到web.xml中  直接單擊完成

在UserServlet中讓doget做dopost方法  因為form表單是通過post方法傳過來的  假如用get方法傳值,dopost方法就要做doget

public void doGet(HttpServletRequest request, HttpServletResponse

response)throwsServletException, IOException {

        doPost(request,response);

}

重寫dopost方法

處理送出過來時産生的中文亂碼

request.setCharacterEncoding("UTF-8");

對兩次密碼進行判斷  不同則轉發到錯誤頁面,相同則轉發到資訊頁面,由于不涉及資料庫,就把值儲存在session中   跳轉的頁面scope要設定要session

并用try catch捕捉可能抛出的異常

try{

username=request.getParameter("username");

password=request.getParameter("password");

confirmpass=request.getParameter("confirmpass");

if(password.equals(confirmpass)){

user.setUsername(username);

user.setPassword(password);

//把對象儲存在session中

request.getSession().setAttribute("UserRegister", user);

//伺服器内部跳轉

request.getRequestDispatcher("../userInfo.jsp").forward(request, response);

}else {

request.getRequestDispatcher("../error.jsp").forward(request, response);

catch(Exception e){

e.printStackTrace();

注冊頁面:register.jsp  action是把資料傳給Servlet, 讓Servlet處理 name屬性的名字要和javabean中實體類entity的User中的屬性一一對應

資訊頁面: 主要用userbean的方法來擷取Servlet傳回的資料  class為實體類User的所在路徑 

scope設定為session   Servlet把資料封裝在seesion中

不過我推薦用EL表達式擷取資料,簡化代碼 格式:${儲存對象.屬性}

在這裡我的對象名為UserRegister  user中已經有Username和Password屬性了

檢視項目完整代碼

項目位址:

github.com/JinBinPeng/JSPdemo

注:js檔案取于網上