一、 取得session 3种方法
1、context.getSession() -->>Map对象

2、HttpServletRequest request =
(HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);  
再通过request 对象取得HttpSession

3、实现SessionAware接口,让strtus自动注入session实例给我们。 

二、
1.创建新项目,基本和Struts的学习-属性驱动和模型驱动一样,主要修改两个文件的代码
2.修改struts.xml

2.sesstion方法,编写UserAction.java

package com.nf.action;

import com.nf.entity.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import org.apache.struts2.interceptor.SessionAware; import java.util.Map; public class UserAction extends ActionSupport implements ModelDriven<User>{ private User user = new User(); //登录用的
public String login(){
System.out.println("用户名:"+user.getUserName());
if ("ad".equals(user.getUserName())&&"123".equals(user.getUserPassword())){
//登陆成功后,干什么?
return this.SUCCESS;
}else {
return this.ERROR;
}
}
//跳转到登陆页面的方法
public String loginView(){ return "loginViewSuccess";
} //不需要手动调用
public User getModel() {
//告诉struts,你帮我对user进行赋值
System.out.println("struts 调用我们的getModel,获得user的实例");
return this.user;
}
}

方法1:

package com.nf.action;

import com.nf.entity.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import org.apache.struts2.interceptor.SessionAware; import java.util.Map; public class UserAction extends ActionSupport implements ModelDriven<User>{ private User user = new User(); //登录用的
public String login(){
System.out.println("用户名:"+user.getUserName());
if ("ad".equals(user.getUserName())&&"123".equals(user.getUserPassword())){
//登陆成功后,干什么? //第一种方法:通过context获得Map对象
//主动获得实例
ActionContext context = ActionContext.getContext();
Map<String , Object> session = context.getSession();
session.put("user",user); return this.SUCCESS;
}else {
return this.ERROR;
} }
//跳转到登陆页面的方法
public String loginView(){ return "loginViewSuccess";
} //不需要手动调用
public User getModel() {
//告诉struts,你帮我对user进行赋值
System.out.println("struts 调用我们的getModel,获得user的实例");
return this.user;
}
}

方法2:

package com.nf.action;

import com.nf.entity.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.sun.net.httpserver.HttpServer;
import org.apache.struts2.StrutsStatics;
import org.apache.struts2.interceptor.SessionAware; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Map; public class UserAction extends ActionSupport implements ModelDriven<User>{ private User user = new User(); //登录用的
public String login(){
System.out.println("用户名:"+user.getUserName());
if ("ad".equals(user.getUserName())&&"123".equals(user.getUserPassword())){
//登陆成功后,干什么? /* //第一种方法:通过context获得Map对象
//主动获得实例
ActionContext context = ActionContext.getContext();
Map<String , Object> session = context.getSession();
session.put("user",user);*/ //第2种方法
//对javaweb 产生强耦合
ActionContext context = ActionContext.getContext();
HttpServletRequest request = (HttpServletRequest)context.get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);//这里的错误要导入
HttpSession session = request.getSession();
session.setAttribute("user",user); return this.SUCCESS;
}else {
return this.ERROR;
} }
//跳转到登陆页面的方法
public String loginView(){ return "loginViewSuccess";
} //不需要手动调用
public User getModel() {
//告诉struts,你帮我对user进行赋值
System.out.println("struts 调用我们的getModel,获得user的实例");
return this.user;
}
}

添加之后要选上

方法3:

package com.nf.action;

import com.nf.entity.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.sun.net.httpserver.HttpServer;
import org.apache.struts2.StrutsStatics;
import org.apache.struts2.interceptor.SessionAware; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Map; public class UserAction extends ActionSupport implements ModelDriven<User>,SessionAware{
//定义为null,不要管它怎么来
private Map<String , Object> session = null; private User user = new User(); //登录用的
public String login(){
System.out.println("用户名:"+user.getUserName());
if ("ad".equals(user.getUserName())&&"123".equals(user.getUserPassword())){
//登陆成功后,干什么? /* //第一种方法:通过context获得Map对象
//主动获得实例
ActionContext context = ActionContext.getContext();
Map<String , Object> session = context.getSession();
session.put("user",user);*/ /*//第2种方法
//对javaweb 产生强耦合
ActionContext context = ActionContext.getContext();
HttpServletRequest request = (HttpServletRequest)context.get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);
HttpSession session = request.getSession();
session.setAttribute("user",user);*/ //第3种方法,实现SessionAware直接注入实例
System.out.println("session:" +session);
session.put("user",user); return this.SUCCESS;
}else {
return this.ERROR;
} }
//跳转到登陆页面的方法
public String loginView(){ return "loginViewSuccess";
} //不需要手动调用
public User getModel() {
//告诉struts,你帮我对user进行赋值
System.out.println("struts 调用我们的getModel,获得user的实例");
return this.user;
} //用于被框架注入实例用的,不需要手动调用//这里为方法SessionAware可以用快捷键ALT+ENTER
  public void setSession(Map <String, Object> map) { session = map; } }

Struts2的学习-通配符和session对象的更多相关文章

  1. [原创]java WEB学习笔记94:Hibernate学习之路---session 的管理,Session 对象的生命周期与本地线程绑定

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  3. struts2获得request和session对象

    在struts1中,获得到系统的request或者session对象非常方便,都是按照形参传递的,但是在struts2中,request和session都被隐藏了 struts2提供两种方式访问ses ...

  4. 重温Servlet学习笔记--session对象

    session的类型是属于HttpSession,HttpSession是由javaWeb提供的,用来会话跟踪的类.session是服务器端对象,保存在服务器端. HttpSession是servle ...

  5. hibernate学习笔记(3)hibernate常用配置以及session对象

    更改hibernate.cfg.xml的内容,常用配置有: <!--  把hibernate运行时的SQL语句显示到控制台  --> <property name="sho ...

  6. 尚硅谷STRUTS2视频学习笔记

    上一个月一直在学习STRUTS2,学习的是尚硅谷佟刚老师的视频,因为很喜欢佟刚老师的声音,而且他讲的很细,笔记做的也多,基本上是照着他的视频完整的敲了一遍代码,下面就把学习到的知识梳理一遍,最后把项目 ...

  7. Java之struts2框架学习

    Java之struts2框架学习 About Struts2 Struts也是一款MVC框架 , Struts2是Struts的下一代产品,是在Struts1和WebWork的技术基础上进行了合并的全 ...

  8. Struts2框架学习(三) 数据处理

    Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...

  9. java struts2入门学习--OGNL语言基本用法

    一.知识点学习 1.struts2中包含以下6种对象,requestMap,sessionMap,applicationMap,paramtersMap,attr,valueStack; 1)requ ...

随机推荐

  1. HDU - 5067 / HDU - 5418 TSP

    集合表示多用[0,n)表示方法 HDU - 5067 经典TSP,每个顶点恰经过一次最优 #include<bits/stdc++.h> #define rep(i,j,k) for(in ...

  2. VBS常用脚本及其解说一览

    取得本机IP strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strCo ...

  3. PIE SDK均值滤波

    1.算法功能简介 均值滤波是最常用的线性低通滤波,它均等地对待邻域中的每个像素.对于每个像素,取邻域像素值的平均作为该像素的新值.均值滤波算法简单,计算速度快,对高斯噪声比较有效.从频率域的角度看,相 ...

  4. Google Authenticator(谷歌身份验证器)

    <!DOCTYPE html>Google Authenticator(谷歌身份验证器) ] Google Authenticator(谷歌身份验证器) Google Authentica ...

  5. 设计模式学习总结(八)策略模式(Strategy)

    策略模式,主要是针对不同的情况采用不同的处理方式.如商场的打折季,不同种类的商品的打折幅度不一,所以针对不同的商品我们就要采用不同的计算方式即策略来进行处理. 一.示例展示: 以下例子主要通过对手机和 ...

  6. MVC Control 接收post请求的json数据

    [HttpPost] public string QueryInvoice() { string stream; using (var sr = new StreamReader(Request.In ...

  7. ABP文档笔记 - 模块系统 及 配置中心

    ABP框架 - 模块系统 ABP框架 - 启动配置 Module System Startup Configuration ABP源码分析三:ABP Module ABP源码分析四:Configura ...

  8. JetBrains PyCharm(Community版本)的下载、安装和初步使用

    不多说,直接上干货! 首先谈及这款软件,博主我用的理由:搞机器学习和深度学习! 想学习Python的同学们,在这里隆重介绍一款 Python 的开发工具 pyCharm IDE.这是我最喜欢的 Pyt ...

  9. ajax实现的点击数目加1代码实例

    ajax实现的点击数目加1代码实例:在点击按钮实现数字增加效果代码实例一章节中,介绍如何点击按钮实现数字加1的效果,但是好像并没有什么实际用处,下面就分享一段相对完整的能够在实际应用中派上用场的代码, ...

  10. sql 行列转换

    create table #test1(id int,name varchar(20), Q1 int, Q2 int, Q3 int, Q4 int) insert into #test1 valu ...