九、在动作类中访问ServletAPI
九、在动作类中访问ServletAPI
、方式一:(简单,推荐使用)ServletActionContext
|
public String execute() throws Exception { //获取Servlet的相关对象引用,HttpServletRequest HttpSession HttpServletResponse ServletContext //PageContext等等 HttpServletRequest request = ServletActionContext.getRequest(); PageContext pc = ServletActionContext.getPageContext(); HttpServletResponse response = ServletActionContext.getResponse(); ServletContext sc = ServletActionContext.getServletContext(); HttpSession session = request.getSession(); //打印相关对象引用 System.out.println(request); System.out.println(pc); System.out.println(response); System.out.println(sc); System.out.println(session); return } |
- 方式二:(麻烦)
动作类实现特定的接口。就必须实现特定的方法,调用动作方法前,框架会把响应的对象给注入进来。
public
class UserAction implements ServletRequestAware, ServletResponseAware, ServletContextAware {private HttpServletRequest request;
private HttpServletResponse response;
private ServletContext sc;
public String execute() {
//打印相关对象引用
System.out.println(request);
System.out.println(response);
System.out.println(sc);
return
"none";}
//在调用动作方法执行前,框架会把ServletContext对象给注入进来
@Override
public
void setServletContext(ServletContext sc) {this.sc = sc;
}
//在调用动作方法执行前,框架会把HttpServletResponse对象给注入进来
@Override
public
void setServletResponse(HttpServletResponse response) {this.response = response;
}
//在调用动作方法执行前,框架会把HttpServletRequest对象给注入进来
@Override
public
void setServletRequest(HttpServletRequest request) {this.request = request;
}
}
原理:是一个拦截器给你注入进来的。struts-default.xml
<interceptor name="servletConfig" class="org.apache.struts2.interceptor.ServletConfigInterceptor"/>
一看源码便知。
九、在动作类中访问ServletAPI的更多相关文章
- 如何在WebSocket类中访问Session
我最近正在做一个基于websocket的webQQ,最后代码会开源带github上,所以过程中我就不贴所有的代码啦~就贴问题的关键. 我在WebSocket里发消息的时候需要用到session,因为在 ...
- “全栈2019”Java第七十九章:类中可以嵌套接口吗?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- cc31a_demo--CppPrimer_静态成员与继承-在派生类中访问基类中的static成员的方法
//*基类中的static成员,在整个继承层次中只有一个实例 //*在派生类中访问基类中的static成员的方法 //1.基类名::成员名 //2.子类名::成员名 //3.对象.成员名 //4.指针 ...
- C# 类中访问修饰符的优先级与用法(public, internal, protected, private)
首先:类成员的访问级别是以类的访问级别为上限的! 也就是类的访问级别低时,类成员的访问级别高也无法突破类的访问级别 public级别,作用域是这个解决方案() internal级别,作用域是整个装配集 ...
- 10--动作系统(四)动作类中的reverse方法
上一篇文章在使用持续动作过程中遇到不少问题,以获取动作类的反系动作尤为突出.所以今天把动作类找了个遍,先将大部分动作类是否实现reverse方法总结如下: T表示实现F表示没有实现. 观察可以发现带T ...
- ruby在类中访问@,类外访问调用方法
class Box def initialize(w,h) @width,@height=w,h end def printWidth puts @width end def printHeight ...
- Struts2的Action中访问servletAPI方式
struts2的数据存放中心为ActionContext,其是每次请求来时都会创建一个ActionContext,访问结束销毁,其绑定在ThreadLocal上,由于每次访问web容器都会为每次请求创 ...
- java类中访问属性
package first; public class for_protect { private int age=10; int number = 100; public void show(){ ...
- C++——派生类中的访问——可见性问题
C++中派生类对基类成员的访问形式主要有以下两种: 1.内部访问:由派生类中新增成员对基类继承来的成员的访问. 2.对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问.今天给大家介绍在 ...
随机推荐
- LInux SSH远程文件/目录传输命令scp(转载)
From:http://www.vpser.net/manage/scp.html 相信各位VPSer在使用VPS是经常会在不同VPS间相互备份数据或转移数据.一般情况下VPS都已安装了Ngnix或者 ...
- js上移、下移、置顶、置底功能实现
实现页面上列表内容上移.下移.置顶.置底 功能,主要实现思路是节点操作,比如说:上移,直接把点击项移动到前一个节点,以此类推,当然实际代码实现还要加些判断,如当前点击操作项是否已经是置底或置底了,如果 ...
- Java多线程之join
1.join方法只有在继承了Thread类的线程中才有. 2.线程必须要start() 后再join才能起作用. 将另外一个线程join到当前线程,则需要等到join进来的线程执行完才会继续执行当前线 ...
- 多窗体之间方法调用 z
C# Code: /// <summary> /// 主窗体接口 /// </summary> public interface IMdiParent{ void Pare ...
- HTMLParser使用详解(3)- 通过Filter访问内容
HTMLParser遍历了网页的内容以后,以树(森林)结构保存了结果.HTMLParser访问结果内容的方法有两种.使用Filter和使用Visitor. (一)Filter类顾名思义,Filter就 ...
- gettimeofday() 获取系统时间,精确到微秒 这个似乎只能在linux 下用,不能在windows 下用
struct timeval{ long int tv_sec; // 秒数 同time(NULL) 的返回值 long int tv_usec; // 微秒数 10 的6次方 }; struct t ...
- [Flex] Accordion系列-Header的运用
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- 防止重复发送 Ajax 请求
作者:长天之云链接:http://www.zhihu.com/question/19805411/answer/15465427来源:知乎 不推荐用外部变量锁定或修改按钮状态的方式,因为那样比较难: ...
- eclipse设置svn代理
共2个步骤: 1. 找到C:\Documents and Settings\用户名\Application Data\Subversion的servers文件, 将#http-proxy-host和# ...
- Dubbo 源码安装与编译
源码地址: https://github.com/alibaba/dubbo 需要提前准备好 Maven 环境, 相关准备方法请看: http://www.cnblogs.com/ghj1976/p ...