Spring5 MVC

學習儀式感發表於2020-10-02

1、客戶端<------> 展示層<------> 業務邏輯層<------> 資料訪問層
展示層:jsp,servlet,springMvc業務邏輯層:javaBean,Spring;資料訪問層:JDBC,Mybatis
2、客戶端------>控制器(controller(servlet,srpngMvc,springMvc來代替了servlet))<------> 模型(Model)
控制器(controller)—>展示層---->客戶端
基礎servlet例子

 public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 判斷是什麼請求  進行請求方法的排程  login()   regiester();
        //獲取的引數,將引數拼裝到javaBean中,請求資料庫,響應
        if(req.getParameter("action").equals("login")){
            login(req,resp);
        }
    }
    }
 /**
     * 登入
     * @param req
     * @param resp
     */
    private void login(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        req.setCharacterEncoding("UTF-8");

        // 獲取的引數
        String username = req.getParameter("username");
        System.out.println(username);
        // 將引數拼裝到JavaBean
        // 請求資料庫
        resp.sendRedirect("index.jsp");// 重定向,響應到index頁面
    }

要使得servlet生效

<?xml version="1.0" encoding="UTF-8"?>
<web-app xxxx">
    <servlet>
        <servlet-name>helloServlet</servlet-name>
        <servlet-class>cn.xxxx.servlets.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>helloServlet</servlet-name>
        <url-pattern>/helloServlet</url-pattern>
    </servlet-mapping>
</web-app>

配置tomcat,書寫index檔案就可以完成了;編碼很多,我們要做很多繁雜的動作;
SpringMvc
springMvc是構建在Servlet API的原始Web框架上的;
springMvc優點:輕量級、可適配,非侵入,簡單易學,spring相容好,約定優於配置,
功能強大:靈活的URL對映,RESTful,資料驗證、格式化、本地化、主題標籤庫等;
DispatcherServlet
在這裡插入圖片描述
springMvc具體流程
1、傳送請求到DispatcherServlet(前端控制器)
2、請求處理器對映器(HandlerMapping),返回Handler到DispatcherServlet
3、呼叫處理器介面卡執行Handler,先到了處理器介面卡這裡(HandlerAdapter這裡)
4、處理器介面卡呼叫Hander處理器(後端控制器),經過後端處理,返回一個ModelAndView到處理器介面卡再到DispatcherServlet
5、DispatcherServlet傳送返回回來的ModelAndView到ViewReslover檢視解析器,返回View(檢視),到前端控制器
6、前端控制器把View拿去渲染,渲染完畢返回前端控制器
7、前端控制器把檢視資訊返回相應給使用者;

用idea工具生成web資料夾,在web.xml新增依舊新增servlet

 <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--告訴springMvc我們的配置檔案在哪裡-->
    	    <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
           </init-param>
            <!--啟動時載入servlet  :
        當web伺服器 啟動時就會建立servlet(會自動呼叫servlet的建構函式及init()方法)
        -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

配置url-pattern為/除了jsp的檔案其他所有的請求都攔截下來;
把所有的控制器注入到IOC容器當中;

相關文章