`
eneve520
  • 浏览: 56670 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

用DOM4J读XML,实现自定义MVC框架(二)

    博客分类:
  • XML
阅读更多

package com.ray.mvc.control;

import java.io.IOException;
import java.lang.reflect.GenericDeclaration;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ray.biz.ink.Action;
import com.ray.mvc.pojo.ActionModel;
import com.ray.mvc.xmlreader.DOM4JReadXml;
import com.ray.xmldao.dao.DBConnection;
/**
 * 功能:拦截所有页面的url,作为中央控制器,再根据拦截的url进行调用相应的接口与实现类,
 *   根据xml的指定路径转发到不同的页面。
 * @author Ray
 * @createdate:2009年6月13日
 * @version:1.0.0
 * questinoList :
 * (1)
 * //实现 Action(接口)  action =  new 接口实现类()
 * // action.method();
 *
 * */
public class ControlServlet extends HttpServlet {
 

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  //截取所有页面的url
  String currUrl = request.getRequestURI();
  System.out.println("currUrl="+currUrl);
  //截取所有页面的路径
  String path=currUrl.substring(currUrl.indexOf("/", 1));  
  path = path.substring(0,path.indexOf("."));
  System.out.println("path="+path); 
  DBConnection conn = new DBConnection();
  //页面转向路径
  String forwardUrl="";
  //实例化ActionModel对象
  ActionModel model  = new ActionModel();
  model = FindActoinModel(path);
  if(model!=null&&model.getFail()!=null&&model.getSuccess()!=null){
   try {
    Class cls = Class.forName(model.getInkRealize());    
    Object obj = cls.newInstance();
    Action action = (Action) obj;
    boolean isExecute= action.execute (request, response);
    if(isExecute){
     forwardUrl = model.getSuccess();
    }else{
     forwardUrl = model.getFail();
    }    
   } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }catch (InstantiationException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (IllegalAccessException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }  
  }else{
   forwardUrl = "/fail.jsp";
  }
  //统一转向
  request.getRequestDispatcher(forwardUrl).forward(request,response);
 }


 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request,response);
 }
 /**
  * 取得当前的ActionModel对象
  * @param path
  * @return ActionModel
  * */
 private ActionModel FindActoinModel(String path){
//  实例化ActionModel对象
  ActionModel model  = new ActionModel();
  int flag = 0;
//  创建DOM4JReadXml 实例
  DOM4JReadXml dom= new DOM4JReadXml();  
  List list = dom.getAttributList();
  for(int i = 0; i < list.size(); i++){
   model = (ActionModel)list.get(i);
   //System.out.println(model.getInk());
   if(model.getInput().equals(path)){
    flag = 1;
    break;
   }   
  } 
  if(flag==1){
   return model;
  }else{
   return null;
  }
 }

}

分享到:
评论

相关推荐

    自定义MVC框架

    自定义MVC框架是一种软件设计模式,用于组织和分离应用程序中的业务逻辑、视图呈现和数据访问层。在本案例中,我们有一个自编写的MVC框架,它模仿了Struts的功能,Struts是Java Web开发中广泛使用的开源MVC框架之一...

    自定义MVC框架需要的Jar文件

    在自定义MVC框架中,此类库可能用于实现控制器的管理、模型和视图的交互,或者是提供了一套工具类来简化开发工作。 在自定义MVC框架时,这些库会与其他技术结合,如Servlet、JSP、Spring、Hibernate等,共同构建出...

    Dom4j解析struts2框架的struts.xml

    本篇文章将深入探讨如何使用Dom4j这个XML处理库来解析`struts.xml`,以便自定义和配置Struts2框架。 Dom4j是一个灵活且功能丰富的Java库,专门用于处理XML文档。它提供了全面的API,可以方便地读取、写入、修改和...

    dom4j解析struts.xml需要的包装类

    `dom4j`是一个强大的Java XML API,它提供了一种灵活的方式来读取、写入、修改以及操作XML文档。在解析`struts.xml`时,dom4j能帮助我们高效地遍历XML节点,获取或设置属性值,以及创建对象模型来表示配置文件的结构...

    自定义类似struts的mvc框架

    在IT行业中,构建一个自定义的类似于Struts的MVC框架是一项挑战性的任务,它涉及到对Web开发模式的深入理解,以及对Java、JSP、XML解析等技术的熟练运用。Struts作为Java EE领域中著名的MVC框架,其设计思想和实现...

    无标题dom4j 和XPath jar包

    1. **文档对象模型(DOM)API**:DOM4J实现了完整的W3C DOM API,使得开发者可以方便地使用DOM接口来操作XML文档。 2. **简单API for XML (SAX)**:除了DOM,DOM4J还支持SAX解析器,允许在内存有限的情况下处理大型...

    Spring MVC 框架搭建及详解

    其他如 `antlr`、`dom4j`、`javassist` 等是 Hibernate 的依赖库,`slf4j` 用于日志,以及对应数据库驱动的 jar 包。 2. **web.xml 配置**: - 配置 `DispatcherServlet` 作为 Spring MVC 的前端控制器,负责处理...

    仿struts框架的自制代码

    在这个自制代码中,开发者可能用DOM4J来读取和解析框架的配置信息。 3. **JNDI (Java Naming and Directory Interface)**: JNDI是一个接口,允许Java应用程序查找和使用命名和目录服务。在Web应用中,JNDI常用来...

    spring MVC配置详解

    Hibernate 3.6.8 需要引入的 jar 包有 hibernate3.jar、hibernate-jpa-2.0-api-1.0.1.Final.jar、antlr-2.7.6.jar、commons-collections-3.1、dom4j-1.6.1.jar、javassist-3.12.0.GA.jar、jta-1.1.jar、slf4j-api-...

    mymvc自己写的ajax框架

    这里我们关注的“mymvc自己写的ajax框架”显然是一款基于MVC(Model-View-Controller)模式构建的个人项目,它允许开发者通过Ajax技术实现页面的异步更新,提高用户体验,同时保持服务器负载均衡。以下将详细介绍...

    ASP.NET MVC框架开发系列课程(8):AJAX

    ASP.NET MVC框架是微软开发的一款用于构建Web应用程序的开源框架,它基于模型-视图-控制器(MVC)设计模式,提供了高度可测试性、灵活性和控制力。本系列课程的第八部分专注于AJAX(Asynchronous JavaScript and XML...

    SPRING MVC配置过程

    * Hibernate 3.6.8:hibernate3.jar、hibernate-jpa-2.0-api-1.0.1.Final.jar、antlr-2.7.6.jar、commons-collections-3.1、dom4j-1.6.1.jar、javassist-3.12.0.GA.jar、jta-1.1.jar、slf4j-api-1.6.1.jar、slf4j-...

    APS .NET MVC4 青鸟朋友网项目

    【标题】"APS .NET MVC4 青鸟朋友网项目"是一个基于ASP.NET MVC4技术框架开发的社交网络平台,旨在提供一个好友互动和问题解答的环境。这个项目是北大青鸟Y2阶段的教学贯穿案例,旨在帮助学生深入理解和实践MVC4的...

    完整版Java web开发教程PPT课件 Java开发进阶教程 第22章 常用框架的介绍以及环境搭建(共16页).pptx

    包括JavaScript、DOM操作、表单验证、自定义Web服务器、Servlet、JSP、内置对象、JSTL、EL、Java Bean、过滤器、监听器、自定义标签、AJAX、自定义MVC框架、Spring IOC和AOP、Spring MVC、Spring MVC核心对象和拦截...

    .net mvc 模仿Webqq

    标题中的".NET MVC 模仿Webqq"是一个项目实践,旨在使用Microsoft的.NET MVC框架来构建一个类似于WebQQ的应用程序。这个项目可以帮助开发者学习和掌握如何利用.NET MVC进行Web开发,以及实现类似即时通讯应用的功能...

    mvc加载zTree

    “mvc加载zTree”这个标题指出我们将探讨如何在ASP.NET MVC框架下使用zTree,一个流行的JavaScript树形插件。zTree是一个轻量级、可定制且功能丰富的库,常用于构建网站的目录结构、组织树或者层级展示数据。 **...

    Java企业应用框架技术培训

    1. **自主开发框架**:分析框架源代码,实现自己的数据验证框架,Webwork专题,以及自定义MVC框架,帮助学员深入理解JavaEE分层思想。 2. **企业常用开源组件技术**:如JFreeChart和Rchart图表生成,Log4j日志记录,...

    spring-mvc-jquery.zip_jquery_mvc jquery_spring jquery_spring mvc

    4. **Ajax分页**:结合Spring MVC的ModelAndView或ResponseBody,实现无刷新的分页功能。 5. **错误处理**:Spring MVC可以返回错误码或自定义消息,jQuery接收到这些信息后可以显示相应的错误提示。 文件“spring...

    hibernateAndStruts2整合

    在整合过程中,如果需要自定义Hibernate的映射文件或处理XML配置,DOM4J将是很好的工具。 总结,整合Hibernate与Struts2能够充分发挥两者的优势,简化开发流程,提高代码质量。通过深入理解这两个框架,结合实际...

    PHP与XML格式操作

    例如,使用`DOMDocument`类加载XML文件,`getElementsByTagName`查找特定元素,`nodeValue`获取或设置文本内容。 - SimpleXML:这是PHP的一个内置扩展,提供了一个简单的接口来处理XML数据。它可以将XML文档转化为...

Global site tag (gtag.js) - Google Analytics