stucts2访问web元素(jsp和servlet的九大隐式对象)
来源:互联网 发布:java redis 并发控制 编辑:程序博客网 时间:2024/06/05 00:21
struts2访问servlet,jsp九个内置对象一般常用的是requset,application,session这三个个。
访问的方式分为IOC(控制反转),中文给它形象的称呼是耦合(非IOC也是如此称呼)和非IOC(或称Dependency Injection,依赖注入)解耦合的两种方式。
方式有如下两种:
这里只针对 Servlet 中常用的,如 HttpServletRequest、HttpServletResponse 和 HttpSession 来展开。
一般来说,在 Struts2 中访问 Servlet API 的方式有2种:
(1) 直接访问 Servlet API。这将会使得你的 Action 类与 Servlet API 耦合在一起。
(2) 通过 Struts2 API 来访问 Servlet API,这样 Action 类就不会再跟 Servlet API 耦合。
耦合的方式:
方式1:(推荐)
通过 ServletActionContext 来访问 Servlet API ( 耦合 )
得到request对象:HttpServletRequest request = SevletActionConext().getRequest(); //关键点得到session对象:HttpSession session = request.getSession;//从request请求中得到session
对于想得到application对象:(这两个方式都可以)
ServletContext application = request.getServletContext();
ServletContext application = session.getServletContext();
方式2:
通过 ServletRequestAware、ServletResponseAware 接口来访问 Servlet API ( 耦合 )
直接在类或者页面里面实现这些接口即可;
在JSP里面,这些都是内置对象。可以不放置这些。
而在类里面设置,不过最好是用private修饰这几个对象,之后设置set 和 get方式这样就更安全一些。
HttpSession session = null ;
HttpServletRequest request = null ;
ServletContext application = null ;
HttpServletResonse response = null;
这样在JSP和类里面都得到了这几个对象了。
解耦合方式:(它们都是得到的是封装类型):
通过 ActionContext 来访问 Servlet API ( 解耦 )
方式3:先为了看清楚细节,我们这样设置:
ActionContext ac = ActionContext.getContext(); //得到当前action的上下文
对于request对象,则是如下的方式:
Map request = (Map) ac.get("request"); //这里得加上request
或这种方式HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
ActionContext.getContext().get("放入要取的类型"),它得到的是一个Object对像。下面的getSession 和getApplication都 是这样的;
或者是这样的方式:Map<String,Object> request = (Map<String, Object>) ac.get("request");
对于session对象,则直接用
Map session = ac.getSession();
或者:
Map<String,Object> session = (Map<String, Object>) ac.getSession();
对于application对象:
Map application = ac.getApplication();
或者是:Map<String,Object> aplication =(Map<String, Object>) ac.getApplication();
一般这些封装的类型,都是定义为封装属性,之后设置set和get方法即可;
方式4:
RequestAware、SessionAware 等接口来访问 Servlet API ( 解耦 )
先设置对像:
Map<String,Object> request ;
Map<String,Object> session
Map<String,Object> application;
接下来就直接set(在api里面默认就要求必须实现)和get方法(可以不用设置)。
接下来就可以设置和取值了。
经过上面的所有说明,解耦合方面struts2是没有为page提供任接接口的,要用的时候直接使用方式1或者方式1即可。
几个参考的网站:
http://www.blogjava.net/fancydeepin/archive/2014/03/17/struts-servlet.html
http://www.cnblogs.com/codeplus/archive/2011/08/09/2132248.html
http://www.cnblogs.com/li-peng/p/3787603.html
http://www.itzhai.com/visit-the-web-element-using-struts2-ioc-assignment-requestaware-sessionaware-applicationaware.html
http://waynerqiu.com/1/103.html
http://blog.csdn.net/farawayhome/article/details/6408958
- stucts2访问web元素(jsp和servlet的九大隐式对象)
- 配置Servlet和jsp的访问路径映射 域对象 java web 四种include方法
- 在Servlet和JSP中访问web.xml设置的初始参数
- [JSP]JSP基本元素以及和Servlet的对应关系
- web的数据传递(jsp,servlet和数据库)
- web 前段与后端的交互(JSP 和 Servlet)
- Servlet访问WEB-INF目录下面的jsp文件
- jsp的页面元素和内置对象
- JSP和SERVLET+WEB.XML
- Servlet和jsp对外访问路径的配置的…
- 最简单的基于Tomcat的Web应用程序-没有Servlet,只访问静态资源(jsp,html,gif等)
- 开发 WebLogic Server 的 Web 应用程序、Servlet 和 JSP
- 如何查看web工程的JSP和Servlet版本
- 总结servlet和jsp的对象及问题
- 【Servlet】Servlet应用的get、post访问及和JSP的配合使用
- 【Jsp+Servlet】JSP的内置对象
- JSP/Servlet中获得当前web应用程序的相对路径和绝对路径(一)
- JSP/Servlet中获得当前web应用程序的相对路径和绝对路径(二)
- XScrollBar - Scroll bar like Windows Media Player's
- Spring 学习之 IOC
- C语言--Building a New Depot
- 顺序表
- CentOS和Ubuntu设置静态IP
- stucts2访问web元素(jsp和servlet的九大隐式对象)
- hdu1542(扫描线求面积并)
- dpkg: error processing package git-daemon-sysvinit (--remove):
- lightoj-1006
- glPushMatrix()和glPopmatirx()
- 第一篇
- LeetCode Pow(x, n)
- Oracle 客户端(oci方式)
- CUGBACM Codeforces Tranning 2 题解