首页 > 其他分享 >SpringMVC学习巩固(基本使用)(1)

SpringMVC学习巩固(基本使用)(1)

时间:2023-07-06 18:14:17浏览次数:40  
标签:xml web 巩固 SpringMVC 视图 学习 org DispatcherServlet

框架概述:
1.SpringMVC专注controller控制层的框架
2.SpringMVC基于Servlet技术进行封装
3.SpringMVC是Spring FrameWorld中的子框,可以完美融合到Spring容器中

主要作用:
a.简化请求参数接收
b.简化前端数据响应

组件作用:
1.DispatcherServlet: 接收前端参数请求和响应前端数据,并完成内部的分发调用.
2.HandlerMapping:查找handle的handle对应路径,进行记录和存储,供DispatcherServlet查找.
3.HandlerAdapter:用于请求参数转换,响应数据转换,调用自定义的类型转化器.
4.Handler:controller类中的方法,自己编写代码的位置,需要将方法注册到HandlerMapping中.
5.视图解析器:快速查找视图页面,内部配置视图页面的前后缀,根据逻辑视图查找,返回json不走视图解析器

基本使用:
1.在pox.xml中添加相关依赖项.
`

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.1</version>
    </dependency>
 <!-- web 项目  servlet -->

    <!-- ServletAPI -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>

    <!-- Spring5和Thymeleaf整合包 -->
    <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf-spring5</artifactId>
        <version>3.0.12.RELEASE</version>
    </dependency>

    <!-- thymeleaf依赖 -->

    <!-- spring webmvc 依赖即可 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.1</version>
    </dependency>

`

编写配置文件:
1.目标:
a.配置DispatcherServlet在web.xml(WEB工程的配置文件)中,设置拦截整个项目的全部路径

b.将SpringMVC自带核心组件放入ioc容器(Spring配置)

c.声明自定义的Handler(方法),将自己的Controller类加入到ioc,并在方法上使用注解.向HandlerMapping中注册.

SpringMVC.xml:

`

<!-- controller -->
<context:component-scan base-package="com.atguigu" />

<!-- 初始化了ceo会自带几个经理和几个秘书 -->
<!--
   编写了一个配置文件 DispatcherServlet.properties把各个方向组件需要的基本组件配置完毕!
   待加载dispatcherServlet的时候,会检查你是否配置,如果没有配置,走默认组件!
-->
<!-- handlerMapping -->
<!-- handlerAdapter -->

<!-- 财务也自带,财务带的jsp模板语言的财务!  -->
<!-- viewResolver-->
<!-- Thymeleaf视图解析器 -->
<bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
    <property name="order" value="1"/>
    <property name="characterEncoding" value="UTF-8"/>
    <property name="templateEngine">
        <bean class="org.thymeleaf.spring5.SpringTemplateEngine">
            <property name="templateResolver">
                <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">

                    <!-- 视图前缀 -->
                    <property name="prefix" value="/WEB-INF/templates/"/>

                    <!-- 视图后缀 -->
                    <property name="suffix" value=".html"/>
                    <property name="templateMode" value="HTML5"/>
                    <property name="characterEncoding" value="UTF-8" />
                </bean>
            </property>
        </bean>
    </property>
</bean>

`

WEB.xml(新建html页面放在webapp/WEB-INF里,web无法直接访问,只能走视图解析器,安全):
`

<!-- 配置过滤器解决 POST 请求的字符乱码问题 -->
<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

    <!-- encoding参数指定要使用的字符集名称 -->
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>

    <!-- 请求强制编码 -->
    <init-param>
        <param-name>forceRequestEncoding</param-name>
        <param-value>true</param-value>
    </init-param>

    <!-- 响应强制编码 -->
    <init-param>
        <param-name>forceResponseEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>
    <servlet-name>ds</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- init-param - servletConfig - init 获取到 :  ds init WebApplicationContext("配置") -->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <load-on-startup>5</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>ds</servlet-name>
    <!-- /拦截项目的所有路径  /* 会拦截jsp等资源 -->
    <url-pattern>/</url-pattern>
</servlet-mapping>

`

标签:xml,web,巩固,SpringMVC,视图,学习,org,DispatcherServlet
From: https://www.cnblogs.com/chenshifu/p/17532251.html

相关文章

  • 经商做生意的6条商道、30个细节!来学习下吧
    经商做生意的6条商道、30个细节!能做到一半,就不愁赚不到钱,来学习下吧。一、定位决定地位,定位准确,经商做生意才有“钱”途1.做生意要有目的,想发财要有目标。目的、目标不明确,就不要盲目“下海”。2.市场定位一定要力求准确,赚自己能赚的钱,而不是什么钱都想赚。3.生意要......
  • 零一PPT学习_P5/P31
    一、关于PPT1、记住核心:PPT做得好的人,一定是站在观众角度思考的人。PPT要服务于观众。2、PPT设计原则(1)字少(2)逻辑清晰(3)漂亮二、做好PPT的建议提高审美。从以下两个网站,每天浏览10min.(1)站酷 https://www.zcool.com.cn/(2)花瓣https://huaban.com/......
  • 第一天:Markdown学习
    Markdown学习 标题标题标题标题可分为一级标题、二级标题、三级标题······以此类推一级标题:#+空格+标题内容二级标题:##+空格+标题内容三级标题:###+空格+标题内容······以此类推 字体Hello,WorldHello,WorldHello,WorldHello,World......
  • 如何实现机器学习 框架的具体操作步骤
    机器学习框架:简化机器学习的开发过程机器学习是一种通过从大量数据中学习模式和规律来进行预测和决策的方法。随着机器学习的广泛应用,许多开发人员和研究人员需要一个简单易用的工具来加速机器学习模型的开发和部署过程。机器学习框架正是为了满足这一需求而诞生的。什么是机器学......
  • 解决互联网大厂 用的机器学习框架的具体操作步骤
    互联网大厂用的机器学习框架机器学习在互联网行业中扮演着重要的角色,为各种应用提供了强大的数据分析和预测能力。互联网大厂如谷歌、亚马逊、Facebook等都在机器学习领域发挥着重要作用。这些大厂都依赖于一些强大的机器学习框架来支持他们的数据分析和预测任务。TensorFlowTen......
  • python学习_标识符和保留字
    一、什么叫保留字?有些单词被python赋予了特定的意义,这些单词我们在给对象命名的时候不能用,就是python文件命名、变量命名时不能用如何查看python有哪些保留字呢?importkeywordprint(keyword.kwlist)二、什么叫标识符?给变量、函数、类、模块和其他对象起的名字就叫标识符......
  • 莫比乌斯反演学习笔记
    狄利克雷卷积对于两个数论函数$f(x)$和$g(x)$,他们的卷积结果$h(x)$定义为$h(x)=\sum_{d|x}^{}f(d)g(\frac{x}{d})=\sum_{ab=x}^{}f(a)g(b) $即$h=f*g$满足交换律,结合律,分配律。莫比乌斯函数 $$\mu(n)=\left\{\begin{matrix}1 &n=1\\0 &n含有平方因子\\(-1......
  • 差分学习笔记与总结
    差分学习笔记与总结目录差分一维差分What背景\(b_1\)的值\(b_2\)的值\(b_3\)的值\(b_i\)的值怎么用作用1作用2模板例题link题目大意CODE二维差分What作用模板模板题题目大意CODE差分前置知识-前缀和一维差分What差分可理解为前缀和的逆运算前缀和背景现有数......
  • Jmeter学习之六_进行https证书处理的工作
    Jmeter进行https证书处理的工作背景继续学习中,想着能够抓取一下https相关的信息所以计划些一下处理过程但是感觉自己这一块比较薄弱.场景设计这一块应该是专业人去搞,我这边先只是简单学习了解一下.创建证书要使用keytool工具创建证书打开终端或命令提示符,并转......
  • 排序算法的巅峰之选:学习Python快速排序!
    快速排序(QuickSort)是一种高效的排序算法,它的基本思想是通过分治的策略将一个大问题分解成小问题并解决。快速排序的核心操作是选取一个基准元素,将待排序序列划分成左右两部分,其中左部分的元素都小于基准元素,右部分的元素都大于基准元素。然后递归地对左右两部分进行排序,最终完成......