`

Struts2之Session

阅读更多
以一个简单的例子说明,登录跳转并显示用户信息和当前登录的人数,退出时登陆人数-1 
登录的用户信息保存在Application和Session中,然后在JSP页面中读取信息
Struts2 的Action中若希望访问Session对象,可采用两种方式:   
 1、从ActionContext中获取;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
public class UserAction{
	private String username;
	private String password;
	public void setPassword(String password) {
		this.password = password;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String execute(){
		session.put("username", username);
                //向当前ActionContext对象中存入名值对信息
		session.put("password", password);
		return "login-success";
	}
	private Map<String, Object> session=ActionContext.getContext().getSession;
	public void setSession(Map<String, Object> session) {
		// 获取Session。通过实现SessionAware接口
		this.session=session;
	}
}

2、实现SessionAware接口。
import java.util.Map;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.SessionAware;

public class UserAction implements SessionAware,ApplicationAware{
	private String username;
	private String password;
	public void setPassword(String password) {
		this.password = password;
	}
	public void setUsername(String username) {
		this.username = username;
	}
        public String Logout(){
		//1、在线人数-1:获取在线人数,若数量还>0,则-1
		Integer count=(Integer) application.get("count");
		if(count!=null&&count>0){
			count--;
			application.put("count", count);
		}
		//2、session失效:强转为SessionMap,调用invalidate方法
		((SessionMap)session).invalidate();
		return "logout-success";
	}
	public String execute(){
	//  把用户信息存入Session域中
	//  1、获取Session。通过实现SessionAware接口  implements
	 
	//2、获取登录信息。通过在Action中添加setter方法
		
	// 3、把用户信息存入Session域中
		session.put("username", username);
		session.put("password", password);
	//在线人数+1
	//1、获取当前的在线人数,从application中获取  implements
		Integer count=(Integer) application.get("count");
		if(count==null){
			count=0;
		}
	//2、使当前的在线人数+1
		count++;
	
		application.put("count", count);
		return "login-success";
	}
	private Map<String, Object> session;
	public void setSession(Map<String, Object> session) {
		// 1、获取Session。通过实现SessionAware接口
		this.session=session;
	}
	private Map<String, Object> application;
	public void setApplication(Map<String, Object> application) {
		// TODO Auto-generated method stub
		this.application=application;
	}
}

struts.xml
<action name="login-ui">
    	<result>/pages/login.jsp</result>
</action>
<action name="user-Login" class="com.struts2_login.actions.UserAction">
    	<result name="login-success">/pages/login-success.jsp</result>
</action>
<action name="Logout" class="com.struts2_login.actions.UserAction" method="Logout">
    	<result name="logout-success">/pages/login.jsp</result>
</action>

登录界面login.jsp
<body>
   <form action="user-Login" method="post"> 
   		username: <input type="text" name="username"/> <br/>
   		password: <input type="text" name="password">  <br/>
   		<input type="submit" value="Login"/>
   </form>
</body>

登录成功跳转的页面login-success.jsp
<body>
    Welcome:${session.username } <br> 
    Count On Line:${application.count } <br/>
    <a href="Logout">Logout</a>
</body>
分享到:
评论

相关推荐

    Struts2中的session用法

    Struts2 中的 Session 用法 Struts2 框架中,Session 是一个非常重要的概念,它允许开发者在服务器端存储一些数据,以便在多个请求之间共享这些数据。在 Struts2 中,Session 的使用主要通过实现 SessionAware 接口...

    struts2_session_权限检查并控制重复登录源码

    本资源"struts2_session_权限检查并控制重复登录源码"提供了一个具体的实现方案,下面我们将深入探讨相关的知识点。 1. **Struts2框架**:Struts2是Apache软件基金会下的一个开源项目,它基于MVC设计模式,提供了...

    struts2中request和session的获取

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

    STRUTS2获得session和request

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

    Struts2访问request,session,application的四种方式

    在Struts2中,有四种主要的方式可以用来操作request、session和application上下文中的数据。这篇内容将深入探讨这四种方法,并结合源码和实用工具来帮助理解。 1. **ActionContext**: Struts2的核心组件...

    struts2访问application、session以及request等web资源的示例代码

    在Struts2中,访问Web资源,如application、session和request,是常见的操作,这有助于实现数据共享和传递。本示例代码将帮助开发者更好地理解和运用这些功能。 一、Application域对象 Application域对象在所有用户...

    struts2访问request,session,application作用域

    ### Struts2 访问 Request、Session 和 Application 作用域详解 #### 一、引言 Struts2 是一个基于 Java 的开源 Web 开发框架,它继承了 Struts1 的优秀特性并进行了改进,提供了更加灵活和强大的功能。在 Struts2...

    简单的struts2拦截器利用session拦截用户登录.docx

    通过这样的配置,Struts2框架会在执行任何需要登录的Action之前,先检查用户是否已经登录(通过Session中的 `systemUser` 对象)。如果未登录,会重定向到登录页面。这种方式可以有效地保护应用程序的资源,防止未...

    用struts2实现session权限检查同时控制用户重复登录

    用struts2实现session权限检查同时控制用户重复登录

    JavaEE Struts2利用tokenSession防止重复提交

    Struts2提供了一种机制,即tokenSession,来解决这个问题。 首先,我们要理解什么是重复提交。在Web环境中,由于网络延迟或用户误操作,可能会导致同一个表单数据被多次提交,这就是重复提交。这种现象可能导致数据...

    Struts2 的Action使用session的方法

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

    Struts2实现检查用户是否登录

    本文将深入探讨如何使用Struts2结合session来实现用户登录检查。 首先,我们需要理解session的概念。在Web开发中,session是一种服务器端存储用户状态的方式。当用户登录后,服务器会为该用户创建一个session,并将...

    Struts2的Action中获得request response session几种方法

    以下将详细介绍如何在Struts2的Action中获取request、response、session。 ### 1. 使用ActionContext获取request、response、session Struts2的Action可以通过`ActionContext`来间接获取`request`、`response`和`...

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

    JSP和Struts组合提供了动态网页和业务逻辑的处理能力,EL简化了页面表达,Session保证了用户会话的连贯性,JavaMail实现了邮件功能,而Eclipse作为开发工具,提高了开发效率和代码质量。学习并熟练运用这些技术,能...

    struts1.2增删改查分页Filter Session

    在这个“struts1.2增删改查分页Filter Session”的主题中,我们将深入探讨几个关键概念:增删改查操作、分页、Filter和Session。 1. 增删改查(CRUD)操作: 在Web开发中,CRUD(Create, Read, Update, Delete)是...

    struts2简单例子

    Struts2是一个强大的Java EE应用程序框架,用于构建MVC(模型-视图-控制器)架构的Web应用。这个“struts2简单例子”是初学者理解Struts2工作原理和核心概念的一个很好的起点。让我们深入探讨一下Struts2的基础知识...

    struts2 获取request

    struts2 获取request session对象

    struts2 API帮助文档

    Struts2是一个强大的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。这个API帮助文档是开发者在使用Struts2框架时的重要参考资料,它详细阐述了框架的各种组件、类库和方法,有助于理解并有效...

    struts1.2自定义标签之session验证

    视频第一部分共两部分 下载前请阅读博客文章详细 博文链接:https://dlivan.iteye.com/blog/68374

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

Global site tag (gtag.js) - Google Analytics