MVCFramework

自己写的简单版的MVC的Framework

 

  • 使用说明
    • web.xml 中添加如下servlet
      	<servlet>
      		<servlet-name>appServlet</servlet-name>
      		<servlet-class>com.mvc.ServletDispatcher</servlet-class>
      		<init-param>
      			<param-name>scanPackage</param-name>
                              <!--  项目的总包名,包含所有需要的类的包名 -->
      			<param-value>com.jiabo.taskmanager</param-value>
      		</init-param>
      	</servlet>
      	<servlet-mapping>
      		<servlet-name>appServlet</servlet-name>
      		<url-pattern>/</url-pattern>
      	</servlet-mapping>    
      

        

    • 继承Application类。
  • 注解支持
@Autowired -- 自动填充
@Controller -- 类似spring mvc controller
@PathVariable -- 类似spring mvc PathVariable
@RequestMapping -- 路由映射 目前只支持路径映射
@ResponseBody -- 类似spring mvc ResponseBody
@Service -- 类似spirng mvc Service
  • 工具类支持
    • BaseUtil
      • getMethodParamsName
    • ClassUtil
      • getClasses
    • PropertiesUtil
      •   isDevMode
    • UploadUtil
      • getFiles
      • getFileName
  • 接口支持
    • Application
      • 必须要实现的类,项目启动类
        package com.mvc;
        
        import java.util.List;
        
        /**
         * the class for the detail application to implement.
         * 
         * @author jialong
         *
         */
        public abstract class Application {
            private ViewResolver viewResolver;
        
            private List<HandlerInterceptorAdapter> interceptor;
        
            /**
             * get application name
             * 
             * @return name
             */
            public abstract String getAppName();
        
            /**
             * application init
             */
            public abstract void start();
        
            public List<HandlerInterceptorAdapter> getInterceptor() {
                return interceptor;
            }
        
            public void setInterceptor(List<HandlerInterceptorAdapter> interceptor) {
                this.interceptor = interceptor;
            }
        
            public ViewResolver getViewResolver() {
                return viewResolver;
            }
        
            public void setViewResolver(ViewResolver viewResolver) {
                this.viewResolver = viewResolver;
            }
        }

         

    • ViewResolver
      • 只需要一个实现类
        package com.mvc;
        
        import javax.servlet.ServletContext;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;
        /**
         * view resolver
         * @author jialong
         *
         */
        public interface ViewResolver {
            /**
             * call the method when the application start
             * @param context
             */
            void init(ServletContext context);
        
            /**
             * resolver the view
             * @param hreq
             * @param hres
             * @param path
             */
            void resolve(HttpServletRequest hreq, HttpServletResponse hres, String path);
        }

         

          
    • HandlerInterceptorAdapter
      • 实现该接口的类按照扫描到的顺序执行
    • package com.mvc;
      
      
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      /**
       * Interceptor for this framework
       * @author jialong
       *
       */
      public interface HandlerInterceptorAdapter {
          /**
           * call the method before controller
           * @param request
           * @param response
           */
          void postHandle(HttpServletRequest request, HttpServletResponse response);
          /**
           * call the method after view resolver
           * @param request
           * @param response
           */
          void afterHandle(HttpServletRequest request, HttpServletResponse response);
      }

       

posted @ 2016-04-06 11:02  小小球  阅读(250)  评论(0编辑  收藏  举报