`
hui_jing_880210
  • 浏览: 41546 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java Action 请求封装(一)

    博客分类:
  • java
阅读更多

     该框架是用Spring MVC 3.0实现,首先定义一个Action类,然后把init()方法给封装,然后在把?以后的所有数据全部封装到Map集合,实现方法如下:

/*

 *Action 请求参数封装,不区分get和post请求

 *zhouguohui

 */

public class Action {

    private HttpServletRequest request;    
    private HttpServletResponse response;
    private ActionValues values; //参数封装到Map集合里面
    private MultipartFile[] files;  //多个文件上传的路径地址
   
    /**
     * 初始化Action
     * @param request
     * @param response
     * @param model
     * @param fils
     */
    @ModelAttribute
    public void init(HttpServletRequest request,HttpServletResponse response,@RequestParam(required=false) MultipartFile[] fils,Model model){
        this.request=request;
        this.response=response;
        this.values=new ActionValues(request);
       
        if(null!=fils&&fils.length>0){
            this.files=fils;
        }
       
        model.addAttribute("values", values);
        response.setContentType("text/html;charset=UTF-8");
       
    }
   
    /**
     * 输出字符串
     * @param msg
     */
    protected void print(Object msg){
        PrintWriter out=null;
        try{
            out=response.getWriter();
            out.print(msg);
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            out.close();
        }
    }
   
    /**
     * 以Json格式输出参数
     * @param obj
     */
    protected void printJSON(Object obj){
        PrintWriter out=null;
        try{
            out=response.getWriter();
            out.print(JsonUtils.toJsonStr(obj));
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            out.close();
        }
    }
   
    /**
     * 以keyName为键名,以obj为键值,返回Json对象
     * @param keyName
     * @param obj
     */
    protected void printJSON(String keyName,Object obj){
        PrintWriter out=null;
        try{
            out=response.getWriter();
            out.print(JsonUtils.toJsonStr(keyName, obj));
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            out.close();
        }
    }
   
    public HttpServletRequest getRequest() {
        return request;
    }
   
    public HttpServletResponse getResponse() {
        return response;
    }
   
    /**
     * 得到前台参数对象
     * @param page
     * @return
     */
    public ActionValues getValues() {
        return values;
    }
   
    /**
     * 得到前台参数对象
     * @param page
     * @return
     */
    public ActionValues getValues(boolean page) {
        if(!page){
            values.offPage();
        }
        return values;
    }
   
    /**
     * 得到上传文件
     * @return
     */
    public MultipartFile[] getFiles() {
        return files;
    }
 
分享到:
评论

相关推荐

    (HttpServlet封装类)Action.java

    通过JAVA反射技术对HttpServlet进行简单封装,类似于struts框架,页面请求过来的参数名只需要与Action<T> T这个Bean里的变量对应即可,getForm()就是获得页面传过来的参数[注:当前这个只能传T里的string和int/...

    JAVA WEB框架,java网站一个模块只用写一个文件

    JAVA WEB框架,java网站一个模块只用写一个文件 以前的servlet在现在的开发中已经不怎么常见,因为操作起来比较原始和麻烦。有些人就是不安于现状去改造它。 做得好的有Struts,Hybernate,Spring那么这些框架都是很...

    java命名规范 开发规范

    开发一个Action请求的响应: 前置条件:该Action涉及的Entity及EntityName.hbm.xml已经准备好。 步骤: a. 前端页面触发Action的请求; 统一采用全路径请求,URL格式: 1> basePath/web/moduleName/*_ *.action {1}...

    毕业设计-基于java+HBase实现的手机数据备份系统(短信、联系人、重要文件).zip

    接收客户端请求的Action: 添加短信Action----------->AddInfoAction.java 获取短信Action----------->GetInfoAction.java 同步联系人Action--------->AddContactAction.java 上传文件Action----------->...

    java 面试题 总结

    Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,...

    java面试题

    Struts1只是在第一次请求的时候创建一个action实例,以后每次相同的请求都直接从内存中去读取,它是单例模式,安全性较差。 Struts2是如何实现MVC模式的? 答:在Struts2里面是将每次页面的请求进行处理,然后将请求...

    谈谈你对Struts的理解。

    ActionServlet把请求交给action去处理之前,会将请求参数封装成一个formbean对象(就是一个java类,这个类中的每个属性对应一个请求参数),封装成一个什么样的formbean对象呢?看配置文件。  3.要说明的是, ...

    struts面试宝典.pdf

    在Struts中,用户的请求一般以*.do作为请求服务名,所有的请求均被指向ActionServlet,ActionServlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的ActionForm,并将此ActionForm传至指定的...

    基于HBase实现的手机数据备份系统,实现了手机关键信息的备份,如短信、联系人等(毕业设计)

    接收客户端请求的Action: 添加短信Action----------->AddInfoAction.java 获取短信Action----------->GetInfoAction.java 同步联系人Action--------->AddContactAction.java 上传文件Action----------->...

    java 编写文件上传类简单易用

    用 Java 编写的、协议和平台都独立的服务器端组件,使用请求/响应的模式,提供了一个基于 Java 的服务器解决方案。本文将从文件传输的基本原理入手,分析如何用 java进行文件的上传,并提出解决方案。 一、基本...

    Java EE常用框架.xmind

    用户请求url,/items/queryItems.action 3.被PermissionsAuthorizationFilter拦截,发现需要“item:query”权限 4.PermissionsAuthorizationFilter 调用realm中的doGetAuthorizationInfo获取数据库中正确的...

    超级有影响力霸气的Java面试题大全文档

     Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,...

    基于java的企业级应用开发:复杂数据绑定.ppt

    针对上述这种情况,如果将所有同种类型的请求参数封装到一个数组中,后台就可以进行绑定接收了。 13.3.1 绑定数组 创建一个用户信息列表页面; 在处理器类中编写批量删除用户的方法; 启动项目,访问...

    bbs论坛系统(structs2+hibernate+jsp)

    该系统是基于Struts2+Hibernate开发的一个论坛系统,其中,Hibernate主要负责数据底层封装处理,Struts2在Action中调用DAO相应的方法实现业务处理。系统采用B/S模式,用java语言结合mysql数据库技术进行开发。系统...

    外文翻译 stus MVC

    This article introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology. Struts can help you control change in your Web project and promote ...

    Struts原理、开发及项目实施

    用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,...

    book增删改查系统

     web层(action):包含JSP和Servlet等与web相关的内容,负责与浏览器的响应和请求;  业务层(service):只关心业务逻辑;  数据层(dao):封装了对数据库的访问细节,数据操作类; 关系:web层依赖业务层 ...

    Spring面试题

    Execute()从ActionForm对象中获取数据,完成业务逻辑,返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指定的jsp组件,ActionForward对象指定的jsp生成动态的网页,返回给客户。...

    健身房管理信息系统设计.doc

    对于基于Struts框架的Web应用程序,当客户端浏览器发出请求时,请求会被控制器 截获,并调用在Web应用启动时就加载并初始化核心控制器组件ActionServlet,然后通 过ActionServlet从Struts- config.xml文件中读取...

    书籍:一个Java网络课程期末实训小项目,详细介绍见readme文件

    网上书城项目答辩 主要技术 ...开发环境:Eclipse,MySQL 5.7... form method = " post " action = " RegisterServlet " onsubmit = " return checkRegister() " > 用 户 名: < dd>< input class = " inp

Global site tag (gtag.js) - Google Analytics