在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檔案取于網上