添加cookie
cookie phone;
phone = new Cookie("userHp", hp);
phone.setMaxAge(60 * 60 * 24 * 365);
phone.setPath("/");
ServletActionContext.getResponse().addCookie(phone);
获取cookie
public String getCookieValue(Cookie[] cookies, String str) {
String result = null;
for (Cookie cookie : cookies) {
if (cookie.getName().equals(str)) {
result = cookie.getValue();
break;
}
}
return result;
}
通过请求获取页面上的cookie,分别读取cookie值
// 修改、删除cookie
注:
修改Cookie:先获取指定name的cookie值,new一个键为该name,值为修改后的值的Cookie,然后通过response放addCookie(Cookie cookie)方法覆盖原来的指定name的Cookie。
删除Cookie:没有现成的删除Cookie方法,只能把现有的某个cookie的值修改后重新add以覆盖原有的cookie(同修改Cookie),在前台判断该cookie的值是否为空或为修改后的值
public Cookie delCookie(HttpServletRequest request) {
request = ServletActionContext.getRequest();
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for(int i=0;i<cookies.length;i++)
{
if("userName".equals(cookies[i].getName()) ||"userHp".equals(cookies[i].getName()) || "password".equals(cookies[i].getName())) {
Cookie cookie = new Cookie(cookies[i].getName(), "");
cookie.setMaxAge(0);
cookie.setPath("/");
ServletActionContext.getResponse().addCookie(cookie);
//return cookie;
}
}
}
return null;
}
然后获取session调用删除cookie的方法就可以删除
HttpSession session = ServletActionContext.getRequest().getSession();
if (session != null)
session.removeAttribute("userName");
session.removeAttribute("userHp");
delCookie(this.getRequest());
if(password.trim().matches("^[\u4e00-\u9fa5]+$")&&!password.trim().matches("^[-a-zA-Z_0-9@]+$")){
this.addActionError("请重新输入密码,不能用特殊符号和中文!");
return ERROR;
}
if(!hp.trim().matches("1[3458][0-9]{9}")){
this.addActionError("手机号有问题,请重新输入!");
return ERROR;
}
if(!name.trim().matches("^[a-zA-Z0-9_\u4e00-\u9fa5]+$")){
this.addActionError("用户名不能用特殊符号!");
return ERROR;
}
分享到:
相关推荐
在Struts2中实现自动登录功能,通常涉及到利用Cookie来保存用户登录状态,以便在用户再次访问时能够快速恢复其身份。这个过程涉及到几个关键步骤,包括登录处理、Cookie的创建与设置、过滤器的配置以及在请求处理...
6. **URL重写和URL生成**:Servlet API提供了`RequestDispatcher`用于转发和重定向,而在Struts2中,`ActionSupport`类的`redirectAction()`和`generateUrl()`方法可以帮助我们生成和重定向到特定的Action。...
下面我们将详细介绍在Struts2中,Action类获取Response对象的四种方法。 **方法 1:使用Struts2 Aware拦截器** 此方法基于Struts2的拦截器机制,让Action类实现`ServletResponseAware`接口。通过这个接口,Struts2...
在Struts2中,可以创建Action类处理HTTP请求,返回相应的商品数据,然后通过JSP页面进行展示。同时,Ajax技术可以用来实现无刷新的动态加载,提高用户体验。 2. **购物车管理**:购物车功能涉及添加商品、修改数量...
如果需要在用户操作时动态切换语言,可以在Action中添加一个方法,该方法接收请求,读取语言参数,并更新session或cookie。 8. **测试和调试**: 使用不同的浏览器设置或手动设置URL参数,测试语言切换功能是否...
在Struts2中,这些操作可以通过Action类、ActionForm对象和相应的JSP页面来实现。Action类处理用户的请求,ActionForm对象封装表单数据,而JSP则展示数据或接收用户输入。 1. 创建(Create):当用户提交新数据时,...
在Struts2中,访问web元素是开发过程中常见的需求,比如获取请求参数、session数据或者cookie等。本篇文章将详细介绍Struts2中四种访问web元素的方法。 1. **Action上下文(ActionContext)** ActionContext是...
在Struts2中,Action是处理用户请求的核心组件,它负责业务逻辑的处理。有时我们需要在不同的Action之间共享数据,这时可以利用HttpSession接口来实现。下面将详细讲解如何在Struts2的Action中使用session。 首先,...
在Struts2中实现SSO,我们可以通过以下步骤: 1. **配置Struts2 Action**:创建一个专门处理登录请求的Action,这个Action将负责与CAS服务器通信并处理登录逻辑。可以使用Struts2的拦截器来实现登录检查,拦截所有...
本文将深入探讨如何在Struts2中访问Servlet API。 首先,理解Struts2的执行流程至关重要。当一个请求到达服务器时,Struts2的过滤器(通常名为`FilterDispatcher`或`StrutsPrepareAndExecuteFilter`)会捕获这个...
在Struts2中实现国际化,可以帮助开发者创建对多语言环境友好的应用。 本示例主要围绕Struts2框架如何实现国际化进行深入探讨。源码中包含两个关键部分:WebRoot目录和src目录。 1. **WebRoot** 目录: - `WEB-...
在Struts2中,拦截器(Interceptor)是实现业务逻辑控制和增强功能的重要机制,而国际化(Internationalization,简称i18n)则能帮助我们构建支持多语言的Web应用。下面将详细解释这两个知识点以及它们如何在Struts2...
1. **生成Token**:在表单中添加一个隐藏字段,将Token值传递给服务器。 ```jsp ``` 2. **验证Token**:在Action的execute方法或其他处理表单的方法中,Struts2会自动进行Token验证。如果Token无效,Action的...
在给定的代码片段中,可以看到`GoodsAction`类继承自`BaseAction`,这表明它是一个Struts2 Action,负责处理与商品相关的请求。其中,`clearUpCar`方法用于清空购物车,通过获取所有cookies并将它们的生存周期设为0...
在Struts2中,这可以通过资源包(`.properties`文件)实现,然后在Action或JSP中引用。 这个简单的Struts2登录示例展示了如何整合前端表单、后端验证以及Struts2框架的配置来实现一个基本的登录功能。在实际项目中...
在Struts2中,拦截器(Interceptor)扮演着至关重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如日志记录、权限验证等。在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合...
通过在Struts2配置文件中定义Action的映射,用户请求会被转发到对应的Action进行处理。此外,Struts2的拦截器可以用来添加通用的功能,如日志记录、权限验证等,进一步增强了系统功能。 留言板功能的实现可能利用了...
在Struts2框架中,核心概念包括Action、Result和Interceptor。Action是业务逻辑的载体,处理用户请求并返回结果。Result则定义了Action执行后如何展示结果,比如跳转到一个新的JSP页面或者返回JSON数据。Interceptor...
在Struts2中,国际化通常通过使用.properties文件来实现。这些文件存储了应用中所有需要翻译的文本,每种语言都有对应的.properties文件。例如,对于英文,我们可能会有一个`messages_en.properties`文件,而对于...
- **Interceptor(拦截器)**:拦截器是Struts2中强大的功能,可以实现如权限检查、日志记录等功能。 2. **Hibernate4基础**: - **Entity类**:映射数据库表,包含对应字段的属性和getter/setter方法。 - **...