web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>testmvc</display-name>
<servlet>
<servlet-name>actionServlet</servlet-name>
<servlet-class>mvc.ActionServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>actionServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
action-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<action-mapping>
<action id="ac1" class="action.Action1"></action>
<action id="ac2" class="action.Action2"></action>
</action-mapping>
ActionServlet.java
public class ActionServlet extends HttpServlet{
private static final String ACTION_CONFIG_NAME = "action-config.xml";
private static Document doc = null;
private static Map<String,String> actionMap = null;
@Override
public void init() throws ServletException {
try {
initConfig();
} catch (DocumentException e) {
e.printStackTrace();
System.exit(-1);
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String reqUri = fomartUri(req.getContextPath(), req.getRequestURI());
if(actionMap.containsKey(reqUri)) {
try {
Class clazz = Class.forName(actionMap.get(reqUri));
clazz.getMethod("execute",HttpServletRequest.class,HttpServletResponse.class).invoke(clazz.newInstance(),req,resp);
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void initConfig() throws DocumentException {
SAXReader reader = new SAXReader();
doc = reader.read(ActionServlet.class.getClassLoader().getResourceAsStream(ACTION_CONFIG_NAME));
actionMap = new HashMap<String, String>();
Element element = null;
for(Object obj : doc.selectNodes("/action-mapping/action")) {
element = (Element)obj;
actionMap.put(element.attributeValue("id"), element.attributeValue("class"));
}
}
// /testmvc/ac1.do
private String fomartUri(String contextPath, String str) {
return str.replaceAll(".do", "").replaceAll(contextPath + "/", "");
}
}
Action1.java
public class Action1 {
public void execute(HttpServletRequest req, HttpServletResponse resp) {
try {
resp.getWriter().println(Action1.class.getName());
} catch (IOException e) {
e.printStackTrace();
}
}
}
用了dom4j解析xml配置文件,希望高手批评执教.
分享到:
相关推荐
Struts MVC架构是一种广泛应用于Java Web开发中的开源框架,它基于Model-View-Controller(模型-视图-控制器)设计模式,旨在简化Web应用程序的开发流程。在这个“图书管理系统”实例中,Struts MVC框架被用来实现对...
这个名为"strutsmvc.rar"的压缩包很可能是包含了一个Struts MVC项目的源代码、配置文件和其他相关资源。Struts MVC是Apache Struts框架的一个核心概念,它遵循模型-视图-控制器(MVC)设计模式,帮助开发者组织和...
Struts1是一个经典的Java Web开发框架,它遵循MVC(Model-View-Controller)设计模式,使得开发者可以更有序地组织代码,提高开发效率。在这个"Struts1 MVC实例"中,我们将深入探讨如何利用Struts1实现一个基础的...
Struts MVC系统是一种基于Java的开源框架,用于构建企业级Web应用程序。该系统的核心是Model-View-Controller(MVC)设计模式,它将应用程序的业务逻辑、数据处理和用户界面分离,使得代码更易于管理和维护。Struts...
这个压缩包“JSP源码——Struts+Hibernate实现MVC_strutsmvc.zip”显然包含了使用这两种技术构建的MVC应用的源代码。下面将详细阐述Struts和Hibernate的核心概念以及它们如何协同工作。 **Struts框架**: 1. **MVC...
Struts、Spring MVC和Struts2是Java Web开发中三个重要的MVC框架,它们都用于构建基于模型-视图-控制器(MVC)设计模式的Web应用程序。下面将分别介绍这三个框架的工作原理,并进行对比。 **Struts1原理:** Struts...
Struts+Hibernate实现MVC_strutsmvc.zip
Struts、MVC和iBatis是Java Web开发中三个重要的技术框架,它们共同构建了一个高效、可维护的Web应用程序架构。在这个“Struts + MVC + iBatis”项目中,我们可以深入理解这三个组件是如何协同工作的。 Struts是...
Struts开源MVC框架,让你更加了解Struts的开源框架的运用
Struts MVC 框架是Java Web开发中广泛使用的开源框架,它基于Model-View-Controller(MVC)设计模式,旨在简化应用开发并提供更好的结构。在这个分页例子中,我们将深入探讨如何在Struts MVC中实现高效、灵活的分页...
Struts+Hibernate实现MVC_strutsmvc.rar是一个计算机专业JSP源码资料包,它提供了一种基于Struts和Hibernate框架的实现模型-视图-控制器(MVC)设计模式的方法。这个资料包包含了一个完整的示例项目,用于演示如何...
Struts MVC框架是Java Web开发中的一个重要组成部分,它遵循Model-View-Controller(模型-视图-控制器)设计模式,旨在提高应用的可维护性和可扩展性。在这个例子中,我们将深入探讨Struts MVC框架的基本原理和核心...
在这个项目中,`strutsmvc.zip`压缩包可能包含了以下关键组成部分: 1. **源代码**:Java源文件,包括Action类(处理用户请求)、ActionForm(封装用户输入)、实体类(与Hibernate映射)等。 2. **配置文件**:`...
该项目是基于Java EE的Struts MVC设计模式源码...Struts最初是Jakarta项目的一部分,于2004年3月成为Apache软件基金会(ASF)的顶级项目,通过Java Servlet/JSP技术实现MVC设计模式,是Java EE Web应用开发中的经典框架。
这个压缩包文件"strutsmvc.zip"包含了使用Struts和Hibernate实现MVC模式的一个项目实例,非常适合学习和理解这两种技术的结合。 1. **Struts框架**: - Struts是Apache软件基金会的开源项目,它是一个基于MVC设计...
《精通Struts基于MVC的Java Web设计与开发》是一本深入探讨如何使用Struts框架进行Web应用开发的专业书籍。作者孙卫琴以其丰富的经验和深入的理解,为读者提供了全面、系统的Struts MVC学习路径。 首先,我们要理解...
简单的登录功能【基本MVC与StrutsMVC对比】 含数据库:只需在企业管理器中导入就行。 含源代码:只需在文件中导入编译一下即可。 以上代码都确切通过调试,有什么问题可发我邮件:nangua555@163.com,欢迎...
"Struts+Hibernate实现MVC_strutsmvc.rar"可能包含一个示例项目,其中包含了上述所有组件。这个项目可能包括了struts-config.xml、hibernate.cfg.xml、Action类、DAO类、实体类、JSP页面以及其他相关配置文件。解压...
### Apache Struts MVC 设计模式解析 #### 一、引言 在当今的软件开发领域,设计模式作为一种解决常见编程问题的有效方法被广泛采纳。Apache Struts 作为一款基于 Java 的开源框架,采用 Model-View-Controller ...