1. 程式人生 > 其它 >SpringMVC學習03:回顧Servlet

SpringMVC學習03:回顧Servlet

SpringMVC學習03:回顧Servlet

  • 回顧Servlet:

    • 1,新建Maven工程,刪除src,匯入父工程依賴:

      <!--匯入依賴-->
      <dependencies>
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <version>4.12</version>
         </dependency>

         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-webmvc</artifactId>
             <version>5.2.0.RELEASE</version>
         </dependency>

         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>servlet-api</artifactId>
             <version>2.4</version>
         </dependency>

         <dependency>
             <groupId>javax.servlet.jsp</groupId>
             <artifactId>jsp-api</artifactId>
             <version>2.1</version>
         </dependency>

         <dependency>
             <groupId>javax.servlet.jsp.jstl</groupId>
             <artifactId>jstl-api</artifactId>
             <version>1.2</version>
         </dependency>
      </dependencies>
    • 2,新建Model,普通maven專案,建立後,右鍵Model專案,選擇web框架支援;

    • 3,匯入Model子工程依賴:如果父工程有了,可以不用導;

      <dependencies>
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>servlet-api</artifactId>
             <version>2.4</version>
         </dependency>

         <dependency>
             <groupId>javax.servlet.jsp</groupId>
             <artifactId>jsp-api</artifactId>
             <version>2.1</version>
         </dependency>
      </dependencies>
    • 4,編寫一個Servlet類,用來處理使用者的請求;

      public class HelloServlet extends HttpServlet {

         @Override
         protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
             //1,獲取前端引數
             String method=req.getParameter("method");
             if(method.equals("add")){
                 req.getSession().setAttribute("msg","執行了add方法");
            }
             if(method.equals("delete")){
                 req.getSession().setAttribute("msg","執行了delete方法");
            }
             //2,呼叫業務層

             //3,檢視轉發
             req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,resp);//轉發
             //resp.sendRedirect();//重定向


        }

         @Override
         protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
             doGet(req, resp);
        }
      }
    • 5,編寫一個jsp頁面,給servlet轉發所用;

      <%@ page contentType="text/html;charset=UTF-8" language="java" %>
      <html>
      <head>
         <title>test</title>
      </head>
      <body>
        ${msg}
      </body>
      </html>
    • 6,配置web.xml:註冊剛才寫的servlet;

      <?xml version="1.0" encoding="UTF-8"?>
      <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
              version="4.0">


         <servlet>
             <servlet-name>helloServlet</servlet-name>
             <servlet-class>com.ljxdemo.servlet.HelloServlet</servlet-class>
         </servlet>

         <servlet-mapping>
             <servlet-name>helloServlet</servlet-name>
             <url-pattern>/hello</url-pattern>
         </servlet-mapping>


         <!--session超時時間-->
         <session-config>
             <session-timeout>15</session-timeout>
         </session-config>

         <!--歡迎頁面-->
         <welcome-file-list>
             <welcome-file>index.jsp</welcome-file>
         </welcome-file-list>
      </web-app>
    • 7,配置Tomcat,並啟動測試;

       

 

  • MVC框架要做哪些事情:

    • 將url對映到java類或者Java類的方法;

    • 封裝使用者提交的資料;

    • 處理請求--呼叫相關的業務處理--封裝響應資料;

    • 將響應的資料進行渲染jsp/html等檢視層資料;

 

 

  • 常見的伺服器端MVC框架有:

    • Struts , SpringMVC , ASP.NET MVC , Zend Framework , JSF;

 

  • 常見的前端MVC框架有:

    • vue , angularjs , react , backbone ;

 

  • MVP , MVVM等

    • MVVM:

      • M :Model

      • V:view

      • VM:ViewModel:雙向繫結