用struts2作为服务器框架,与android客户端进行交互需要得到request、response对象。

struts2中获取request、response有两种方法。

第一种:利用ServletActionContext的静态方法

Struts2 利用ServletActionContext类来维护Servlet对象,ServletActionContext利用ThreadLocal来维护 不同线程的Servlet对象,因此可以使用ServletActionContext类获取,这种方法可以叫做非注射方式(非IoC方式)。

    public class LoginAction extends ActionSupport {

            private static final long serialVersionUID = 1L;

            private String account;//账号
private String pwd;//密码 public String login() throws Exception{ //获取request
HttpServletRequest request=ServletActionContext.getRequest();
//获取response
HttpServletResponse response=ServletActionContext.getResponse();
//获取Session
HttpSession session=request.getSession(true);
//放到session中
session.setAttribute("account", account);
//获得上下文
ServletContext context=ServletActionContext.getServletContext();
//获取upload文件夹
File uploadFile=new File(context.getRealPath("upload")); //给客户端返回结果
PrintWriter writer=response.getWriter();
writer.print("account"); return execute();
}

第二种:利用相关的Aware接口

Struts2 提供Aware接口,实现了相关Aware接口的Action能够感知相应的资源。Struts在实例化一个Action事例中,如果发现它实现了相应的 Aware接口,会把相应的资源通过Aware接口方法注射进去,这种方法可以叫做注射方式(IoC方式)。

    public class ServletAwareAction extends ActionSupport implements
ServletRequestAware, ServletResponseAware, SessionAware, ServletContextAware { private static final long serialVersionUID = 1L; private ServletContext application;//Servlet上下文
private HttpServletRequest request;//request对象
private HttpServletResponse response;//response对象
private Map<String, Object> session;//session对象 public void setServletRequest(HttpServletRequest request) {
this.request=request;
} public void setServletResponse(HttpServletResponse response) {
this.response=response;
} public void setSession(Map<String, Object> session) {
this.session=session;
} public void setServletContext(ServletContext application) {
this.application=application;
} public String execute(){
String upload=application.getRealPath("upload"); request.getRemoteAddr();
response.getContentType();
session.get("account"); return Action.SUCCESS;
}

Aware接口其实是一种拦截器,拦截器代码会在执行Action之前执行,将相关的Servlet对象设置进去

struts2中获取request、response,与android客户端进行交互(文件传递给客户端)的更多相关文章

  1. 分享知识-快乐自己:Struts2中 获取 Request和Session

    目录结构: POM: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEnco ...

  2. 在SpringMVC中获取request对象

    1.注解法 @Autowired private  HttpServletRequest request; 2. 在web.xml中配置一个监听 <listener> <listen ...

  3. 在SpringMVC中获取request对象的几种方式

    1.最简单的方式(注解法) @Autowired private HttpServletRequest request; 2.最麻烦的方法 a. 在web.xml中配置一个监听 <listene ...

  4. 如何在SpringMVC中获取request对象

    1.注解法 @Autowired private HttpServletRequest request; <listener> <listener-class> org.spr ...

  5. SpringMvc4中获取request、response对象的方法

    springMVC4中获取request和response对象有以下两种简单易用的方法: 1.在control层获取 在control层中获取HttpServletRequest和HttpServle ...

  6. spring MVC中获取request和response:

    spring MVC中获取request和response: HttpServletRequest request = ((ServletRequestAttributes) RequestConte ...

  7. springMVC中获取request和response对象的几种方式(RequestContextHolder)

    springMVC中获取request和response对象的几种方式 1.最简单方式:参数 2.加入监听器,然后在代码里面获取 原文链接:https://blog.csdn.net/weixin_4 ...

  8. java中获取request与response对象的方法

    Java 获取Request,Response对象方法   第一种.参数 @RequestMapping("/test") @ResponseBody public void sa ...

  9. Struts2中获取HttpServletRequest,HttpSession等的几种方式

    转自:http://www.kaifajie.cn/struts/8944.html package com.log; import java.io.IOException; import java. ...

随机推荐

  1. Google Map API v2 (四)----- 导航路径

    仍然是建议个异步小任务 private GetPathTask mGetPathTask = null; private void getGuidePath(LatLng origin){ if(mG ...

  2. Android studio错误及解决办法

    错误: Cannot launch AVD in emulator. Output: emulator: ERROR: GPU emulation is disabled. Only screen s ...

  3. [功能帮助类] C# BaseRandom随机数,随机字符,可限制范围-帮助类 (转载)

    点击下载 BaseRandom.rar 主要功能如下 .产生随机字符 .产生随机数 .在一定范围内产生随机数 看下面代码吧 /// <summary> /// 编 码 人:苏飞 /// 联 ...

  4. C#DbHelperMySQL数据库帮助类 (转载)

    主要功能如下数据访问抽象基础类 主要是访问Mysql数据库主要实现如下功能 .得到最大值 .是否存在 .是否存在(基于MySqlParameter) .执行SQL语句,返回影响的记录数 .执行MySq ...

  5. 最新的C#SqlHelper 类苏飞修改版(转载)

    /// <summary> /// 类说明:公共的数据库访问访问类 /// 编码日期:2010-4-22 /// 编 码 人:苏飞 /// 联系方式:361983679 Email:[ur ...

  6. JAVA zip解压 MALFORMED 错误

    最近在在使用zip 解压时,使用JDK1.7及以上版本在解压时,某些文件会报异常 Exception in thread "main" java.lang.IllegalArgum ...

  7. [Twisted] 部署Twisted

    Twisted提供了基础设施,来实现可重用.可配置的方式来部署. 1.Service Twisted使用Service来实现了许多协议,如TCP,FTP,HTTP,SSH等. 实现的IService接 ...

  8. PHP 学习笔记 (四)

    Wordpress 框架中的一些函数: wp_get_nav_menu($default): 根据条件$default 获取menu, 默认获取所有的menu 其中 $default 默认如下所示: ...

  9. 理解MySQL——索引与优化(转)

    写 在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页 面大小为4K,并存储100条记录.如果没有索引,查 ...

  10. [Lua]cocos framework

    package_support function cc.register(name, package) function cc.load(...) function cc.bind(target, . ...