动手开发自己的mvc-1----实现初步的控制层,实现各种配置和资源获取

来源:互联网 发布:win10 centos 双系统 编辑:程序博客网 时间:2024/06/05 08:37
    mvc框架最基础的功能就是跳转,struts2支持注解+xml配置跳转,我个人认为用注解来配置跳转不是一个好的做法,看似比较简单,但是action多了之后查找起来比较不方便,而且把配置信息放在类里面实际上跟解耦理念是相悖的(不过每个人有自己喜好),所以在这里我打算把跳转层设计成xml配置的,其他层设计成注解的。
      配置跳转需要用到的知识有:反射,xml读取。反射是实现动态装配的基础,它使我们的程序更具动态性,可扩展性,几乎所有流行的框架都以它为基础实现。xml读取基本都会采用dom4j完成。
      mvc实现跳转的过程:xml配置命名空间,Action处理类,请求的action方法和跳转的页面,在form提交请求后,被中心Servlet处理,解析出请求的路径,根据xml配置的各种信息,反射调用目标Action类的处理方法,并且根据xml配置的目标跳转页面进行跳转。
      所以,我们提炼出的 核心配置有
      1,namcespace:命名空间,不同模块有不同的namespace,
      2,name:form请求的名字。
      3,method:name对应的Action处理方法名,会被反射调用
      4, class:Action处理类的全路径,用于在中心Servlet反射生成.
     5, result子标签:Action处理后的跳转页面,跳转方式为forward或redirect

      我们新建一个web工程(Eclipse),取名MVC。
       接着新建一个Servlet,取名MainServlet,做中心处理器用。
       src目录下新建control.xml当作跳转配置文件,control.xml如下
      
Xml代码 复制代码 收藏代码
  1. <? xml version ="1.0" encoding"UTF-8" ?>  
  2. < actions>  
  3.     <global-results>  
  4.           <result name="userindex" type="redirect">test/test1.action</result>  
  5.        </global-results>      
  6.     <namespace name"/test" >  
  7.            <action name"test1" method"test1"  
  8.                class"com.test.action.TestAction" >  
  9.                <result name"success" type"forward" >success.jsp </result >  
  10.                <result name"error" type"redirect" >error.jsp </result >  
  11.            </ action>  
  12.   
  13.            <action name"test2" method"test2"  
  14.                class"com.test.action.TestAction" >  
  15.                <result name"success" type"forward" >success.jsp </result >  
  16.                <result name"error" type"forward" >error.jsp </result >  
  17.            </ action>  
  18.   
  19.            <action name"test3" method"test3"  
  20.                class"com.test.action.TestAction" >  
  21.                <result name"success" type"forward" >success.jsp </result >  
  22.                <result name"error" type"forward" >error.jsp </result >  
  23.            </ action>  
  24.       </namespace >  
  25.         
  26. </ actions>  

原创粉丝点击