在javaweb网站中添加记住我的功能

在前台界面添加如下代码:图片+多选框

<img border="0" src="${pageContext.request.contextPath}/images/remeber.jpg" width="84" height="20">
<input type="checkbox" name="rememberMe" <%=checked %> id="rememberMe" >
在后台添加如下代码:

                //处理Cookie
                String name = request.getParameter("name");
                String password = request.getParameter("password");
		LoginUtils.addCookie(name,password,response,request);

创建如下类:

LoginUtils.java

public class LoginUtils {

	//加入cookie中
	public static void addCookie(String name, String password, HttpServletResponse response, HttpServletRequest request) 
	throws UnsupportedEncodingException {
		if(StringUtils.isNotBlank(name)&&StringUtils.isNotBlank(password)){
			
			//创建Cookie
			Cookie nameCookie=new Cookie("name",java.net.URLEncoder.encode(name,"utf-8"));
			Cookie passwordCookie=new Cookie("password",password);
			
			//设置Cookie的父路径
			nameCookie.setPath(request.getContextPath()+"/");
			passwordCookie.setPath(request.getContextPath()+"/");
			
			//获取是否保存Cookie,复选框被选中,则保存
			String rememberMe=request.getParameter("rememberMe");
			if(rememberMe==null){//不保存Cookie
				nameCookie.setMaxAge(0);
				passwordCookie.setMaxAge(0);
			}else{  //保存Cookie
				nameCookie.setMaxAge(7*24*60*60);
				passwordCookie.setMaxAge(7*24*60*60);
			}
			//加入Cookie到响应头
			response.addCookie(nameCookie);
			response.addCookie(passwordCookie);
		}
	}
}

此时再在前台页面添加如下处理方法:

<%
   String name="";
   String password="";
   String checked="";
   Cookie[] cookies=request.getCookies();
   if(cookies!=null&&cookies.length>0){
	   for(int i=0;i<cookies.length;i++){
		   Cookie cookie=cookies[i];
		   if("name".equals(cookie.getName())){
			   name=URLDecoder.decode(cookie.getValue(),"utf-8");
			   //System.out.println("name="+name);
			   checked="checked";
		   }
		   if("password".equals(cookie.getName())){
			   password=cookie.getValue();
			   //System.out.println("password="+password);
		   }
	   }
   }

%>


注意:

为了避免保存在cookie中的值出现中文而发生乱码问题,可以用先中文编码再解码的方法。

先在后台如下编码:

Cookie nameCookie=new Cookie("name",java.net.URLEncoder.encode(name,"utf-8"));


再在前台如下解码:

name=URLDecoder.decode(cookie.getValue(),"utf-8");


总结:通过本文知道如何解决中文乱码的问题。

            其次在本文中知道如何保存cookie和读取cookie的内容,

其中主要设置cookie的路径为项目路径,避免有些页面无法获取cookie的值的问题

### 回答1: 要实现JavaWeb的登录和注册功能,可以按照以下步骤进行: 1. 创建数据库表格,用于存储用户注册的信息,如用户名、密码等。 2. 在JavaWeb项目创建登录和注册页面,可以使用HTML和CSS进行页面设计。 3. 在JavaWeb项目创建一个Servlet,用于处理用户的登录和注册请求。可以使用JDBC连接数据库,从而实现对用户注册信息的插入和查询操作。 4. 在Servlet处理用户登录和注册请求时,需要对用户输入的用户名和密码进行验证,验证成功后再执行登录或注册操作。 5. 在登录成功后,可以将用户信息保存在Session,方便在其他页面进行身份验证。 6. 在JavaWeb项目,还可以使用Filter实现用户身份验证、权限控制等功能。 通过以上步骤的实现,就可以完成JavaWeb的登录和注册功能。 ### 回答2: 要实现JavaWeb的登录和注册功能,可以按照以下步骤进行: 1. 创建数据库表格:在数据库创建一个用户表,包含字段如:用户ID、用户名、密码等。 2. 创建JavaBean类:根据用户表的字段,创建一个对应的JavaBean类,用于封装用户的信息。 3. 编写登录页面:创建一个登录页面,包含用户名和密码的输入框,以及一个登录按钮。 4. 编写后台处理逻辑:在后台获取用户输入的用户名和密码,并与数据库的数据进行比对,判断用户是否存在。如果存在,则登录成功,可以跳转到其他页面;如果不存在,则登录失败,可以返回相应的错误提示。 5. 创建注册页面:创建一个注册页面,包含用户名、密码、确认密码等输入框,以及一个注册按钮。 6. 编写注册逻辑:在后台获取用户输入的注册信息,并进行相应的验证,如检查用户名是否已存在、密码是否一致等。如果验证通过,则将用户信息插入数据库,并返回注册成功提示;如果验证不通过,则返回相应的错误提示。 7. 设置用户管理:通过在session存储用户登录状态信息,可以实现登录状态的保持,以及在其他页面获取当前登录的用户信息。 8. 添加其他功能:根据实际需求,可以为登录和注册功能添加其他附加功能,如记住密码功能用户信息修改功能等。 以上是简要的实现JavaWeb登录和注册功能的步骤,可以根据具体需求进行相应的补充和改进。 ### 回答3: 要实现JavaWeb登录和注册功能,首先需要创建一个Web应用程序。可以使用Java的Servlet和JSP技术来实现。 1. 注册功能: - 创建一个RegisterServlet来处理注册请求。在这个Servlet,我们可以通过接收表单提交的数据来获取用户输入的注册信息,例如用户名、密码和邮箱等。 - 在RegisterServlet,可以进行一些验证,如检查用户名是否已经存在,检查密码是否符合要求等。 - 如果注册信息合法且通过验证,可以将用户信息保存到数据库,可以使用JDBC或其他ORM框架处理数据库操作。 2. 登录功能: - 创建一个LoginServlet来处理登录请求。在这个Servlet,我们可以接收用户提交的用户名和密码。 - 在LoginServlet,可以根据用户输入的用户名去数据库查找对应的用户记录,并将用户提交的密码与数据库的密码进行比对。 - 如果比对成功,表示用户输入的用户名和密码正确,可以将用户登录状态保存在Session,以便于在其他页面进行相关操作。 - 如果比对失败,可以返回错误信息给用户,或者重定向到登录页面。 除了以上的基本功能,还可以进行一些扩展和优化,如添加验证码功能、密码加密、记住密码和自动登录等。 最后,需要在Web页面设计好注册和登录的界面,包括表单的布局、样式和交互效果等,使用HTML、CSS和JavaScript来实现。同时,确保后端与前端的数据传输和验证安全性,防止恶意攻击或非法操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值