Struts2中使用Session
嗯,没错,过了这么长时间我还在做我的注册和登录。
登陆的部分自然是从数据库中查找响应的用户信息,然后把一个user放到session里,
Action中代码如下:
public String Login(){
User user = new User(username,password);
user = userbiz.Login(user);
if(user != null){
session.put("user", user);
return this.SUCCESS;
}
return this.ERROR;
}
biz中:
public User Login(User user) {
List<User> list = userdao.Search(user);
if(list==null) return null;
user = (User)list.get();
return user;
}
dao中:
public List<User> Search(User user) {
List<User> list=null;
//通过sessionFactory获得Session
Session session=sessionFactory.openSession();
//创建Criteria对象
Criteria c=session.createCriteria(User.class);
//使用Example工具类创建示例对象
Example example=Example.create(user);
//为Criteria对象指定示例对象example作为查询条件
c.add(example);
list = c.list(); //执行查询,获得结果
if(list.size()!=){
return (List<User>)list;
}
return null;
}
其中涉及到session的使用,于是查了下struts2中如何获取session。
有两个方法:
1.通过ActionContext class中的方法getSession得到
2.Action实现org.apache.struts2.interceptor.SessionAware接口的方式来对session进行操作
方法一:
public class SessionTestAction extends ActionSupport {
public String execute() {
ActionContext actionContext = ActionContext.getContext();
Map session = actionContext.getSession();
session.put("user", user);
return SUCCESS;
}
}
方法二:
public class SessionTest1Action extends ActionSupport implements SessionAware {
private Map session;
public void setSession(Map session) {
this.session = session;
}
public String execute() {
this.session.put("user", user);
return SUCCESS;
}
}
一个项目中有可能有多个Action需要用到session,那么可以写一个抽象类BaseAction,之后的Action只要继承这个类就可以了:
package action;
import java.util.Map;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
abstract class BaseAction extends ActionSupport implements SessionAware {
Map session;
@Override
public void setSession(Map session) {
this.session=session;
}
}
其中session不能是private的,不然子类继承不了,这一点感觉不太好。。
Struts2中使用Session的更多相关文章
- struts2中的session使用
1.1. 如何获取Session 1.1.1. 获取Session的方式 Struts2中获取Session的方式有3种,大家掌握其中任何一种都可以. 通过ActionContext.getConte ...
- Struts2中的session、request、respsonse获取方法
个人对于struts有一种复杂的心情,平心而论,struts2是个人最早接触到的的框架,在学校的时候就已经开始学习了,大四毕业设计,无疑用的还是struct,那时候SSH还是很流行的,后来出来实习,直 ...
- Struts2中使用Session的两种方法
在Struts2里,如果需要在Action中使用到session,可以使用下面两种方式: 通过ActionContext 类中的方法getSession得到 Action实现org.apache.st ...
- struts2中的session、request 、和action往页面中传值的方法
ActionContext.getContext().put("list", list); ActionContext.getContext().getValueStack().p ...
- 2.struts2访问web资源(在struts2中获取session,request等等)
什么是web资源:web资源就是指request,response,session,servlet的api 为什么需要访问web资源:因为图片上传,需要获取图片的目录,就需要通过action来访问we ...
- ???Struts2框架03 session的使用、登录逻辑【session工作原理】
1 登录逻辑 1.1 获取登录数据(例如:用户名.密码) 1.2 在控制层调用业务层来验证数据信息 1.3 登录成功:保存用户信息(服务器用session.浏览器用cookie),跳转到主页面 1.4 ...
- 在Struts2中使用ValueStack、ActionContext、ServletContext、request、session等 .
笔者不知道该用哪个词来形容ValueStack.ActionContext等可以在Struts2中用来存放数据的类.这些类使用的范围不同,得到的方法也不同,下面就来一一介绍. 声明:本文参考Strut ...
- struts2 中 Session的使用简介
在Struts2里,如果需要在Action中使用到session,可以使用下面两种方式: 通过ActionContext 类中的方法getSession得到 Action实现org.apache.st ...
- Struts2中获取Web元素request、session、application对象的四种方式
我们在学习web编程的时候,一般都是通过requet.session.application(servletcontext)进行一系列相关的操作,request.session.和applicatio ...
随机推荐
- [CodeChef - GERALD07 ] Chef and Graph Queries
Read problems statements in Mandarin Chineseand Russian. Problem Statement Chef has a undirected gra ...
- [HDU5214]Movie解题报告|小水题大智慧
Movie Cloud and Miceren like watching movies. Today, they want to choose some wonderful scenes from ...
- Windows Server 2008 R2 SP1安装SQL 2012安装报错之0x858C001B
使用Windows Server 2008 R2 SP1安装SQL 2012的时候总是报这样一个错: SQL Server Setup has encountered the following er ...
- python进行机器学习(一)之数据预处理
一.加载数据 houseprice=pd.read_csv('../input/train.csv') #加载后放入dataframe里 all_data=pd.read_csv('a.csv', h ...
- 结合BeautyEye开源UI框架实现的较美观的Java桌面程序
BeautyJavaSwingRobot 结合BeautyEye开源UI框架实现的较美观的Java桌面程序,主要功能就是图灵机器人和一个2345网站万年历的抓取.... 挺简单而且实用的一个项目,实现 ...
- Codeforces Round #483 (Div. 1) 简要题解
来自FallDream的博客,未经允许,请勿转载,谢谢. 为了证明一下我又来更新了,写一篇简要的题解吧. 这场比赛好像有点神奇,E题莫名是道原题,导致有很多选手直接过掉了(Claris 表演24s过题 ...
- dump_stack 实现分析【转】
转自:http://kernel.meizu.com/2017/03/18-40-19-dump_stack.html 1 简介 说起 dump_stack() ,相信从事 Linux 内核或者驱动相 ...
- 安全测试===Web 安全渗透方面的学习路线
作者:向生李链接:https://www.zhihu.com/question/21914899/answer/39344435来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- dubbo支持的远程调用方式
dubbo RPC(二进制序列化 + tcp协议).http invoker(二进制序列化 + http协议,至少在开源版本没发现对文本序列化的支持).hessian(二进制序列化 + http协议) ...
- 在 Visual Studio 中使用正则表达式
Visual Studio 使用 .NET framework 正则表达式查找和替换文本. 在 Visual Studio 2010 和早期版本中,Visual Studio 在“查找和替换”窗口中使 ...