簡單的程式碼,
比較簡單的登陸的servlet.參考程式碼
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Login2 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);//呼叫doPost方法
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
webLogin(request, response);
private void webLogin(HttpServletRequest request,
HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=utf-8");//設定字符集
Cookie[] cs = request.getCookies();//讀取cookie
if (cs != null && cs.length != 0) {//判斷是不是有效的cookie
String cookie_uname = null;
String cookie_upswd = null;
for (int i = 0; i < cs.length; i++) {
if (cs[i].getName().equals("uname")) {//得到使用者名稱
cookie_uname = cs[i].getValue();
if (cs[i].getName().equals("upswd")) {//得到密碼
cookie_upswd = cs[i].getValue();
//判斷使用者名稱和密碼都不能為空
if (cookie_uname != null && cookie_upswd != null) {
System.out.println("試圖使用cookie登陸"+cookie_uname+"\t"+cookie_upswd);
//把姓名和密碼發到ValidateUser2 進行驗證,如果驗證成功就跳轉到登陸後的頁面,否則跳回來
response.sendRedirect("ValidateUser2?uname=" + cookie_uname
+ "&upswd=" + cookie_upswd);
// 驗證成功就登陸
// 驗證失敗, 就返回, ,注意這裡可能是死迴圈.. 需要特別解決和注意
// 因為cookie裡的資料不對,返回登陸,返回後登陸又檢測到cookie又驗證登陸,又驗證失敗,返回登陸...
PrintWriter pw = response.getWriter();
pw.print("<form action="ValidateUser2" method="post" >");
pw.print("使用者名稱<input type="text" name="uname" /><br />");
pw.print("密 碼<input type="password" name="upswd" /><br />");
pw.print("<input type="checkbox" name="jizhu" value="jizhu">1分鐘內登陸<br />");//為了測試效果,就記住1分鐘
pw.print("<input type="submit" value="提交"/>");
pw.print("</form>");
pw.flush();
pw.close();
下面是驗證密碼和賬號的 ValidateUser2
String uname = (String) req.getParameter("uname");//從request裡獲得使用者名稱和密碼
String upswd = (String) req.getParameter("upswd");
if(驗證成功){
跳轉到登陸後的介面
}else{
Cookie[] cs = req.getCookies();
if(cs!=null&&cs.length!=0){
if(cs[i].getName().equals("uname")){
cs[i] = new Cookie("uname",null);
cs[i].setMaxAge(0);
res.addCookie(cs[i]);
}else if(cs[i].getName().equals("upswd")){
res.sendRedirect("Login2");//返回Login2
簡單的程式碼,
比較簡單的登陸的servlet.參考程式碼
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Login2 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);//呼叫doPost方法
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
webLogin(request, response);
}
private void webLogin(HttpServletRequest request,
HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=utf-8");//設定字符集
Cookie[] cs = request.getCookies();//讀取cookie
if (cs != null && cs.length != 0) {//判斷是不是有效的cookie
String cookie_uname = null;
String cookie_upswd = null;
for (int i = 0; i < cs.length; i++) {
if (cs[i].getName().equals("uname")) {//得到使用者名稱
cookie_uname = cs[i].getValue();
}
if (cs[i].getName().equals("upswd")) {//得到密碼
cookie_upswd = cs[i].getValue();
}
}
//判斷使用者名稱和密碼都不能為空
if (cookie_uname != null && cookie_upswd != null) {
System.out.println("試圖使用cookie登陸"+cookie_uname+"\t"+cookie_upswd);
//把姓名和密碼發到ValidateUser2 進行驗證,如果驗證成功就跳轉到登陸後的頁面,否則跳回來
response.sendRedirect("ValidateUser2?uname=" + cookie_uname
+ "&upswd=" + cookie_upswd);
// 驗證成功就登陸
// 驗證失敗, 就返回, ,注意這裡可能是死迴圈.. 需要特別解決和注意
// 因為cookie裡的資料不對,返回登陸,返回後登陸又檢測到cookie又驗證登陸,又驗證失敗,返回登陸...
}
}
PrintWriter pw = response.getWriter();
pw.print("<form action="ValidateUser2" method="post" >");
pw.print("使用者名稱<input type="text" name="uname" /><br />");
pw.print("密 碼<input type="password" name="upswd" /><br />");
pw.print("<input type="checkbox" name="jizhu" value="jizhu">1分鐘內登陸<br />");//為了測試效果,就記住1分鐘
pw.print("<input type="submit" value="提交"/>");
pw.print("</form>");
pw.flush();
pw.close();
}
}
下面是驗證密碼和賬號的 ValidateUser2
String uname = (String) req.getParameter("uname");//從request裡獲得使用者名稱和密碼
String upswd = (String) req.getParameter("upswd");
if(驗證成功){
跳轉到登陸後的介面
}else{
Cookie[] cs = req.getCookies();
if(cs!=null&&cs.length!=0){
for (int i = 0; i < cs.length; i++) {
if(cs[i].getName().equals("uname")){
cs[i] = new Cookie("uname",null);
cs[i].setMaxAge(0);
res.addCookie(cs[i]);
}else if(cs[i].getName().equals("upswd")){
cs[i].setMaxAge(0);
res.addCookie(cs[i]);
}
}
}
res.sendRedirect("Login2");//返回Login2
}