不错的帖子哦

Android项目之——页面特效集合(附源码)
http://www.eoeandroid.com/thread-188164-1-1.html

五种Android Toast方式
http://www.eoeandroid.com/thread-187288-1-1.html

Android Mapview地图显示实例
http://www.eoeandroid.com/thread-186739-1-1.html

-------------------帖子正文--------------------

用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对象设置进去

更多相关文章

  1. android发送post请求出现问题
  2. Android中文API(142) —— Gravity
  3. Android(安卓)Bundle类
  4. Android: Android图形基础
  5. Android(安卓)10 定位问题,获取NMEA(支持5.0~10.0)
  6. android和j2me之清屏(clearScreen)
  7. Android(安卓)版本兼容 — Android(安卓)6.0 和 7.0后获取Mac地
  8. 类和 Json对象
  9. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像

随机推荐

  1. 留言板学习
  2. 访问器属性与获取dom元素方法学习
  3. PHP如何通过date() 函数格式化显示时间
  4. PHP实现倒计时功能
  5. js 数据类型,函数类型
  6. java中的export方法实现导出excel文件
  7. 移动端布局的基本思路与三种视口之间的关
  8. 留言板功能css美化
  9. Netty分布式客户端接入流程初始化源码分
  10. 留言板实战