Servlet之间通信的方式有两大类,每个类有三种不同的方法

1.request

2.session

3.application

不实现ServletContextAware,SessionAware,ServletRequestAware这三个接口的通信

		HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("request_username", "username");
HttpServletResponse response = ServletActionContext.getResponse(); //这个是Servlet的session
// HttpSession session = request.getSession();
// session.setAttribute("session_username", "username");
ServletContext servletContext = ServletActionContext.getServletContext();
servletContext.setAttribute("application_username", "username");

  

实现ServletContextAware,SessionAware,ServletRequestAware这三个接口的通信

public class Servlet2Action extends ActionSupport implements
ServletContextAware,SessionAware,ServletRequestAware { private HttpServletRequest request;
private ServletContext servletContext;
private Map<String,Object> sessionMap; /**
* {}struts2包装以后的session,本质上是一个map
org.apache.catalina.core.ApplicationContextFacade@72898540 servlet中的application
org.apache.struts2.dispatcher.StrutsRequestWrapper@228b677f struts2包装后的request
*/
public void setSession(Map<String, Object> arg0) {
this.sessionMap=arg0;
sessionMap.
}
public void setServletContext(ServletContext arg0) {
this.servletContext=arg0;
} public void setServletRequest(HttpServletRequest arg0) {
this.request=arg0;
}
public String testServelet()
{
System.out.println(sessionMap.toString());
System.out.println(servletContext.toString());
System.out.println(request.toString());
return "servelet";
} }

  

在目标页面取出

   	request:${requestScope.request_username }<br>
session:${sessionScope.session_username }<br>
application:${applicationScope.application_username }<br>

  

struts2 servlet之间通信的更多相关文章

  1. struts1.x和struts2.x之间的一些区别

    转载自http://blog.csdn.net/john2522/article/details/7436307/ struts2不是struts1的升级,而是继承的webwork的血统,它吸收了st ...

  2. 【转】(超详细)jsp与servlet之间页面跳转及参数传递实例

    初步学习JavaEE,对其中jsp与Servlet之间的传值没弄清楚,查看网上资料,发现一篇超详细的文章,收获大大,特此记录下来.具体链接:http://blog.csdn.net/ssy_shand ...

  3. 【转】wpa_supplicant与wpa_cli之间通信过程

    [转]wpa_supplicant与wpa_cli之间通信过程 转自:http://blog.chinaunix.net/uid-26585427-id-4051479.html wpa_suppli ...

  4. jsp与servlet之间的参数传递【转】

    JSP与 servlet之间的传值有两种情况:JSP -> servlet, servlet -> JSP. 通过对象 request和 session (不考虑 application) ...

  5. Jsp与servlet之间页面跳转及参数传递实例(转)

    原网址:http://blog.csdn.net/ssy_shandong/article/details/9328985 11. jsp与servlet之间页面跳转及参数传递实例 分类: Java ...

  6. JSP与Servlet之间传值

    Jsp与Servlet之间的传值有两种,一种是Jsp传值给Sevlet,另一种是Servlet传值给Jsp:使用request.response对象完成传值,具体实现如下: 1.JSP传值给Servl ...

  7. 【linux】mkfifo 命令创建命名管道实现进程之间通信

    mkfifo 命令 mkfifo命令创建一个FIFO特殊文件,是一个命名管道(可以用来做进程之间通信的桥梁) 管道也是一种文件,一般是linux中的一个页大小,4k,管道数据一旦被读取就没了.(管道大 ...

  8. WEB服务器,TOMCAT和servlet之间的关系

    WEB服务器,TOMCAT和servlet之间的关系 什么是WEB服务器Web服务器是指能够为发出请求的浏览器提供文档的程序.服务器是 一种被动程序,只有浏览器发出请求的时候才会响应.应用层使用 的是 ...

  9. 客户端与服务器之间通信收不到信息——readLine()

    写服务器端和客户端之间通信,结果一直读取不到信息,在https://blog.csdn.net/yiluxiangqian7715/article/details/50173573 上找到了原因:使用 ...

随机推荐

  1. 两段 PHP 代码比较优劣

    // 代码一 public function getPCA($level = false) { $results = array(); $where = $level ? " where f ...

  2. SSO单点登录三种情况的实现方式详解(转载)

    单点登录(SSO——Single Sign On)对于我们来说已经不陌生了.对于大型系统来说使用单点登录可以减少用户很多的麻烦.就拿百度来说吧,百度下面有很多的子系统——百度经验.百度知道.百度文库等 ...

  3. ServiceStack.Text json中序列化日期格式问题的解决

    标记: ServiceStack.Text,json,序列化,日期 在使用ServiceStack.Text的序列化为json格式的时候,当属性为datetime的时候,返回的是一个new date( ...

  4. day 20 02 模块的导入

    day 20 02  模块的导入 1.模块:就是一个文件:放置一些通用的有独立功能程序或者函数.比如建立一个py文件,文件名为:demo,文件里面的内容:demo模块: print('嗨大米')def ...

  5. VS2017新建控制器出现 No executable found matching command: dotnet-asp net-code generator解决办法

    编辑项目.csproj的文件,里面加上如下节点保存即可:  <ItemGroup>    <DotNetCliToolReference Include="Microsof ...

  6. 常用脚本--归档ERRORLOG

    SQL Server error log  7组日志文件默认情况下不会自动切换到下一个文件, 一般在SQL Server 重新启动后才会切换error log,如果SQL Server长期未重启或因为 ...

  7. [JAVA]java复制文件的4种方式

    尽管Java提供了一个可以处理文件的IO操作类. 但是没有一个复制文件的方法. 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候. 然而有几种方法可以进行Java文件复制操作,下面列举出 ...

  8. iOS 获取 UITabViewController 和 UINavigationController 的图标位置

    这些图标是放在 UITabBar 和 UINavigationBar 里的.所以只要遍历它们的 subViews,找到类型是 UIButton 的就可以了. 所有想获取它们的相对位置很容易. 获取到相 ...

  9. 使用Anaconda的python安装虚拟环境是出现错误:python -m venv venvdir----Error: Command '['D:\\Development\\Django\\test\\Scripts\\python.exe', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit

    在创建python虚拟环境的时候,如果使用的是Anaconda中集成的python -m venv venvdir就会出现不能安装pip的错误,原因是Anaconda没有ensurepip, 解决办法 ...

  10. “全栈2019”Java多线程第六章:中断线程interrupt()方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...