在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屬性了
user.setUsername(username);
user.setPassword(password);
//把對象保存在session中
request.getSession().setAttribute("UserRegister", user);
查看項目完整代碼
項目地址:github.com/JinBinPeng/JSPdemo
注:js文件取于網上