`

struts2 Action中cookie的添加、获取、删除

阅读更多

添加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实现自动登录中用过滤器执行读取上下文方法

    在Struts2中实现自动登录功能,通常涉及到利用Cookie来保存用户登录状态,以便在用户再次访问时能够快速恢复其身份。这个过程涉及到几个关键步骤,包括登录处理、Cookie的创建与设置、过滤器的配置以及在请求处理...

    Struts2 part 3:在Action中使用ServletAPI

    6. **URL重写和URL生成**:Servlet API提供了`RequestDispatcher`用于转发和重定向,而在Struts2中,`ActionSupport`类的`redirectAction()`和`generateUrl()`方法可以帮助我们生成和重定向到特定的Action。...

    Struts2在Action中获得Response对象的四种方法

    下面我们将详细介绍在Struts2中,Action类获取Response对象的四种方法。 **方法 1:使用Struts2 Aware拦截器** 此方法基于Struts2的拦截器机制,让Action类实现`ServletResponseAware`接口。通过这个接口,Struts2...

    struts2 课程设计

    在Struts2中,可以创建Action类处理HTTP请求,返回相应的商品数据,然后通过JSP页面进行展示。同时,Ajax技术可以用来实现无刷新的动态加载,提高用户体验。 2. **购物车管理**:购物车功能涉及添加商品、修改数量...

    struts2实现的中英文切换

    如果需要在用户操作时动态切换语言,可以在Action中添加一个方法,该方法接收请求,读取语言参数,并更新session或cookie。 8. **测试和调试**: 使用不同的浏览器设置或手动设置URL参数,测试语言切换功能是否...

    struts2(包括增删改查的实现,及登录实现。jdbc连接。适合struts2初学者)

    在Struts2中,这些操作可以通过Action类、ActionForm对象和相应的JSP页面来实现。Action类处理用户的请求,ActionForm对象封装表单数据,而JSP则展示数据或接收用户输入。 1. 创建(Create):当用户提交新数据时,...

    Struts2中访问web元素的例子

    在Struts2中,访问web元素是开发过程中常见的需求,比如获取请求参数、session数据或者cookie等。本篇文章将详细介绍Struts2中四种访问web元素的方法。 1. **Action上下文(ActionContext)** ActionContext是...

    Struts2 的Action使用session的方法

    在Struts2中,Action是处理用户请求的核心组件,它负责业务逻辑的处理。有时我们需要在不同的Action之间共享数据,这时可以利用HttpSession接口来实现。下面将详细讲解如何在Struts2的Action中使用session。 首先,...

    SSO单点登入,使用cookie实习(Struts2)

    在Struts2中实现SSO,我们可以通过以下步骤: 1. **配置Struts2 Action**:创建一个专门处理登录请求的Action,这个Action将负责与CAS服务器通信并处理登录逻辑。可以使用Struts2的拦截器来实现登录检查,拦截所有...

    Struts2访问ServletAPI

    本文将深入探讨如何在Struts2中访问Servlet API。 首先,理解Struts2的执行流程至关重要。当一个请求到达服务器时,Struts2的过滤器(通常名为`FilterDispatcher`或`StrutsPrepareAndExecuteFilter`)会捕获这个...

    struts2国际化例子源码

    在Struts2中实现国际化,可以帮助开发者创建对多语言环境友好的应用。 本示例主要围绕Struts2框架如何实现国际化进行深入探讨。源码中包含两个关键部分:WebRoot目录和src目录。 1. **WebRoot** 目录: - `WEB-...

    struts2拦截器国际化

    在Struts2中,拦截器(Interceptor)是实现业务逻辑控制和增强功能的重要机制,而国际化(Internationalization,简称i18n)则能帮助我们构建支持多语言的Web应用。下面将详细解释这两个知识点以及它们如何在Struts2...

    struts2的token实现.

    1. **生成Token**:在表单中添加一个隐藏字段,将Token值传递给服务器。 ```jsp ``` 2. **验证Token**:在Action的execute方法或其他处理表单的方法中,Struts2会自动进行Token验证。如果Token无效,Action的...

    struts2+cookies实现购物车

    在给定的代码片段中,可以看到`GoodsAction`类继承自`BaseAction`,这表明它是一个Struts2 Action,负责处理与商品相关的请求。其中,`clearUpCar`方法用于清空购物车,通过获取所有cookies并将它们的生存周期设为0...

    简单的Struts2登录

    在Struts2中,这可以通过资源包(`.properties`文件)实现,然后在Action或JSP中引用。 这个简单的Struts2登录示例展示了如何整合前端表单、后端验证以及Struts2框架的配置来实现一个基本的登录功能。在实际项目中...

    使用struts2拦截器对登陆权限验证

    在Struts2中,拦截器(Interceptor)扮演着至关重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如日志记录、权限验证等。在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合...

    基于Struts2的班级网站

    通过在Struts2配置文件中定义Action的映射,用户请求会被转发到对应的Action进行处理。此外,Struts2的拦截器可以用来添加通用的功能,如日志记录、权限验证等,进一步增强了系统功能。 留言板功能的实现可能利用了...

    struts2 web投票系统

    在Struts2框架中,核心概念包括Action、Result和Interceptor。Action是业务逻辑的载体,处理用户请求并返回结果。Result则定义了Action执行后如何展示结果,比如跳转到一个新的JSP页面或者返回JSON数据。Interceptor...

    国际化与struts2

    在Struts2中,国际化通常通过使用.properties文件来实现。这些文件存储了应用中所有需要翻译的文本,每种语言都有对应的.properties文件。例如,对于英文,我们可能会有一个`messages_en.properties`文件,而对于...

    struts2+hibernate4整合(简单登陆页面)

    - **Interceptor(拦截器)**:拦截器是Struts2中强大的功能,可以实现如权限检查、日志记录等功能。 2. **Hibernate4基础**: - **Entity类**:映射数据库表,包含对应字段的属性和getter/setter方法。 - **...

Global site tag (gtag.js) - Google Analytics