`
sky_yangwang
  • 浏览: 52251 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

struts2+session+cookie

阅读更多

 

 

Session保存对象;

获得session的两种方式:

1),通过actionContext.getSession() 方法;

2),实现SessionAware 接口;

---

action类:

public class LoginService extends ActionSupport implements SessionAware{

...Admin adm =  adminDao.getByNamePwd(lg_admin,lg_pwd);

session.put(Struts2PortfolioConstants.USER, adm);//添加登录用户到session;

...

private Map session;

public void setSession(Map session) {

this.session = session;

}

Struts2PortfolioConstants中,声明一个变量:

public static final String USER = "user";

页面获取:

session:<s:property value="#session.user.name"/>

 

 

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

Cookie保存字符串值;

---

连接字符串,保存cookievalue

Cookie保存,获取类;

获取cookie后,分拆字符串,保存在javabean属性中,需要的页面显示cookie中的值。

---

1),Action保存cookie

//保存登录信息到cookie中; | 转码抛出异常;

try {

getHandleCookie().addCookie(Struts2PortfolioConstants.USER, adm.getName() + "," + adm.getPwd());

catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

public HandleCookie getHandleCookie( )  {

return new HandleCookie();

}

2),cookie处理类:

public class HandleCookie{

//添加cookie; | UnsupportedEncodingException,转码异常

public void addCookie(String name,String value) throws UnsupportedEncodingException{

value = URLEncoder.encode(value,"UTF-8");

        Cookie cookie = new Cookie(name, value);

        cookie.setMaxAge(60*60*24*365);//保存365天;

cookie.setPath("/");

        ServletActionContext.getResponse().addCookie(cookie);

    }

    // 得到指定的cookie;  

    public String getCookie(String cookieName) throws UnsupportedEncodingException { 

     HttpServletRequest request = ServletActionContext.getRequest();

        Cookie[] cookies = request.getCookies();  

        String value = ""

        if (cookies != null) {  

            for (Cookie cookie : cookies) {

                if (cookieName.equals(cookie.getName())) {  //获取具体的cookie;

                 value = URLDecoder.decode(cookie.getValue(),"UTF-8");

                 return value;  

                }  

            }  

        }  

        return null;  

}

 

// 删除指定的cookie  

    public Cookie delCookie(String cookieName) {

     HttpServletRequest request = ServletActionContext.getRequest();

        Cookie[] cookies = request.getCookies();  

        if (cookies != null) {  

            for (Cookie cookie : cookies) {  

                if (cookieName.equals(cookie.getName())) {  

                    cookie.setValue("");  

                    cookie.setMaxAge(0);  

                    cookie.setPath("/");  //添加,清除时需要加路径才能清除掉;

                    ServletActionContext.getResponse().addCookie(cookie); 

                }  

            }  

        }  

        return null;  

    }

}

3),Action获取cookie; 删除cookie

public String getCook() throws UnsupportedEncodingException  {

String cookieStr = getHandleCookie().getCookie(Struts2PortfolioConstants.USER);

if(cookieStr==null){

return "error";

}

if (cookieStr.length()>0) { //cookie值的长度>0;  

            String[] split = cookieStr.split(",");  

            setCookName(split[0]); 

            setCookPwd(split[1]);

        } 

return SUCCESS;

    }

private String cookName;

public String getCookName() {

return cookName;

}

public void setCookName(String cookName) {

this.cookName = cookName;

}

private String cookPwd;

public String getCookPwd() {

return cookPwd;

}

public void setCookPwd(String cookPwd) {

this.cookPwd = cookPwd;

}

 

//类的引用;

 public HandleCookie getHandleCookie( )  {

return new HandleCookie();

}

//删除cookie;

 public String delCook() {

getHandleCookie().delCookie(Struts2PortfolioConstants.USER);

return SUCCESS;

    }

4),页面显示:

用户名:<s:property value="cookName"/>

密码:<s:property value="cookPwd"/>

 

分享到:
评论

相关推荐

    注册系统struts2+jsp+mysql

    登录成功后,系统通常会设置session或cookie来保持用户会话,提供安全的访问体验。 5. **增删改模块**:用户信息的添加、删除和修改功能是通过Struts2框架与MySQL数据库进行交互实现的。Action类执行相应的数据库...

    Struts2+Hibernate3.2+spring2.0+sqlserver2000

    Struts2、Hibernate3.2、Spring2.0和SQL Server 2000是Java Web开发中的四个关键组件,它们构成了一个强大的企业级应用框架,通常被称为SSH2(Struts2、Spring2、Hibernate2)集成框架。下面将详细阐述这些技术以及...

    struts2+cookies实现购物车

    在IT领域,特别是Web开发中,使用Struts2框架结合cookies来实现购物车功能是一种常见的技术方案。本文将深入解析如何通过Struts2与cookies协同工作,构建一个实用且高效的在线购物车系统。 ### Struts2简介 Struts...

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

    - 安全性考虑:登录成功后,可以考虑使用Session或Cookie来管理用户的登录状态。 通过以上步骤,可以实现一个简单的Struts2和Hibernate4整合的登录系统。这种整合方式在实际开发中很常见,因为它提供了良好的分层...

    struts2+eclipse 登录和注册小模块

    Struts2是一个强大的MVC(模型-视图-控制器)框架,它被广泛应用于Java Web开发中,提供了处理用户请求、业务逻辑处理和视图渲染的功能。Eclipse是一款流行的Java集成开发环境,使得开发者能够方便地创建、调试和...

    JFreeChart(Struts1+jFreeChart)

    此外,还可以使用Session或Cookie来管理用户的个性化图表需求。 关于标签 "DisplayChart",它暗示了我们关注的是如何在Web应用中显示图表。在Struts1框架中,JFreeChart能够帮助开发者轻松地将复杂的业务数据转化为...

    JSP+Struts2开发当当购书网源代码

    购物车功能的实现往往涉及到状态管理,这可能涉及到Cookie或Session。当用户决定结算时,系统会验证用户身份,生成订单,并将订单信息持久化到数据库。这一系列复杂的业务流程在Struts2的Action和JSP的协同工作下...

    struts2+spring2.54+hibernater3.1最新组合

    3. **购物车**:使用Session或Cookie存储用户选择的商品,处理添加、删除和修改数量等操作。 4. **订单处理**:Spring服务层处理订单创建、支付和状态更新,同时利用Hibernate处理订单与书籍之间的关联关系。 5. **...

    Struts+Hibernate+Spring整合项目之登录部分

    2. **整合Struts和Spring**:在struts.xml中配置Action时,指定Spring管理的bean,使Action由Spring实例化。 3. **整合Hibernate和Spring**:在applicationContext.xml中配置SessionFactory,并声明User实体类的映射...

    STRUTS2获得session和request

    在探讨STRUTS2框架中如何获取session和request这一核心知识点时,我们首先需要理解STRUTS2框架的运行机制以及session与request在Web开发中的基础概念。 ### STRUTS2框架简介 STRUTS2是Apache软件基金会下的一个...

    struts2中request和session的获取

    在Struts2框架中,对request和session的管理和获取是实现Web应用中用户交互和状态维护的重要手段。本文将深入探讨Struts2中如何获取request和session,以及这两种对象的作用和应用场景。 ### Struts2框架简介 ...

    Struts2 的Action使用session的方法

    下面将详细讲解如何在Struts2的Action中使用session。 首先,理解session的基本概念。在Web开发中,session是一种服务器端存储用户状态的方式。当用户打开浏览器访问网站时,服务器会为该用户分配一个唯一的session...

    struts2与cookie实现自动登录

    - Struts2的拦截器或自定义过滤器会检测到这个Cookie,读取其值并解密。 - 检查解密后的Token是否存在于服务器的Session中。如果存在,说明该用户已经通过了身份验证,可以直接跳转到主页面,实现自动登录效果;...

    jsp,struts,EL,session等注意总结集合

    客户端通过Session ID(通常存储在cookie中)来标识其对应的Session。开发者可以在Session中存储用户信息,如登录状态、购物车内容等,以保持跨页面的会话数据。 【JavaMail】 JavaMail是一个开源API,用于处理邮件...

    网上书城系统(Struts+Hibernate+Mysql).zip

    1. 用户认证与授权:使用session和cookie管理用户登录状态,实现权限控制。 2. 安全性:对敏感信息如密码进行加密存储,防止SQL注入和XSS攻击。 3. 性能优化:合理设计数据库表结构,使用索引,优化查询语句,减少...

    myeclipse+struts+jsp网上书店13

    7. Session和Cookie的使用:存储用户会话信息,实现购物车功能。 通过学习和实践"myeclipse+struts+jsp网上书店13",开发者不仅可以深入理解Java Web开发流程,还能提升在MVC框架下进行项目开发的能力,为后续的...

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

    在本文中,我们将深入探讨如何使用Struts2框架结合Cookie技术实现SSO。Struts2是Java企业级应用中广泛使用的MVC(Model-View-Controller)框架,它提供了丰富的特性和插件,使得SSO的实现更加便捷。 首先,我们需要...

    struts+spring+hibernate通用分页方法

    这些参数可以通过HTTP请求的参数传递,或者存储在Session或Cookie中。 Spring则扮演服务层的角色,我们在这里定义一个Service接口,用于处理业务逻辑,包括查询数据并进行分页。例如,我们可以创建一个`PageService...

    struts实现购物车+数据库

    此外,对于并发环境,购物车的状态管理也是个挑战,可能需要使用session或cookie来跟踪用户的购物车。 总结来说,这个项目涵盖了Struts框架的运用、数据库操作、MVC设计模式的理解以及前端页面的开发。它是一个综合...

    网上书城struts+jsp+SqlServer源代码

    购物车状态保存在服务器端,可能使用session或cookie实现,Struts处理购物车操作,SQL Server记录用户订单。 4. 订单处理:结账、支付、订单状态跟踪。涉及到支付网关集成,可能使用第三方API,订单信息存储在SQL ...

Global site tag (gtag.js) - Google Analytics