要实现题目这个功能,我们需要使用Cookie浏览器缓存来做到。Cookie与Session的最大不同,就在于它们的生命周期,Cookie通过设置后,生命周期可以与Session一样,或者比它长久。
通常来说,根据我的习惯,对于一些通用的业务能够,我希望把它们封装到一个工具类里面,使用方法就是直接调用它的静态方法。
CookieTool.java 源代码:
/**
* 设置cookie(接口方法)
* @param response
* @param name cookie名字
* @param value cookie值
* @param maxAge cookie生命周期 以秒为单位
*/
public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){
Cookie cookie = new Cookie(name,value);
cookie.setPath("/");
if(maxAge>0) cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}
/**
* 根据名字获取cookie(接口方法)
* @param request
* @param name cookie名字
* @return
*/
public static Cookie getCookieByName(HttpServletRequest request,String name){
Map<String,Cookie> cookieMap = ReadCookieMap(request);
if(cookieMap.containsKey(name)){
Cookie cookie = (Cookie)cookieMap.get(name);
return cookie;
}else{
return null;
}
}
/**
* 将cookie封装到Map里面(非接口方法)
* @param request
* @return
*/
private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){
Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
Cookie[] cookies = request.getCookies();
if(null!=cookies){
for(Cookie cookie : cookies){
cookieMap.put(cookie.getName(), cookie);
}
}
return cookieMap;
}
好了,工具类的静态方法已经定义好了。
我先假定楼主对表现层提交表单到业务层是有概念的,
这里存在两种情况:
(1)客户端没有登录记录,则进入登录页面
(2)客户端存在有效的登录记录,进入登录后的页面。
因此在显示登录页面之前就要通过一个业务方法进行判断,其中最核心的是:
Cookie cokLoginName = CookieTool.getCookieByName(request,"loginName");
Cookie cokLoginPwd = CookieTool.getCookieByName(request,"loginPwd");
if (cokLoginName != null && cokLoginPwd != null && cokLoginName.getValue()!=null && cokLoginPwd.getValue()!=null){
String loginName = cokLoginName.getValue();
String loginPwd = cokLoginPwd.getValue();
//检查到客户端保存了用户的密码,进行该账户的验证
//这里要使用你自己的账户验证方法
//如果账户验证成功,则跳转到登录成功的页面
//如果账户验证失败,则
CookieTool.addCookie(response,"loginName",null,0); //清除Cookie
CookieTool.addCookie(response,"loginPwd",null,0); //清除Cookie
//然后跳转到登录页面
}
其次就是在登录JSP页面的表单所提交到的登录Action。这里假设表单提交到的是Servlet,读取表单参数楼主应该没有问题吧?我这里只关注和插入Cookie代码。
插入的地方在账户密码的正确性经过验证,在跳转页面之前。假设储存用户输入的帐号和密码字段分别为String username,String password。
int loginMaxAge = 30*24*60*60; //定义账户密码的生命周期,这里是一个月。单位为秒
if ( 单选框 ) {
CookieTool.addCookie(response , "loginName" , username , loginMaxAge);
CookieTool.addCookie(response , "loginPwd" , password , loginMaxAge);
}
分享到:
相关推荐
在Java后台获取JSP页面多个复选框选中的值是一个常见的需求,特别是在开发Web应用程序时。SSM(Spring、SpringMVC、MyBatis)框架是Java Web开发中广泛使用的集成框架,它提供了处理此类问题的高效解决方案。下面将...
JSP(JavaServer Pages)作为Java平台上的动态网页技术,提供了多种方式来实现页面间的传值。本篇文章将聚焦于“两个JSP页面之间传值的问题”以及与之相关的“checkbox多选框”处理。博主houyajie在iteye博客上分享...
在JavaServer Pages (JSP) 开发中,常常需要实现用户界面中的批量选择功能,比如在列表中通过复选框来选中多个项目。本文将详细介绍如何在JSP中实现这样的功能,主要涉及HTML、JavaScript 和后端Java的交互。 首先...
在Web开发中,Checkbox(复选框)是非常常见的表单元素之一,主要用于收集用户的多选数据。在JSP(JavaServer Pages)环境下,Checkbox的使用同样广泛。本文将详细介绍在JSP中如何使用Checkbox,包括基本语法、动态...
1. **创建登录页面(login.jsp)**:在这个页面,我们需要一个表单让用户输入用户名和密码,并包含一个勾选框用于选择“记住我”。表单提交时应指向Servlet处理程序。 ```jsp <%@ page language="java" contentType...
在网页开发中,"jsp/html 实现下拉复选框" 是一个常见的需求,它能够为用户提供更加便捷的多选项选择方式。下拉复选框通常由HTML的`<select>`元素与`<option>`子元素配合使用,而为了实现更丰富的交互效果,我们可能...
2:我若选中了记住密码,那需要能把这个密码记录起来。 3:用户名、密码记录到注册表里,往往会遇到没有写入权限或者被杀毒软件拦截的问题发生。 4:用户名可以不加密存储,但是密码一定要加密存储才可以,否则...
在编程领域,`Checkbox`(复选框)是一种常见的用户界面元素,用于让用户在多个选项中选择一个或多个。在本教程中,我们将探讨如何在不同的编程语言和框架中实现复选框的功能,以及如何处理与之相关的事件,如点击...
在网页开发中,有时我们需要实现在用户不离开当前页面的情况下,将数据发送到服务器进行处理。这通常是通过AJAX(Asynchronous JavaScript and XML)技术来实现的。在本例中,我们将关注如何在JSP(JavaServer Pages...
总结来说,Java 中实现带复选框的树(CheckBox Tree)需要自定义 TreeNode 类(CheckBoxTreeNode),用于存储结点是否被选中的状态,并实现选中/取消选中时子结点和父结点的状态更新。同时,还需要创建一个 ...
在Android Studio中,第五章的课后实践主要涵盖了两个关键知识点:登录界面设计和记住密码功能的实现。这两个部分是移动应用开发中的基础模块,对于任何需要用户认证的应用来说都至关重要。下面将详细阐述这两个方面...
所以checkbox为false。 比如酷狗音乐中,上下页选中的歌曲不会保留,只能在每页中选择添加后,再切换下页。 但是项目中有着需求,所以只能完成实现。 项目具体的需求如下:给角色授权时,选择模块以及模块下的操作,...
在网页设计和开发中,复选框(Checkbox)是一种常见的用户界面元素,允许用户从多个选项中选择一个或多个。当涉及到数据提交,比如通过HTML表单POST方法将用户的选择发送到服务器并存储到数据库中时,理解如何处理复...
在IT行业中,尤其是在Web开发领域,"checkbox全选,选中数据传到后台"是一个常见的功能需求。这个功能主要用于用户批量处理数据,如删除、修改等。以下是对这个主题的详细解析: 首先,我们需要理解标题中的关键词...
在本项目中,我们关注的是如何利用 Element UI 在 Vue 中实现三级复选框(CheckBox)的功能。 在 Vue 中,Element UI 提供了一个名为 `el-checkbox-group` 和 `el-checkbox` 的组件来处理复选框的选择。`el-...
本教程将深入探讨如何在C#中实现`Checkbox`的重绘,以实现这些高级功能。 首先,我们需要了解Windows Forms中的控件绘制机制。每个Windows Forms控件都有一个`OnPaint`事件,当控件需要更新其外观时,系统会触发这...
本篇文章将详细讲解如何在ListView中实现CheckBox复选框的功能。 首先,我们需要创建一个自定义的ListView适配器。适配器是连接数据源和ListView的关键,它负责将数据转化为可显示的视图。创建一个继承自`...
它提供了多种视图模式,包括报告视图,其中可以包含复选框(Checkbox)来实现用户交互。本示例着重讲解如何在ListView中实现复选框的单选功能。 在Delphi中,ListView的复选框功能可以通过设置`ListView.Style`属性...
在网页开发中,Checkbox(复选框)是用户界面中常用的一种元素,它允许用户从多个选项中选择一个或多个。全选和反选功能在多选列表中尤其常见,例如在批量操作或者多条件筛选时。以下是三种实现Checkbox全选和反选的...
在Android开发中,CheckBox是常用的一种控件,用于表示两种状态的选择:选中或未选中。本教程将深入探讨如何使用CheckBox实现多选、全选和反选功能,这对于构建具有选择列表的应用非常关键。 首先,我们从基础开始...