Struts2 中获取资源的几种方法
来源:互联网 发布:如何利用网络寻找客户 编辑:程序博客网 时间:2024/05/27 02:30
一,使用org.apache.struts2.ServletActionContext对象
该对象包含了一下几个静态方法,用于获取http中的资源信息
二,实现Aware系列接口
实现Aware接口利用了依赖注入的方式能够让应用程序有更好的重用性。
Struts2提供了4种分别用来访问ServletContext、HttpServletRequest、HttpServletResponse、HttpSession对象的接口:
1,ServletContextAware接口:
该接口有一个必须实现的方法:setServletContext。在调用实现这个接口的动作的时候,Struts将会在填充动作属性之前调用该动作的setServletContext方法,并且传递ServletContext对象。然后再执行动作方法(如默认的execute)。你所需要做的就是在动作中定义一个ServletContext类型的成员变量,再把这个setter继续写完,如:
2,ServletRequestAware接口:该接口有一个setServletRequest方法,用法同 1。
3,ServletResponseAware接口:该接口中有一个setServletResponse方法,用法同 1。
4,SessionAware接口:
SessionAware接口与其他三个接口有所区别。不同于其他三个接口中的方法传递实体对象,SessionAware接口的setSession方法所传递的是一个java.util.Map。在调用一个动作的时候,Struts将会检查动作类是否实现了SessionAware接口。如果是,则会调用它的setSession方法。在该方法中传递一个org.apache.struts2.dispatcher.SessionMap实例。这个类扩展自实现了java.util.Map的java.util.AbstractMap。Session是当前HttpSession对象的一个打包容器,它提供了一个指向HttpSession对象的引用指针。在SessionMap的内部,指向HttpSession对象的引用指针是受保护的,所以我们不能从动作类中直接访问到它。不过SessionMap已经提供了一系列必要的方法作为与HttpSession共同的桥梁,供我们访问:
该对象包含了一下几个静态方法,用于获取http中的资源信息
public static javax.servlet.http.HttpServletRequest getRequest();public static javax.servlet.http.HttpServletResponse getResponse();public static javax.servlet.ServletContext getServletContext();使用方法例如:
public String execute(){HttpServletRequest request = ServletActionContext.getRequest();HttpSession session = request.getSession();if(session.getAttribute("user")==null){return LOGIN;}else{return SUCCESS;}}
二,实现Aware系列接口
实现Aware接口利用了依赖注入的方式能够让应用程序有更好的重用性。
Struts2提供了4种分别用来访问ServletContext、HttpServletRequest、HttpServletResponse、HttpSession对象的接口:
org.apache.struts2.util.ServletContextAware;org.apache.struts2.interceptor.ServletRequestAware;org.apache.struts2.interceptor.ServletResponseAware;org.apache.struts2.interceptor.SessionAware;使用者可以根据自己的需要去实现以上四种接口,使用方法如下:
1,ServletContextAware接口:
该接口有一个必须实现的方法:setServletContext。在调用实现这个接口的动作的时候,Struts将会在填充动作属性之前调用该动作的setServletContext方法,并且传递ServletContext对象。然后再执行动作方法(如默认的execute)。你所需要做的就是在动作中定义一个ServletContext类型的成员变量,再把这个setter继续写完,如:
private ServletContext servletcontext;public void setServletContext(ServletContext servletcontext){this.servletcontext = servletcontext;}之后你就可以在动作类中任何地方去使用ServletContext了。
2,ServletRequestAware接口:该接口有一个setServletRequest方法,用法同 1。
3,ServletResponseAware接口:该接口中有一个setServletResponse方法,用法同 1。
4,SessionAware接口:
SessionAware接口与其他三个接口有所区别。不同于其他三个接口中的方法传递实体对象,SessionAware接口的setSession方法所传递的是一个java.util.Map。在调用一个动作的时候,Struts将会检查动作类是否实现了SessionAware接口。如果是,则会调用它的setSession方法。在该方法中传递一个org.apache.struts2.dispatcher.SessionMap实例。这个类扩展自实现了java.util.Map的java.util.AbstractMap。Session是当前HttpSession对象的一个打包容器,它提供了一个指向HttpSession对象的引用指针。在SessionMap的内部,指向HttpSession对象的引用指针是受保护的,所以我们不能从动作类中直接访问到它。不过SessionMap已经提供了一系列必要的方法作为与HttpSession共同的桥梁,供我们访问:
public void invalidate() //验证当前的HttpSession对象。若HttpSession对象还没有被创建,就不会抛出异常。public void clear() //清除HttpSession对象里面的所有属性。public Set entrySet() //从HttpSession对象里返回一个属性集合(Set类型)。如果HttpSession对象不存在,则返回空集。public Object get(Object key) //返回与指定关键字关联的会话属性。若HttpSession不存在或找不到该键,则返回空值。public Object put(Object key,Object value) //把一个会话属性保存到HttpSession对象里并且返回该属性的值。若HttpSession不存在,则创建一个HttpSession对象。public Object remove(Object key) //删除指定的会话属性并且返回该属性的值。如果HttpSession对象不存在,则返回空值。
- Struts2 中获取资源的几种方法
- Android中获取资源文件的几种方法
- Struts2中获取Request,Response的几种方法
- 获取资源的几种方法
- Android中通过资源文件获取drawable的几种方法
- struts2 Action中获取request, response对象的 几种 方法
- Android获取资源文件的几种方法
- java获取指定资源文件路径的几种方法
- Struts2 获取request 和 session 的几种方法
- struts2 中获取 web资源的方式
- Android 中获取图片资源的几种方式
- struts2中 Action获取表单参数的几种方式
- struts2中 Action获取表单参数的几种方式
- struts2中 Action获取表单参数的几种方式
- struts2中 Action获取表单参数的几种方式
- Struts2的Action中方法的几种访问方式
- WinCE显示资源中BMP图片的几种方法
- WinCE显示资源中BMP图片的几种方法
- 关于企业协同2.0
- CObject浅析(转)
- 用ASP.NET开发Web服务的五则技巧
- linux安装ZENDSTUDIO5.5
- 在window下使用ffmpeg进行解码
- Struts2 中获取资源的几种方法
- c#不可忍受之慢—谁是罪魁祸首
- Ubuntu命令
- 2011.07.28
- php试用smarty和ADODB实现对数据分页读取
- 如何在SAP中找表.
- 一种高效的外部索引算法
- mysql 某列指定值靠前排序
- CEGUI事件驱动机制2