怎么样才能保存用户上次登陆的用户名和密码,下次,在登陆时可以不用输入用户名和密码就能登陆系统。
解决方案 »
- 安卓ksoap2调用webService问题,ksoap2传递byte数组怎么传递
- 像各位牛人求从J2SE到J2EE进阶的详细科目流程图。
- 在Swing中点击了切换语言按钮后,如何使整个画面刷新?
- 高分求助?怎么把一个类中的函数遍历出来。
- 关于一个log4j 的问题
- 关于多线程的两道选择题
- java求水仙花数
- 初学JAVA,想认识几个这方面的朋友,顺便问一个小问题。。
- 菜鸟问题(对象数组):对于clsA []=new claA[10];语句执行后是否已经拥有了类clsA的10个实例对象,还是要再for i=0 to 9对clsA[i]=new clsA一下?
- cookie用了以后是不是会降低速度?
- 为什么会这样的啊!AAA.java:30: missing return statement
- 我实在是搞不明白,请高手一定教教我!
2 用户访问时,cookie会自动发到服务器
3 服务器端拿到cookie后,解密,判断是否正确,如果没问题,按登陆成功处理
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 CookieServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
String username = "";
String pwd = "";
Cookie[] c = request.getCookies();
if(c != null){
for(int i = 0;i<c.length;i++){
if(c[i].getName().equals("user")){
username = c[i].getValue();
}
if(c[i].getName().equals("pwd")){
pwd = c[i].getValue();
}
}
}
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">");
out.println("<title>登录</title>");
out.println("</head>");
out.println("<body><center><form action=\"./ValidateServlet\" method=\"post\" name=\"login\">");
out.println();
out.println("用户名:<input type=\"text\" size=\"20\" name=\"userName\" value="+ username +">");
out.println("<BR>");
out.println("</p><p>密码:<input type=\"password\" size=\"20\" name=\"pwd\" value=" + pwd +">");
out.println("<BR>");
out.println("<input type=\"Submit\" name=\"button1\" value=\"提交\">");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doGet(request, response);
}}下面处理登陆的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 ValidateServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("userName");
String pwd = request.getParameter("pwd");
//验证用户名,密码是否正确,此处略;如果正确则进行一下操作
Cookie user = new Cookie("user",username);
Cookie password = new Cookie("pwd",pwd);
user.setMaxAge(24*60*60);
password.setMaxAge(24*60*60);
response.addCookie(user);
response.addCookie(password);
response.getWriter().println("成功");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doGet(request, response);
}}
访问CookieServlet即可.注意ValidateServlet 中没有连接数据库验证.
2 用户访问时,cookie会自动发到服务器
3 服务器端拿到cookie后,解密,判断是否正确,如果没问题,按登陆成功处理