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);
}
}
}
分享到:
相关推荐
DispatcherServlet作为前端控制器,负责接收请求并分发到相应的处理器。Controller处理业务逻辑,ViewResolver解析视图,ModelAndView则用于在模型和视图之间传递数据。 相比之下,Struts2是基于MVC模式的开源框架...
- **Struts的工作流程**:当用户向Web应用发送请求时,Struts控制器会拦截该请求并根据配置文件中的规则决定由哪个Action来处理这个请求。Action处理完请求后,通常会返回一个ActionForward对象,用于指定下一个页面...
Struts2的拦截器可以与Spring的AOP配合,实现更灵活的控制和增强。 具体到压缩包中的"复件 Sys"文件,可能是项目的一部分,可能包含了配置文件、源代码、资源文件等。例如,可能有Struts2的配置文件(struts.xml)...
在Struts框架中,模型负责业务逻辑处理,视图负责展示用户界面,控制器则协调模型和视图之间的交互。Struts提供了一种结构化的开发方式,使得开发者能够更好地组织代码,提高代码的可维护性和可扩展性。 **JDBC...
Struts2是一个强大的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。它在Java社区中广泛使用,为开发者提供了一种高效、灵活且可扩展的方式来组织和控制应用的业务逻辑。Struts2的核心设计原则...
利用Strtus2+hibernate+spring实现的用户管理小项目(内含mysql数据库脚本和所需的所有jar包),另外里面自己也做了一些封装,这个项目的说明可以参考我发表的博客"对SSH的一些认知
"strtus2自动漏洞检测工具"是一个专门针对Struts2框架的安全扫描工具,它能够帮助开发者和系统管理员自动化检测Struts2应用中存在的安全漏洞。 Struts2框架的安全性问题主要源于其组件的不恰当使用或配置错误,可能...
- `disabled`:控制文本框的禁用状态,设置为 `true` 表示禁用。 - `maxlength`:限制用户可以在文本框中输入的最大字符数。 - `readonly`:设置文本框是否为只读模式。 - `size`:定义文本框的尺寸(即可见字符...
`Struts-config.xml`是Struts框架的核心配置文件,它定义了应用程序的控制器行为,包括Action映射、表单Bean和国际化资源等。在Spring和Struts整合的情况下,通常会添加一个插件——`ContextLoaderPlugIn`,这个插件...
Struts2的学习不仅包括框架本身,还涉及相关的技术栈,如Servlet、JSP、JavaBeans、IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)。理解这些基础概念对于深入掌握...
一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子一个简单的struts例子...
- **控制器**:处理用户请求,控制程序流程。 这种架构分离了业务逻辑、用户界面和控制器逻辑,提高了代码的可维护性和可扩展性。 #### 2. 丰富的标签库 (Tag Library) Struts 1 提供了一系列自定义标签,这些标签...
学习Struts,你需要掌握控制器Servlet、配置文件(struts-config.xml或struts2的struts.xml)、拦截器等核心概念。 其次,JavaScript是一种在客户端运行的脚本语言,用于实现网页的动态交互。`JAVASCRIPT.chm`可能...
4. **Interceptor(拦截器)**:类似于AOP(面向切面编程)的概念,拦截器可以插入到Action调用之前或之后,执行一些预处理或后处理任务,如日志记录、权限检查等。 5. **ValueStack**:存储Action上下文中的数据,...
Struts 框架是Java Web开发中广泛使用的MVC(模型-视图-控制器)框架,它通过组件的模块化、灵活性和重用性,极大地简化了基于MVC架构的应用程序开发。本文将深入探讨Struts框架的核心组成部分以及其提供的核心标签...
通过这个集成,我们可以利用Struts2的控制器能力处理HTTP请求,同时利用iBatis的强大SQL处理能力进行数据访问。对于初学者来说,这是一个很好的起点,可以帮助理解Java Web开发中的MVC模式和数据库操作。在实际项目...
黑马程序,传播智客Strtus基础教学视频,四天课时,视频很清楚讲的很仔细
这个压缩包文件 "Strtus2AndSpring" 可能包含了整合后的示例代码,包括 Struts2 的配置文件、Spring 的配置文件、Action 类、Service 类等,下载后可以通过学习和运行这些代码来深入理解 Struts2 和 Spring 如何进行...
1. **MVC模式**:MVC模式将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理业务逻辑,视图负责呈现用户界面,控制器则协调模型和视图之间的交互。 2. **Action类**:...
拦截器是在Action调用之前和之后执行的一段代码,可以用来处理通用的任务,如登录验证、日志记录、性能监控等。它们通过配置在struts.xml文件中被关联到特定的动作或整个应用。 在Struts2中,创建一个拦截器需要...