`
yoursmile
  • 浏览: 5423 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
最近访客 更多访客>>
社区版块
存档分类
最新评论

新人模仿struts,mvc小试

    博客分类:
  • java
阅读更多
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配置文件,希望高手批评执教.
分享到:
评论
2 楼 pireswang 2009-02-12  
     
1 楼 mazzystar 2009-02-09  
不用配置文件 默认../action1 对应 action.Action1就行啦

相关推荐

    struts MVC 架构实例(图书管理系统)

    Struts MVC架构是一种广泛应用于Java Web开发中的开源框架,它基于Model-View-Controller(模型-视图-控制器)设计模式,旨在简化Web应用程序的开发流程。在这个“图书管理系统”实例中,Struts MVC框架被用来实现对...

    strutsmvc.rar

    这个名为"strutsmvc.rar"的压缩包很可能是包含了一个Struts MVC项目的源代码、配置文件和其他相关资源。Struts MVC是Apache Struts框架的一个核心概念,它遵循模型-视图-控制器(MVC)设计模式,帮助开发者组织和...

    Struts1 MVC实例

    Struts1是一个经典的Java Web开发框架,它遵循MVC(Model-View-Controller)设计模式,使得开发者可以更有序地组织代码,提高开发效率。在这个"Struts1 MVC实例"中,我们将深入探讨如何利用Struts1实现一个基础的...

    StrutsMVC系统(学习)

    Struts MVC系统是一种基于Java的开源框架,用于构建企业级Web应用程序。该系统的核心是Model-View-Controller(MVC)设计模式,它将应用程序的业务逻辑、数据处理和用户界面分离,使得代码更易于管理和维护。Struts...

    JSP源码——Struts+Hibernate实现MVC_strutsmvc.zip

    这个压缩包“JSP源码——Struts+Hibernate实现MVC_strutsmvc.zip”显然包含了使用这两种技术构建的MVC应用的源代码。下面将详细阐述Struts和Hibernate的核心概念以及它们如何协同工作。 **Struts框架**: 1. **MVC...

    struts1原理,struts2原理,spring mvc原理,struts1和struts2,struts和spring mvc

    Struts、Spring MVC和Struts2是Java Web开发中三个重要的MVC框架,它们都用于构建基于模型-视图-控制器(MVC)设计模式的Web应用程序。下面将分别介绍这三个框架的工作原理,并进行对比。 **Struts1原理:** Struts...

    struts + mvc + ibatis

    Struts、MVC和iBatis是Java Web开发中三个重要的技术框架,它们共同构建了一个高效、可维护的Web应用程序架构。在这个“Struts + MVC + iBatis”项目中,我们可以深入理解这三个组件是如何协同工作的。 Struts是...

    Struts开源MVC框架

    Struts开源MVC框架,让你更加了解Struts的开源框架的运用

    struts mvc 的分页例子

    Struts MVC 框架是Java Web开发中广泛使用的开源框架,它基于Model-View-Controller(MVC)设计模式,旨在简化应用开发并提供更好的结构。在这个分页例子中,我们将深入探讨如何在Struts MVC中实现高效、灵活的分页...

    孙卫琴《精通Struts基于MVC的Java_Web设计与开发》(STRUTS,MVC,JAVA_WEB)

    孙卫琴《精通Struts基于MVC的Java_Web设计与开发》电子版[1].part3.rar 学习STRUTS的不要错过啊。

    其他类别Struts+Hibernate实现MVC-strutsmvc.rar

    Struts+Hibernate实现MVC_strutsmvc.rar是一个计算机专业JSP源码资料包,它提供了一种基于Struts和Hibernate框架的实现模型-视图-控制器(MVC)设计模式的方法。这个资料包包含了一个完整的示例项目,用于演示如何...

    一个Struts MVC的例子

    Struts MVC框架是Java Web开发中的一个重要组成部分,它遵循Model-View-Controller(模型-视图-控制器)设计模式,旨在提高应用的可维护性和可扩展性。在这个例子中,我们将深入探讨Struts MVC框架的基本原理和核心...

    Struts+Hibernate实现MVC-strutsmvc.zip

    在这个项目中,`strutsmvc.zip`压缩包可能包含了以下关键组成部分: 1. **源代码**:Java源文件,包括Action类(处理用户请求)、ActionForm(封装用户输入)、实体类(与Hibernate映射)等。 2. **配置文件**:`...

    [其他类别]Struts+Hibernate实现MVC_strutsmvc.zip

    这个压缩包文件"strutsmvc.zip"包含了使用Struts和Hibernate实现MVC模式的一个项目实例,非常适合学习和理解这两种技术的结合。 1. **Struts框架**: - Struts是Apache软件基金会的开源项目,它是一个基于MVC设计...

    精通struts基于mvc的java web设计与开发

    《精通Struts基于MVC的Java Web设计与开发》是一本深入探讨如何使用Struts框架进行Web应用开发的专业书籍。作者孙卫琴以其丰富的经验和深入的理解,为读者提供了全面、系统的Struts MVC学习路径。 首先,我们要理解...

    简单的登录功能【基本MVC与StrutsMVC对比】

    简单的登录功能【基本MVC与StrutsMVC对比】 含数据库:只需在企业管理器中导入就行。 含源代码:只需在文件中导入编译一下即可。 以上代码都确切通过调试,有什么问题可发我邮件:nangua555@163.com,欢迎...

    Struts+Hibernate实现MVC_strutsmvc.rar

    "Struts+Hibernate实现MVC_strutsmvc.rar"可能包含一个示例项目,其中包含了上述所有组件。这个项目可能包括了struts-config.xml、hibernate.cfg.xml、Action类、DAO类、实体类、JSP页面以及其他相关配置文件。解压...

    Apache Struts MVC Design Pattern

    ### Apache Struts MVC 设计模式解析 #### 一、引言 在当今的软件开发领域,设计模式作为一种解决常见编程问题的有效方法被广泛采纳。Apache Struts 作为一款基于 Java 的开源框架,采用 Model-View-Controller ...

    [其他类别]Struts+Hibernate实现MVC_strutsmvc.zip项目JAVA源码+资料打包下载

    [其他类别]Struts+Hibernate实现MVC_strutsmvc.zip项目JAVA源码+资料打包下载[其他类别]Struts+Hibernate实现MVC_strutsmvc.zip项目JAVA源码+资料打包下载 1.适合学生做毕业设计参考 2.适合个人学习技术研究参考 3....

Global site tag (gtag.js) - Google Analytics