`
liuwenlong62555
  • 浏览: 20174 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

通用的Servlet控制器,类似Strtus,SpringMVC

阅读更多

import java.io.BufferedReader;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;

import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;

/**
 */
public class testConfigController extends AbstractController {

    private final static Logger log = Logger
            .getLogger(testConfigController .class);

    protected void doRequest(HttpServletRequest req, HttpServletResponse res)
            throws IOException {
        try {
            doRequestForward();
        } catch (ECISException e) {
            log.error(MessageUtils.getCodeAndMessage(EXCEPTIONSYSERROR), e);
            writeError(e);
        }
    }
   
    /**
     *
     * <p>
     * Description: 对请求的方法进行转发相应的url,进行处理
     * </p>
     *
     * @param HttpServletRequest
     *            req
     * @throws SystemException
     */
    private void doRequestForward()
            throws SystemException {
        String action = request.getParameter(ACTION);
       
        if(null!=action){
            action=Character.toUpperCase(action.charAt(0)) + action.substring(1);
        }
        if (log.isDebugEnabled()) {
            log.debug(action);
        }
       
        StringBuilder sb = new StringBuilder();
        sb.append(DO);
        sb.append(action);
        try {
            if(null!=action){
                invokeMethod(this, sb.toString(), null);
            }
        } catch (NoSuchMethodException e) {
            log.error(MessageUtils.getCodeAndMessage(EXCEPTIONMETHODERROR), e);
            throw new SystemException(EXCEPTIONMETHODERROR);
        } catch (IllegalAccessException e) {
            log.error(MessageUtils.getCodeAndMessage(EXCEPTIONFIELDERROR), e);
            throw new SystemException(EXCEPTIONFIELDERROR);
        } catch (InvocationTargetException e) {
            log.error(MessageUtils.getCodeAndMessage(EXCEPTIONOBJECTERROR), e);
            throw new SystemException(EXCEPTIONOBJECTERROR);
        }
    }
   

    /**
     *
     * <p>
     * Description: 页面得到request请求,并对请求流进行解析成String
     * </p>
     *
     * @param HttpServletRequest
     *            req
     * @throws SystemException
     */
    private JSONObject doRequestToJson()
            throws SystemException {
        JSONObject json = null;
        try {
            BufferedReader jsonBuffer = request.getReader();
            if (null != jsonBuffer) {
                json = JSONObject.fromObject(IOUtils.toString(jsonBuffer));
            }
        } catch (IOException e) {
            log.error(MessageUtils.getCodeAndMessage(EXCEPTIONIOERROR), e);
            throw new SystemException(EXCEPTIONIOERROR);
        }
        return json;
    }
   
    /**
     * <p>当前请求数据位数组格式,需要转化为JsonArray形式</p>
     * @return
     * @throws SystemException
     */
    private JSONArray doRequestJsonToString()
            throws SystemException {
        JSONArray jsonArray = null;
        try {
            BufferedReader jsonBuffer = request.getReader();
            if (null != jsonBuffer) {
                jsonArray = JSONArray.fromObject(IOUtils.toString(jsonBuffer));
            }
        } catch (IOException e) {
            log.error(MessageUtils.getCodeAndMessage(EXCEPTIONIOERROR), e);
            throw new SystemException(EXCEPTIONIOERROR);
        }
        return jsonArray;
    }
   
    /**
     * <p>判断当前启动模式,来显示调试并打印记录信息</p>
     * @param strs
     */
    private void printDebugLog(String... strs) {
        if (log.isDebugEnabled()) {
            for (String str : strs) {
                log.debug("Class:" + this.getClass() + " parameter:" + str);
            }
        }
    }

    private void printDebugLog(String str) {
        if (log.isDebugEnabled()) {
            log.debug("Class:" + this.getClass() + " parameter:" + str);
        }
    }

}

分享到:
评论

相关推荐

    springmvc与strtus2的区别

    DispatcherServlet作为前端控制器,负责接收请求并分发到相应的处理器。Controller处理业务逻辑,ViewResolver解析视图,ModelAndView则用于在模型和视图之间传递数据。 相比之下,Struts2是基于MVC模式的开源框架...

    用strtus制作登陆页面

    - **Struts的工作流程**:当用户向Web应用发送请求时,Struts控制器会拦截该请求并根据配置文件中的规则决定由哪个Action来处理这个请求。Action处理完请求后,通常会返回一个ActionForward对象,用于指定下一个页面...

    Strtus2+spring+hibernate

    Struts2的拦截器可以与Spring的AOP配合,实现更灵活的控制和增强。 具体到压缩包中的"复件 Sys"文件,可能是项目的一部分,可能包含了配置文件、源代码、资源文件等。例如,可能有Struts2的配置文件(struts.xml)...

    基于strtus和jdbc的图书管理系统

    在Struts框架中,模型负责业务逻辑处理,视图负责展示用户界面,控制器则协调模型和视图之间的交互。Struts提供了一种结构化的开发方式,使得开发者能够更好地组织代码,提高代码的可维护性和可扩展性。 **JDBC...

    strtus2开发入门

    Struts2是一个强大的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。它在Java社区中广泛使用,为开发者提供了一种高效、灵活且可扩展的方式来组织和控制应用的业务逻辑。Struts2的核心设计原则...

    用户管理_SSH(Strtus2+hibernate+spring)

    利用Strtus2+hibernate+spring实现的用户管理小项目(内含mysql数据库脚本和所需的所有jar包),另外里面自己也做了一些封装,这个项目的说明可以参考我发表的博客"对SSH的一些认知

    strtus2自动漏洞检测工具

    "strtus2自动漏洞检测工具"是一个专门针对Struts2框架的安全扫描工具,它能够帮助开发者和系统管理员自动化检测Struts2应用中存在的安全漏洞。 Struts2框架的安全性问题主要源于其组件的不恰当使用或配置错误,可能...

    strtus1_html标签

    - `disabled`:控制文本框的禁用状态,设置为 `true` 表示禁用。 - `maxlength`:限制用户可以在文本框中输入的最大字符数。 - `readonly`:设置文本框是否为只读模式。 - `size`:定义文本框的尺寸(即可见字符...

    Spring和strtus的xml文件的修改

    `Struts-config.xml`是Struts框架的核心配置文件,它定义了应用程序的控制器行为,包括Action映射、表单Bean和国际化资源等。在Spring和Struts整合的情况下,通常会添加一个插件——`ContextLoaderPlugIn`,这个插件...

    strtus2学习电子书

    Struts2的学习不仅包括框架本身,还涉及相关的技术栈,如Servlet、JSP、JavaBeans、IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)。理解这些基础概念对于深入掌握...

    strtus一个简单的例子

    一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子...

    strtus总结,学习资料

    - **控制器**:处理用户请求,控制程序流程。 这种架构分离了业务逻辑、用户界面和控制器逻辑,提高了代码的可维护性和可扩展性。 #### 2. 丰富的标签库 (Tag Library) Struts 1 提供了一系列自定义标签,这些标签...

    java strtus jsp javascript

    学习Struts,你需要掌握控制器Servlet、配置文件(struts-config.xml或struts2的struts.xml)、拦截器等核心概念。 其次,JavaScript是一种在客户端运行的脚本语言,用于实现网页的动态交互。`JAVASCRIPT.chm`可能...

    Strtus2登录界面(附带简单UI)

    4. **Interceptor(拦截器)**:类似于AOP(面向切面编程)的概念,拦截器可以插入到Action调用之前或之后,执行一些预处理或后处理任务,如日志记录、权限检查等。 5. **ValueStack**:存储Action上下文中的数据,...

    strtus整体架构及核心标签库的介绍

    Struts 框架是Java Web开发中广泛使用的MVC(模型-视图-控制器)框架,它通过组件的模块化、灵活性和重用性,极大地简化了基于MVC架构的应用程序开发。本文将深入探讨Struts框架的核心组成部分以及其提供的核心标签...

    ibatis与strtus2集成的简单示例

    通过这个集成,我们可以利用Struts2的控制器能力处理HTTP请求,同时利用iBatis的强大SQL处理能力进行数据访问。对于初学者来说,这是一个很好的起点,可以帮助理解Java Web开发中的MVC模式和数据库操作。在实际项目...

    Strtus基础教学视频

    黑马程序,传播智客Strtus基础教学视频,四天课时,视频很清楚讲的很仔细

    Strtus2AndSpring整合

    这个压缩包文件 "Strtus2AndSpring" 可能包含了整合后的示例代码,包括 Struts2 的配置文件、Spring 的配置文件、Action 类、Service 类等,下载后可以通过学习和运行这些代码来深入理解 Struts2 和 Spring 如何进行...

    strtus框架的经典应用例子

    1. **MVC模式**:MVC模式将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理业务逻辑,视图负责呈现用户界面,控制器则协调模型和视图之间的交互。 2. **Action类**:...

    strtus2拦截器的例子

    拦截器是在Action调用之前和之后执行的一段代码,可以用来处理通用的任务,如登录验证、日志记录、性能监控等。它们通过配置在struts.xml文件中被关联到特定的动作或整个应用。 在Struts2中,创建一个拦截器需要...

Global site tag (gtag.js) - Google Analytics