1,定義個javabean類,按照賬號和密碼設置變量定義好user類.
2,建一個servlet的包,定義一個處理登錄界面的邏輯servlet,然後按照步驟編寫代碼
protected voiddoGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
//獲取提交的數據,組織爲 JavaBean
Useruser = newUser();
Stringusername = request.getParameter("username");
Stringpassword = request.getParameter("password");
user.setUsername(username);
user.setPassword(password);
//查詢數據庫,當前直接認爲用戶合法
//判斷是否設置爲自動登陸
Stringauto = request.getParameter("auto");
//如果是,那麼將賬號密碼設置進 Cookie
Cookiec = newCookie("user",username + "@"+ password);
if("yes".equals(auto)){
c.setMaxAge(60 * 60 * 24 * 7);
}else {
c.setMaxAge(0);
}
response.addCookie(c);
//將用戶設置進 session
//request.setAttribute("user", user);
request.getSession().setAttribute("user", user);
//請求轉發到 index.jsp
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
這裏index.jsp就是默認的首頁登錄界面.auto是在輸入賬號密碼的jsp裏設置的input的屬性,
<input type="checkbox"name="auto" value="yes">自動登錄
</label> <label> <input
type="checkbox"> 記住用戶名
3,創建過濾器
public voiddoFilter(ServletRequest request,ServletResponse response, FilterChain chain) throwsIOException, ServletException {
Useruser = null;
//強轉換來獲取request.Cookie
HttpServletRequestr = (HttpServletRequest)request;
//獲取cookie
Cookie[]cs = r.getCookies();
//判斷cookie是否存在,也就是判斷之前是否已經登陸過一次網頁
if(cs!=null){
for (Cookie c: cs) {
if("user".equals(c.getName())){
//獲取遍歷後c的值(賬號和密碼)根據@來進行切割
String[]arr = c.getValue().split("@");
//arr[0]是賬號arr[1]是密碼
user.setPassword(arr[1]);
user.setUsername(arr[0]);
//講獲取到的值傳給session,進行下一步的頁面訪問
r.getSession().setAttribute("user", user);
}
}
}
//放行語句
chain.doFilter(request,response);
}
這樣再form表單裏設置好屬性,把獲取到網頁輸入的賬號的標籤裏設置成屬性name=”username”, 把獲取到網頁輸入的密碼的標籤裏設置屬性name=”password”
然後就可以run as進行調試了.