欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jsp 通过cookie 记住用户名 博客分类: Java Web 记住用户名记住密码remember mecookie会话 

程序员文章站 2024-02-23 20:27:58
...

java web中登录时如何记住用户名呢?

具体思路:

登录界面如下:
jsp 通过cookie 记住用户名
            
    
    博客分类: Java Web 记住用户名记住密码remember mecookie会话 
 在后台(Servlet 或struts 的action)中进行判断,若登录成功则通过HttpServletResponse 添加一个cookie.

在登录的jsp页面中,通过request 获取cookie数组,然后遍历,若找到相应的cookie,则把cookie的value设置到表单的对应文本框中.

 

具体代码如下:

登录的JSP页面中(核心代码):

<body>
<%
Cookie[] cookies = request.getCookies();
String username33="";
if (cookies != null) {
	for (Cookie c : cookies) {
		/*if ("password22".equals(c.getName())) {
			user.setPassword(URLDecoder.decode(c.getValue(), "utf-8"));
			continue;
		}*/
		if ("userEmail".equals(c.getName())) {
			username33=URLDecoder.decode(c.getValue(), "utf-8");
			break;
		}
	}
}
%>
<script type="text/javascript">
window.onload=function(){
var username1='<%=username33 %>';
//alert("username1:"+username1);
if(username1){
	if(username1!='' && username1!=null &&username1!=undefined){
		document.getElementsByName("user.username")[0].value=username1;
	}
}
}
</script>
...
</body>

 后台的action:

if (isLogin) {
			
			//保存用户名(目前是邮箱)
			
				String emaiCookieName = "userEmail";
		        HttpServletRequest request=ServletActionContext.getRequest();
		        Cookie[] cookies = request.getCookies();
				boolean flag = false;
		        Cookie emailCook = null;
		        if (cookies != null)
		        {
		        	System.out.println("cookie 不为空");
		            for (Cookie c : cookies)
		            {

		                if (emaiCookieName.equals(c.getName()))
		                {
		                	System.out.println("找到了 "+emaiCookieName);
		                	System.out.println("cookie的值为 "+c.getValue());
		                    try {
								c.setValue(URLEncoder.encode(this.user.getUsername(), "utf-8"));
							} catch (UnsupportedEncodingException e) {
								e.printStackTrace();
							}
		                    emailCook = c;
		                    flag = true;
		                    break;
		                }
		            }
		            
		        }
		        if (!flag)
		        {
		        	System.out.println("没有找到 "+emaiCookieName);


		            try {
						emailCook = new Cookie(emaiCookieName, URLEncoder.encode(
								this.user.getUsername(), "utf-8"));
					} catch (UnsupportedEncodingException e) {
						e.printStackTrace();
					}
		        }

		            if (null != emailCook)
		            {
		            	 HttpServletResponse response=ServletActionContext.getResponse();
		            	if(!ValueWidget.isNullOrEmpty(issave) && issave.equalsIgnoreCase("save")){
			                emailCook.setMaxAge(10000000);
			               
			                response.addCookie(emailCook);
			                System.out.println("保存cookie");
			             }else{
			                	System.out.println("让 cookie 失效");
			                	emailCook.setMaxAge(0);
			                	response.addCookie(emailCook);
			             }
		            }

		           
			
			return Action.SUCCESS;
		}

 源代码见附件

说明:

该项目使用maven 构建;

IDE:eclipse

数据库:mysql

登录地址:http://localhost:8080/shop_goods/user/loginInput.action

 

  • jsp 通过cookie 记住用户名
            
    
    博客分类: Java Web 记住用户名记住密码remember mecookie会话 
  • 大小: 21.5 KB