日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

(SpringMVC)概述和简单使用

發布時間:2025/3/20 javascript 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (SpringMVC)概述和简单使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1. 什么是SpringMVC
    • 1.1 概述
    • 1.2 中心控制器
    • 1.3 SpringMVC執行原理
  • 2. 簡單使用
    • 2.1 配置版
    • 2.2 注解版
  • 3. 總結

1. 什么是SpringMVC

1.1 概述

Spring MVC是Spring Framework的一部分,是基于Java實現MVC的輕量級Web框架。

查看官方文檔:https://docs.spring.io/spring/docs/5.2.0.RELEASE/spring-framework-reference/web.html#spring-web

Spring MVC的特點:

  • 輕量級,簡單易學

  • 高效 , 基于請求響應的MVC框架

  • 與Spring兼容性好,無縫結合

  • 約定優于配置

  • 功能強大:RESTful、數據驗證、格式化、本地化、主題等

  • 簡潔靈活
    Spring的web框架圍繞DispatcherServlet [ 調度Servlet ] 設計。

DispatcherServlet的作用是將請求分發到不同的處理器。從Spring 2.5開始,使用Java 5或者以上版本的用戶可以采用基于注解形式進行開發,十分簡潔;

1.2 中心控制器

Spring的web框架圍繞DispatcherServlet設計。DispatcherServlet的作用是將請求分發到不同的處理器。從Spring 2.5開始,使用Java 5或者以上版本的用戶可以采用基于注解的controller聲明方式。

Spring MVC框架像許多其他MVC框架一樣, 以請求為驅動 , 圍繞一個中心Servlet分派請求及提供其他功能,DispatcherServlet是一個實際的Servlet (它繼承自HttpServlet 基類)。

1.3 SpringMVC執行原理


⑴ 用戶發送請求至前端控制器DispatcherServlet

⑵ DispatcherServlet收到請求調用HandlerMapping處理器映射器。

⑶ 處理器映射器根據請求url找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet。

⑷ DispatcherServlet通過HandlerAdapter處理器適配器調用處理器

⑸ 執行處理器(Controller,也叫后端控制器)。

⑹ Controller執行完成返回ModelAndView

⑺ HandlerAdapter將controller執行結果ModelAndView返回給DispatcherServlet

⑻ DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器

⑼ ViewReslover解析后返回具體View

⑽ DispatcherServlet對View進行渲染視圖(即將模型數據填充至視圖中)。

⑾ DispatcherServlet響應用戶。

2. 簡單使用

2.1 配置版

1.新建一個Moudle 添加web的支持!

2.確定導入了SpringMVC 的依賴!

3.配置web.xml , 注冊DispatcherServlet

<?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"><!--1.注冊DispatcherServlet--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--關聯一個springmvc的配置文件:【servlet-name】-servlet.xml--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-servlet.xml</param-value></init-param><!--啟動級別-1--><load-on-startup>1</load-on-startup></servlet><!--/ 匹配所有的請求;(不包括.jsp)--><!--/* 匹配所有的請求;(包括.jsp)--><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

4.編寫SpringMVC 的 配置文件!名稱:springmvc-servlet.xml : [servletname]-servlet.xml

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--添加 處理映射器--><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/><!-- 添加 處理器適配器--><bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/><!--視圖解析器:DispatcherServlet給他的ModelAndView--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver"><!--前綴--><property name="prefix" value="/WEB-INF/jsp/"/><!--后綴--><property name="suffix" value=".jsp"/></bean> </beans>

5.編寫業務Controller ,要么實現Controller接口,要么增加注解;需要返回一個ModelAndView,裝數據,封視圖;

import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;//注意:這里我們先導入Controller接口 public class HelloController implements Controller {public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {//ModelAndView 模型和視圖ModelAndView mv = new ModelAndView();//封裝對象,放在ModelAndView中。Modelmv.addObject("msg","HelloSpringMVC!");//封裝要跳轉的視圖,放在ModelAndView中mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jspreturn mv;}}

6.將自己的類交給SpringIOC容器,注冊bean

<!--Handler--><bean id="/hello" class="com.zh.controller.HelloController"/>

7.寫要跳轉的jsp頁面,顯示ModelandView存放的數據,以及我們的正常頁面;

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

8.配置Tomcat 啟動測試!

可能遇到的問題:訪問出現404,排查步驟:

  • 查看控制臺輸出,看一下是不是缺少了什么jar包。

  • 如果jar包存在,顯示無法輸出,就在IDEA的項目發布中,添加lib依賴!

  • 重啟Tomcat 即可解決!

    不建議使用,太麻煩。

2.2 注解版

1.配置web.xml

<?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"><!--1.注冊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:springmvc-servlet.xml</param-value></init-param><!-- 啟動順序,數字越小,啟動越早 --><load-on-startup>1</load-on-startup></servlet><!--所有請求都會被springmvc攔截 --><servlet-mapping><servlet-name>SpringMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping> </web-app>

/ 和 /* 的區別:< url-pattern > / </ url-pattern > 不會匹配到.jsp, 只針對我們編寫的請求;即:.jsp 不會進入spring的 DispatcherServlet類 。< url-pattern > /* </ url-pattern > 會匹配 *.jsp,會出現返回 jsp視圖 時再次進入spring的DispatcherServlet 類,導致找不到對應的controller所以報404錯。
2.添加Spring MVC配置文件

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 自動掃描包,讓指定包下的注解生效,由IOC容器統一管理 --><context:component-scan base-package="com.zh.controller"/><!-- 讓Spring MVC不處理靜態資源 --><mvc:default-servlet-handler /><!--支持mvc注解驅動在spring中一般采用@RequestMapping注解來完成映射關系要想使@RequestMapping注解生效必須向上下文中注冊DefaultAnnotationHandlerMapping和一個AnnotationMethodHandlerAdapter實例這兩個實例分別在類級別和方法級別處理。而annotation-driven配置幫助我們自動完成上述兩個實例的注入。--><mvc:annotation-driven /><!-- 視圖解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><!-- 前綴 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 后綴 --><property name="suffix" value=".jsp" /></bean></beans>

在視圖解析器中把所有的視圖都存放在/WEB-INF/目錄下,這樣可以保證視圖安全,因為這個目錄下的文件,客戶端不能直接訪問。

  • 讓IOC的注解生效

  • 靜態資源過濾 :HTML . JS . CSS . 圖片 , 視頻 …

  • MVC的注解驅動

  • 配置視圖解析器

3.創建Controller

package com.zh.controller;import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping;@Controller public class HelloController {//真實訪問地址 : 項目名/hello@RequestMapping("/hello")public String hello(Model model){//向模型中添加屬性msg與值,可以在JSP頁面中取出并渲染model.addAttribute("msg","Hello,SpringMVC");//web-inf/jsp/hello.jspreturn "hello";} }

@Controller是為了讓Spring IOC容器初始化時自動掃描到;

@RequestMapping是為了映射請求路徑;

方法中聲明Model類型的參數是為了把Action中的數據帶到視圖中;

方法返回的結果是視圖的名稱hello,加上配置文件中的前后綴變成WEB-INF/jsp/hello.jsp。
4.創建視圖層
在WEB-INF/ jsp目錄中創建hello.jsp , 視圖可以直接取出并展示從Controller帶回的信息;

可以通過EL表示取出Model中存放的值,或者對象;

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

5.配置tomcat運行

3. 總結

實現步驟:
1.新建一個web項目

2.導入相關jar包

3.編寫web.xml , 注冊DispatcherServlet

4.編寫springmvc配置文件

5.接下來就是去創建對應的控制類 , controller

6.最后完善前端視圖和controller之間的對應

7.測試運行調試.

web.xml和springmvc配置文件基本都是寫死的完全不用動,只需要編寫控制類中的相關代碼即可。
使用springMVC必須配置的三大件:

處理器映射器、處理器適配器、視圖解析器

通常,我們只需要手動配置視圖解析器,而處理器映射器和處理器適配器只需要開啟注解驅動即可,而省去了大段的xml配置

總結

以上是生活随笔為你收集整理的(SpringMVC)概述和简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。