什么是web资源:web资源就是指request,response,session,servlet的api

为什么需要访问web资源:因为图片上传,需要获取图片的目录,就需要通过action来访问web资源,向作用域读写数据。。。。。。等等

怎么访问web资源:

  和servlet解耦的方式访问:有限的访问servlet的 api对象,有限的方法

    使用ActionContext去访问

    实现XXXAware这个接口

  和servlet耦合的方式访问:可以访问更多(全部)的servlet的API

    使用ServletActionContext去访问

    实现ServletXXXAware这个接口

    

  1.解耦合和方式使用ActionContext获取web资源 

/**
* 获取Application作用域
* @return
*/
public String execute(){
//获取Action的上下文,就是action的一些运行信息,环境等等
ActionContext actionContext=ActionContext.getContext();
//得到封装过的application
Map<String, Object> application=actionContext.getApplication();
//把数据放到application的作用域
application.put("name", "小白");
return "success";
}
/**
* 获取session作用域
* @return
*/
public String execute2(){
//获取Action的上下文,就是action的一些运行信息,环境等等
ActionContext actionContext=ActionContext.getContext();
//得到封装过的session
Map<String, Object> session=actionContext.getSession();
//把数据放到session的作用域
session.put("name2", "小白2");
return "success";
}
/**
* 获取Request作用域
* @return
*/
public String execute3(){
//获取Action的上下文,就是action的一些运行信息,环境等等
ActionContext actionContext=ActionContext.getContext();
//得到封装过的request
Map<String, Object> request=(Map<String, Object>) actionContext.get("request");
//把数据放到request的作用域
request.put("name3", "小白3");
return "success";
} /**
* 获取请求参数(不推荐使用,Struts会封装)
* @return
*/
public String params(){
//获取Action的上下文,就是action的一些运行信息,环境等等
ActionContext actionContext=ActionContext.getContext();
//获取请求参数,得到参数的对象
Map<String, Object> params= actionContext.getParameters();
String name=((String[])params.get("name"))[0];
String sex=((String[])params.get("sex"))[0];
System.out.println(name+":"+sex);
return "success";
}

  2.解耦合和方式使用XXXAware获取web资源

/**
* 只要实现对应的ApplicationAware接口,或者SessionAware等就可以
* @author Administrator
*
*/
public class ApplicationDemo implements ApplicationAware{
Map<String, Object> application; public String execute(){
application.put("xx","xx");
return "success";
}
public void setApplication(Map<String, Object> application) {
this.application=application;
}
}

  3.耦合和方式使用ActionContext获取web资源(其他的使用方式类似)

    public String execute(){
//通过ServletActionContext可以获取需要的Servlet api相关的对象
HttpServletRequest request=ServletActionContext.getRequest();
String name =request.getParameter("name");
request.setAttribute("name", "小白");
HttpSession session= ServletActionContext.getRequest().getSession();
session.setAttribute("name2", "小白2");
return "success";
}

2.struts2访问web资源(在struts2中获取session,request等等)的更多相关文章

  1. struts2访问web资源

    通过ActionContext访问 public class TestActionContextAction { public String execute(){ //获取 ActionContext ...

  2. spring的普通类中获取session和request对像

    在使用spring时,经常需要在普通类中获取session,request等对像. 1.第一钟方式,针对Spring和Struts2集成的项目: 在有使用struts2时,因为struts2有一个接口 ...

  3. spring在普通类中获取session和request

    在使用spring时,经常需要在普通类中获取session,request等对像.比如一些AOP拦截器类,在有使用struts2时,因为struts2有一个接口使用org.apache.struts2 ...

  4. Struts2(四):在Action中如何访问Web资源

    1.什么WEB资源? HttpServletRequest,HttpServletRespone,HttpApplication,ServletContext,HttpSession等原生Servle ...

  5. [原创]java WEB学习笔记55:Struts2学习之路---详解struts2 中 Action,如何访问web 资源,解耦方式(使用 ActionContext,实现 XxxAware 接口),耦合方式(通过ServletActionContext,通过实现 ServletRequestAware, ServletContextAware 等接口的方式)

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

  6. Struts2在Action中访问WEB资源

    什么是WEB资源? 这里所说的WEB资源是指:HttpServletRequest, HttpSession, ServletContext 等原生的 Servlet API. 为什么需要访问WEB资 ...

  7. Struts2 之 Action 类访问 WEB 资源

    接着上次博客的内容我继续分享我所学到的知识,和自己在学习过程中所遇到问题以及解决方案.当然,如果读者发现任何问题均可以在下方评论告知我,先谢! 在 Action 中访问 WEB 资源 web 资源 所 ...

  8. Struts2学习第三课 访问Web资源

    1.什么是WEB资源? HttpServletRequest,HttpSession,ServletContext等原生的Servlet API. 2.为什么访问WEB资源? B/S的应用的Contr ...

  9. 在Action 中访问web资源

    1.什么是web资源: HttpServletRequest,HttpSession,ServletContext等原生的Servlet API. 2.为什么要访问web资源? B/S应用的Contr ...

随机推荐

  1. Spark性能测试报告与调优参数

    1.代码中尽量避免group by函数,如果需要数据聚合,group形式的为rdd.map(x=>(x.chatAt(0),x)).groupbyKey().mapValues((x=>x ...

  2. codeforces 83 D. Numbers

    题意: 给出l,r,k,(1 ≤ l ≤ r ≤ 2·109, 2 ≤ k ≤ 2·109) 求在区间[l,r]内有多少个数i满足 k | i,且[2,k-1]的所有数都不可以被i整除 首先,如果k不 ...

  3. Android Studio使用总结

    记录Android-Studio遇到的各种坑 http://blog.csdn.net/u012874222/article/details/50616698 Android Studio 权威教程  ...

  4. SQL时间相关

    SQL --本周第一天 SELECT DATEADD(Day,-(DATEPART(Weekday,getdate())+@@DATEFIRST-)%,getdate()) --or ,getdate ...

  5. mysql分组函数

    组函数针对的是指定字段的非空值.注意:where子句中不能出现组函数!!! avg()    平均值(只能针对数值型 ) max()    最大值(不限制类型) min()    最小值(不限制类型) ...

  6. JAVA Socket 编程学习笔记(一)

    1. Socket 通信简介及模型 Java Socket 可实现客户端--服务器间的双向实时通信.java.net包中定义的两个类socket和ServerSocket,分别用来实现双向连接的cli ...

  7. css内容样式属性

    设置元素的最大高度.最小高度.最大宽度.最小宽度,用max-height.min-height.max-width.min-width. visibility:设置元素是否可见.visible和hid ...

  8. xampp windows版本安装后无法使用大文件下载的解决办法

    找到httpd.conf 在<Directory "C:/xampp/htdocs"> </Directory>添加EnableSendfile On

  9. 移动端rem页面详谈

    rem布局是移动端常见的布局之一,也是较为成熟的方案.接下来就详细说以下rem布局的实际操作. 1.首先加<meta />标签,设置视口的大小,不多说. <meta name=&qu ...

  10. Generate transparent shape on image

    Here is an example code to generate transparent shape on image. Need to pay attention can not use cv ...