以一个简单的例子说明,登录跳转并显示用户信息和当前登录的人数,退出时登陆人数-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 的使用主要通过实现 SessionAware 接口...
本资源"struts2_session_权限检查并控制重复登录源码"提供了一个具体的实现方案,下面我们将深入探讨相关的知识点。 1. **Struts2框架**:Struts2是Apache软件基金会下的一个开源项目,它基于MVC设计模式,提供了...
在Struts2框架中,对request和session的管理和获取是实现Web应用中用户交互和状态维护的重要手段。本文将深入探讨Struts2中如何获取request和session,以及这两种对象的作用和应用场景。 ### Struts2框架简介 ...
在探讨STRUTS2框架中如何获取session和request这一核心知识点时,我们首先需要理解STRUTS2框架的运行机制以及session与request在Web开发中的基础概念。 ### STRUTS2框架简介 STRUTS2是Apache软件基金会下的一个...
在Struts2中,有四种主要的方式可以用来操作request、session和application上下文中的数据。这篇内容将深入探讨这四种方法,并结合源码和实用工具来帮助理解。 1. **ActionContext**: Struts2的核心组件...
在Struts2中,访问Web资源,如application、session和request,是常见的操作,这有助于实现数据共享和传递。本示例代码将帮助开发者更好地理解和运用这些功能。 一、Application域对象 Application域对象在所有用户...
### Struts2 访问 Request、Session 和 Application 作用域详解 #### 一、引言 Struts2 是一个基于 Java 的开源 Web 开发框架,它继承了 Struts1 的优秀特性并进行了改进,提供了更加灵活和强大的功能。在 Struts2...
通过这样的配置,Struts2框架会在执行任何需要登录的Action之前,先检查用户是否已经登录(通过Session中的 `systemUser` 对象)。如果未登录,会重定向到登录页面。这种方式可以有效地保护应用程序的资源,防止未...
用struts2实现session权限检查同时控制用户重复登录
Struts2提供了一种机制,即tokenSession,来解决这个问题。 首先,我们要理解什么是重复提交。在Web环境中,由于网络延迟或用户误操作,可能会导致同一个表单数据被多次提交,这就是重复提交。这种现象可能导致数据...
下面将详细讲解如何在Struts2的Action中使用session。 首先,理解session的基本概念。在Web开发中,session是一种服务器端存储用户状态的方式。当用户打开浏览器访问网站时,服务器会为该用户分配一个唯一的session...
本文将深入探讨如何使用Struts2结合session来实现用户登录检查。 首先,我们需要理解session的概念。在Web开发中,session是一种服务器端存储用户状态的方式。当用户登录后,服务器会为该用户创建一个session,并将...
以下将详细介绍如何在Struts2的Action中获取request、response、session。 ### 1. 使用ActionContext获取request、response、session Struts2的Action可以通过`ActionContext`来间接获取`request`、`response`和`...
JSP和Struts组合提供了动态网页和业务逻辑的处理能力,EL简化了页面表达,Session保证了用户会话的连贯性,JavaMail实现了邮件功能,而Eclipse作为开发工具,提高了开发效率和代码质量。学习并熟练运用这些技术,能...
在这个“struts1.2增删改查分页Filter Session”的主题中,我们将深入探讨几个关键概念:增删改查操作、分页、Filter和Session。 1. 增删改查(CRUD)操作: 在Web开发中,CRUD(Create, Read, Update, Delete)是...
Struts2是一个强大的Java EE应用程序框架,用于构建MVC(模型-视图-控制器)架构的Web应用。这个“struts2简单例子”是初学者理解Struts2工作原理和核心概念的一个很好的起点。让我们深入探讨一下Struts2的基础知识...
struts2 获取request session对象
Struts2是一个强大的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。这个API帮助文档是开发者在使用Struts2框架时的重要参考资料,它详细阐述了框架的各种组件、类库和方法,有助于理解并有效...
视频第一部分共两部分 下载前请阅读博客文章详细 博文链接:https://dlivan.iteye.com/blog/68374
### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...