zoukankan      html  css  js  c++  java
  • 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);
        }
  • 相关阅读:
    How to install Lineage Os ROM on any Android device [2 methods]
    2017 年不可错过的开发工具 Top 50
    (OK) 华为全网通 honor 5x
    (OK) (solved) How restore /cust partition
    (OK) 华为全网通 honor 5x
    (OK) 华为全网通 honor 5x
    Chris Lattner
    (OK) 救砖:华为全网通 honor 5x
    (OK) Linux 平台 CUST.zip 制作方法
    (OK) Linux 下解包华为固件包UPDATE.APP
  • 原文地址:https://www.cnblogs.com/jiabo/p/5358369.html
Copyright © 2011-2022 走看看