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:保存字符串值;
---
连接字符串,保存cookie的value;
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"/>
相关推荐
登录成功后,系统通常会设置session或cookie来保持用户会话,提供安全的访问体验。 5. **增删改模块**:用户信息的添加、删除和修改功能是通过Struts2框架与MySQL数据库进行交互实现的。Action类执行相应的数据库...
Struts2、Hibernate3.2、Spring2.0和SQL Server 2000是Java Web开发中的四个关键组件,它们构成了一个强大的企业级应用框架,通常被称为SSH2(Struts2、Spring2、Hibernate2)集成框架。下面将详细阐述这些技术以及...
在IT领域,特别是Web开发中,使用Struts2框架结合cookies来实现购物车功能是一种常见的技术方案。本文将深入解析如何通过Struts2与cookies协同工作,构建一个实用且高效的在线购物车系统。 ### Struts2简介 Struts...
- 安全性考虑:登录成功后,可以考虑使用Session或Cookie来管理用户的登录状态。 通过以上步骤,可以实现一个简单的Struts2和Hibernate4整合的登录系统。这种整合方式在实际开发中很常见,因为它提供了良好的分层...
Struts2是一个强大的MVC(模型-视图-控制器)框架,它被广泛应用于Java Web开发中,提供了处理用户请求、业务逻辑处理和视图渲染的功能。Eclipse是一款流行的Java集成开发环境,使得开发者能够方便地创建、调试和...
此外,还可以使用Session或Cookie来管理用户的个性化图表需求。 关于标签 "DisplayChart",它暗示了我们关注的是如何在Web应用中显示图表。在Struts1框架中,JFreeChart能够帮助开发者轻松地将复杂的业务数据转化为...
购物车功能的实现往往涉及到状态管理,这可能涉及到Cookie或Session。当用户决定结算时,系统会验证用户身份,生成订单,并将订单信息持久化到数据库。这一系列复杂的业务流程在Struts2的Action和JSP的协同工作下...
3. **购物车**:使用Session或Cookie存储用户选择的商品,处理添加、删除和修改数量等操作。 4. **订单处理**:Spring服务层处理订单创建、支付和状态更新,同时利用Hibernate处理订单与书籍之间的关联关系。 5. **...
2. **整合Struts和Spring**:在struts.xml中配置Action时,指定Spring管理的bean,使Action由Spring实例化。 3. **整合Hibernate和Spring**:在applicationContext.xml中配置SessionFactory,并声明User实体类的映射...
在探讨STRUTS2框架中如何获取session和request这一核心知识点时,我们首先需要理解STRUTS2框架的运行机制以及session与request在Web开发中的基础概念。 ### STRUTS2框架简介 STRUTS2是Apache软件基金会下的一个...
在Struts2框架中,对request和session的管理和获取是实现Web应用中用户交互和状态维护的重要手段。本文将深入探讨Struts2中如何获取request和session,以及这两种对象的作用和应用场景。 ### Struts2框架简介 ...
下面将详细讲解如何在Struts2的Action中使用session。 首先,理解session的基本概念。在Web开发中,session是一种服务器端存储用户状态的方式。当用户打开浏览器访问网站时,服务器会为该用户分配一个唯一的session...
- Struts2的拦截器或自定义过滤器会检测到这个Cookie,读取其值并解密。 - 检查解密后的Token是否存在于服务器的Session中。如果存在,说明该用户已经通过了身份验证,可以直接跳转到主页面,实现自动登录效果;...
客户端通过Session ID(通常存储在cookie中)来标识其对应的Session。开发者可以在Session中存储用户信息,如登录状态、购物车内容等,以保持跨页面的会话数据。 【JavaMail】 JavaMail是一个开源API,用于处理邮件...
1. 用户认证与授权:使用session和cookie管理用户登录状态,实现权限控制。 2. 安全性:对敏感信息如密码进行加密存储,防止SQL注入和XSS攻击。 3. 性能优化:合理设计数据库表结构,使用索引,优化查询语句,减少...
7. Session和Cookie的使用:存储用户会话信息,实现购物车功能。 通过学习和实践"myeclipse+struts+jsp网上书店13",开发者不仅可以深入理解Java Web开发流程,还能提升在MVC框架下进行项目开发的能力,为后续的...
在本文中,我们将深入探讨如何使用Struts2框架结合Cookie技术实现SSO。Struts2是Java企业级应用中广泛使用的MVC(Model-View-Controller)框架,它提供了丰富的特性和插件,使得SSO的实现更加便捷。 首先,我们需要...
这些参数可以通过HTTP请求的参数传递,或者存储在Session或Cookie中。 Spring则扮演服务层的角色,我们在这里定义一个Service接口,用于处理业务逻辑,包括查询数据并进行分页。例如,我们可以创建一个`PageService...
此外,对于并发环境,购物车的状态管理也是个挑战,可能需要使用session或cookie来跟踪用户的购物车。 总结来说,这个项目涵盖了Struts框架的运用、数据库操作、MVC设计模式的理解以及前端页面的开发。它是一个综合...
购物车状态保存在服务器端,可能使用session或cookie实现,Struts处理购物车操作,SQL Server记录用户订单。 4. 订单处理:结账、支付、订单状态跟踪。涉及到支付网关集成,可能使用第三方API,订单信息存储在SQL ...