欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringMVC MVC架構(gòu)與Servlet使用詳解

 更新時間:2022年10月10日 10:49:32   作者:Decade0712  
MVC設(shè)計模式一般指 MVC 框架,M(Model)指數(shù)據(jù)模型層,V(View)指視圖層,C(Controller)指控制層。使用 MVC 的目的是將 M 和 V 的實現(xiàn)代碼分離,使同一個程序可以有不同的表現(xiàn)形式。其中,View 的定義比較清晰,就是用戶界面

一、MVC架構(gòu)

1、MVC是什么

  • MVC是模型Model、視圖View和控制器Controller的簡稱,是一種架構(gòu)規(guī)范
  • 降低了業(yè)務(wù)邏輯與視圖之間的雙向耦合

2、MVC三層的主要構(gòu)成

  • Model(模型):包括數(shù)據(jù)和業(yè)務(wù),主要是Service和Dao
  • View(視圖):負(fù)責(zé)模型的展示,即用戶看到的界面,例如JSP
  • Controller(控制器):接收請求,委托給model進(jìn)行處理,等到處理完畢之后,將數(shù)據(jù)模型返回給視圖,由視圖負(fù)責(zé)展示,也就是說他起到一個中間人的作用,例如Servlet

3、MVC框架的作用

  • 將url映射到j(luò)ava類或java類的方法
  • 封裝用戶提交的數(shù)據(jù)
  • 處理請求–調(diào)用相關(guān)的業(yè)務(wù)處理–封裝響應(yīng)數(shù)據(jù)
  • 將響應(yīng)的數(shù)據(jù)進(jìn)行渲染 . jsp / html 等表示層數(shù)據(jù)

二、回顧Servlet

1、什么是servlet

Servlet 是指任何實現(xiàn)了這個 Servlet 接口的類,它解決了當(dāng)瀏覽器發(fā)送請求到服務(wù)器時,服務(wù)器按照請求尋找哪個Servlet類下的代碼,怎么執(zhí)行的問題

了解一下重定向和轉(zhuǎn)發(fā)的異同點:

相同點:頁面都會實現(xiàn)跳轉(zhuǎn)

不同點:轉(zhuǎn)發(fā)的地址欄url不會變,重定向會變

2、簡單的servlet實例

首先我們需要在父工程的maven依賴中導(dǎo)入

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.1</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.18</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
</dependencies>

接著我們建立一個Moudle:springmvc-01-servlet , 右鍵添加Web app的支持

然后我們新建一個MyServlet,繼承HttpServlet (實際上還是實現(xiàn)了Servlet這個接口 )

package com.decade.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
// 實現(xiàn)servlet接口
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 獲取請求參數(shù)
        String method = req.getParameter("method");
        if ("add".equals(method)) {
            req.getSession().setAttribute("msg", "執(zhí)行了add方法");
        } else if ("delete".equals(method)) {
            req.getSession().setAttribute("msg", "執(zhí)行了delete方法");
        }
        // 視圖跳轉(zhuǎn)
        req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req, resp);
		// 重定向使用rsp.sendRedirect("/index.jsp");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

然后編寫test.jsp,在WEB-INF目錄下新建一個jsp的文件夾,新建test.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
  ${msg}
</body>
</html>

接著我們需要在web.xml中注冊一下servlet,指定服務(wù)啟動展示的首頁以及session過期時間

<?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>
        <servlet-name>hello</servlet-name>
        <servlet-class>com.decade.servlet.MyServlet</servlet-class>
    </servlet>
    <!-- 配置指定url將請求轉(zhuǎn)發(fā)到對應(yīng)的servlet
      此處就是為什么后面的http://localhost:8080/servlet/hello能將請求轉(zhuǎn)發(fā)到MyServlet中進(jìn)行處理
     -->
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    <!-- session過期時間,以分鐘為單位 -->
    <session-config>
        <session-timeout>5</session-timeout>
    </session-config>
    <!-- 默認(rèn)歡迎頁 -->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

最后我們配置一下tomcat,進(jìn)行測試

最后我們使用http://localhost:8080/servlet/hello?method=add這個鏈接進(jìn)行測試

結(jié)果如下,符合我們的預(yù)期

到此這篇關(guān)于SpringMVC MVC架構(gòu)與Servlet使用詳解的文章就介紹到這了,更多相關(guān)SpringMVC MVC架構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringCloud Feign配置應(yīng)用詳細(xì)介紹

    SpringCloud Feign配置應(yīng)用詳細(xì)介紹

    這篇文章主要介紹了SpringCloud Feign配置應(yīng)用,feign是netflix提供的服務(wù)間基于http的rpc調(diào)用框架,在spring cloud得到廣泛應(yīng)用
    2022-09-09
  • 解決MyBatisPlus的updateBatchById()批量修改失效問題

    解決MyBatisPlus的updateBatchById()批量修改失效問題

    這篇文章主要介紹了解決MyBatisPlus的updateBatchById()批量修改失效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • struts2實現(xiàn)文件上傳顯示進(jìn)度條效果

    struts2實現(xiàn)文件上傳顯示進(jìn)度條效果

    這篇文章主要為大家詳細(xì)介紹了struts2實現(xiàn)文件上傳顯示進(jìn)度條效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Druid監(jiān)控分布式實現(xiàn)過程解析

    Druid監(jiān)控分布式實現(xiàn)過程解析

    這篇文章主要介紹了Druid監(jiān)控分布式實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • 解決@Validated注解無效,嵌套對象屬性的@NotBlank無效問題

    解決@Validated注解無效,嵌套對象屬性的@NotBlank無效問題

    這篇文章主要介紹了解決@Validated注解無效,嵌套對象屬性的@NotBlank無效問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • idea中JRebel不生效問題及解決方案

    idea中JRebel不生效問題及解決方案

    這篇文章主要介紹了idea中JRebel不生效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java實現(xiàn)在線SQL編程最新完整版

    Java實現(xiàn)在線SQL編程最新完整版

    這篇文章主要介紹了Java實現(xiàn)在線SQL編程,在使用JDBC來進(jìn)行數(shù)據(jù)庫的操作,在使用時由于對其方法并不是全部了解,所以需要邊看源碼邊改善功能,感興趣的朋友跟隨小編一起看看吧
    2022-06-06
  • java 設(shè)計模式之單例的實例詳解

    java 設(shè)計模式之單例的實例詳解

    這篇文章主要介紹了java 設(shè)計模式之單例的實例詳解的相關(guān)資料, 希望通過本文能幫助到大家,讓大家徹底理解掌握單例模式,需要的朋友可以參考下
    2017-09-09
  • 一篇文章教你如何用Java自定義一個參數(shù)校驗器

    一篇文章教你如何用Java自定義一個參數(shù)校驗器

    這篇文章主要介紹了使用java自定義一個參數(shù)校驗器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)
    2021-09-09
  • Spring中的ImportSelector接口原理解析

    Spring中的ImportSelector接口原理解析

    這篇文章主要介紹了Spring中的ImportSelector接口原理解析,ImportSelector接口是spring中導(dǎo)入外部配置的核心接口,根據(jù)給定的條件(通常是一個或多個注釋屬性)判定要導(dǎo)入那個配置類,需要的朋友可以參考下
    2024-01-01

最新評論