mvc模式

mvc模式 :

       1、模型层model。(表示数据和业务处理,对应组件是javaBase)

   2、视图层view。(表示用户看到并与之交互的界面,对应组件是jsp和html)

    3、控制层controller的缩写(用于接收用户输入并调用模型和视图去完成用户的请求,对应组件是servlet)

         使对象间的耦合程度降到最低。

     一 、 java技术中web编程技术的发展:model 1模式和model2模式

        1、  model 1模式(纯jsp模式)

                   缺点:1、代码重用。 2、后期维护和扩展。 3、页面维护。

        2、model 2模式(jsp+servlet+javaBase)

                 model 2 体现了基于mvc的设计模式,简单的说就是将数据的显示、流程控制、业务逻辑处理分离,使之相互独立。javaBase充当模型,jsp充当视图,servlet充当控制器。

     二 设计模式和框架的区别

              设计模式:设计模式是一套被反复使用的成功的代码设计经验的总结

              框架:是一种可重用的,半完成的应用程序。

              区别1、设计模式是设计重用,框架是部分代码重用和部分设计重用。

                    2、设计模式是抽象描述,框架有具体代码的实现。

                   3、设计模式针对各种应用,框架只针对某一特定应用。

      三:mvc模式的优点

      1、各司其职,互不干涉。 2、有利于开发中的分工。3、有利于组件的重用。

    四、mvc模式的不足。 

      1、系统结构和实现较困难。2、视图和控制器过于紧密。3、不使用于小型甚至中等规模的应用程序。

   五。基于mvc模式的框架

               框架的特性1、可重用 2、半成品 3、应用程序

              自定义mvc框架

              一 model设计

             二 controller设计

             三 view设计

                 controller设计步骤

                  1、配置servlet访问路径

                       <servlet-mapping>

                                     <serlet-name>ActionServlet</serlet-name>

                                     <url-pattern>*.action</url-pattern>

                      </servlet-mapping>

                    2、编写相关的数据访问层和业务层代码

                   3、controller设计

                         (1)定义action接口

                               public interface Action{

             //定义一个返回字符串的方法,表示需要到哪个页面的url字符串

            public String execute(HttpservletRequest request,HttpServletResponse response);

               }

                           (2)action实现类

                              public Class LoginAction implements Action{

            public String execute(HttpservletRequest request,HttpServletResponse response){

            request.setCharacterEncoding("utf-8");

            //...servlet实现功能

                                 if(){

                                        request.setAtrribute()

              return "url";

                }

            }

           }

                  4、实现controller类(servlet类)

public class ActionServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        doPost(request, response);
    }

    
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        request.setCharacterEncoding("utf-8");
        //获得Action对象
        Action action=this.getAction(request);
        String resultView=null;
        try {
            resultView=action.execute(request,response);
        } catch (Exception e) {
            // TODO: handle exception
        }
        if(resultView!=null){
            request.getRequestDispatcher(resultView).forward(request, response);
        }
    }
    public Action getAction(HttpServletRequest request){
        //获取请求的url
        String url=request.getRequestURI();
        //获取上下文路径
        String contextPath=request.getContextPath();
        //截取上下文以后的路径
        String actionpath=url.substring(contextPath.length());
        //获取action字符串
        String actionName=actionpath.substring(1, actionpath.lastIndexOf('.')).trim();
        Action action=null;
        //添加新功能时在这里添加
        if(actionName==""){
            action=new LoginAction();
        }
        return action;
    }
}

              5、配置web.xml

           

           

原文地址:https://www.cnblogs.com/hjiongjiong/p/4526175.html