SpringMVC的准备工作

一、

        先通过Maven创建一个webapp项目

创建完成之后在pom文件中设置一些基本的信息:

        1、打包方式

    <packaging>war</packaging>

        以war包的形式打包

        2、相关依赖

        现阶段只有3个:SpringMVC、thymeleaf与Spring整合、ServletAPI

  <dependencies><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf-spring5</artifactId><version>3.0.15.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.10.RELEASE</version></dependency></dependencies>

二、创建webapp目录:

        打开projectStructure,找到该项目中的Web

初始是这样:

 点击部署中的➕,创建一个web.xml

 需要将建立web.xml的路径修改为:项目\src\main\webapp\WEB-INF\web.xml

成功。

三、配置web.xml

1、命名空间和约束:

<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">
</web-app>

 2、配置中央控制器

    <servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping>

url-pattern中的值为:/,对浏览器发送的请求通过dispathcerServlet统一处理。

SpringMVC的配置路径默认时只能在WEB-INF下,并且命名格式也有限制:

<servlet-name>-servlet.xml

  <servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--通过此设置可以将SpringMVC的配置文件放在项目的resource目录下--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet>

整体如下:

<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"><!--配置springMVC的编码过滤器--><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><!--不但会设置请求的编码类型,也会设置响应的编码类型--><init-param><param-name>forceEncoding</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>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

3、SpringMVC的核心配置文件

<!--自动扫描包--><context:component-scan base-package="com.atguigu.controller"/><!--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>

4、最后建立控制器即可。

@Controller
public class HelloController {//可以将浏览器发送的请求映射到这个方法执行     /代表着url@RequestMapping("/")public String protal(){//将逻辑视图返回return "index";}

四、总结

        浏览器发送请求,若请求地址符合前端控制器的url-pattern,该请求就会被前端控制器DispatcherServlet处理。前端控制器就会读取SpringMVC的核心配置文件,通过扫描组件找到控制器。接着根据请求地址和控制器中@RequestMapping注解的value属性值进行匹配,若匹配成功,该注解所标识的。控制器方法就是处理请求的方法。处理请求的方法需要返回一个字符串类型的视图名称,该视图名称会被视图解析器解析,加上前缀和后缀组成视图的路径,通过Thymeleaf对视图进行渲染,最终转发到视图所对应页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

postman安装报错 无法定位_接口测试工具postman安装及使用

目前的postman插件如果想正常使用&#xff0c;必须安装Postman Interceptor插件&#xff0c;这样才能直接使用chrome浏览器的cookie等信息&#xff0c;否则postman是无法完成老版本的功能的。直接使用chrome appstore安装是没有问题的&#xff0c;但是如果是离线安装&#xff0…

SpringMVC之注解RequestMapping

一、RequestMaapping的基本介绍 RequestMaapping的功能就是将请求和处理请求和处理请求的控制器关联起来&#xff0c;建立映射关系&#xff0c;当DispathcerServlet接收到请求&#xff0c;会从Controller中找对应的方法来处理该请求。 eg: Controller RequestMapping("/…

UVa11988 Broken Keyboard(练习链表使用)

向量和数组的优势是可以随机的存取元素和在末尾添加删除元素&#xff0c;而当插入元素时&#xff0c;需要移动大量的数据&#xff0c;消耗大量的时间。而链表的优势是可以在O(1)删除和插入数据。所以在频繁移动元素时&#xff0c;可以使用链表。 分析&#xff1a;如果用一个数组…

virtualbox配置apache_virtualbox 网络配置 (转)

http://www.vmbest.com/school/2-virtualbox-school/13-virtualbox-net-config-four-plan“网络”配置页面有4个方案&#xff1a;1&#xff1a;NAT 网络地址转换(Network Address Translation)2&#xff1a;Birdged Network 桥接3&#xff1a;Internal Network 内部网络(可以…

请领导批阅文件怎么说_领导说“谢谢”,该怎么回?低情商才说不客气,高情商的都这样说!...

职场中&#xff0c;当我们顺手帮了领导个小忙或者领导跟我们要工作资料&#xff0c;我们发给领导的时候&#xff0c;领导可能会顺口说“收到&#xff0c;谢谢”&#xff0c;这样的时候&#xff0c;其实领导就是表示收到了。我们如何回复&#xff0c;才不至于失了礼貌&#xff0…

387. First Unique Character in a String

Given a string, find the first non-repeating character in it and return its index. If it doesnt exist, return -1. Examples: s "leetcode" return 0.s "loveleetcode", return 2. 思路&#xff1a;扫一遍&#xff0c;用array记录char的重复次数。…

vue的简单学习

vue和thymeleaf &#xff1a; 若先显示框架后加载数据则用vue 若后端处理好之后发送给前端页面显示用thymeleaf (弹幕) 对于前后端分离的认识&#xff1a; 使用vue 将前端页面、框架等建立好&#xff0c;只需要后端发送数据即可 但thymeleaf就需要在服务器启动之前将数据保存到…

easyui下拉框option写死_JavaScript_jQuery+easyui中的combobox实现下拉框特效,1.第一种写法:Input框中显示: - phpStudy...

jQueryeasyui中的combobox实现下拉框特效1.第一种写法&#xff1a;Input框中显示&#xff1a;2. 第二种用法&#xff0c;在list列表中显示&#xff1a;类别3. 第二种的另一种写法&#xff1a;类别以上3种方法均可实现jQuery.easyui的下拉框特效&#xff0c;大家自由选择&#x…

Selleck --- 01Cookie

1. //1.设置Cookie function setCookie(name,value,days) {var date new Date();date.setDate(date.getDate() days);document.cookie name "" value ";expires" date; } console.log(setCookie("pwd","5566778899",1)); //获取c…

audino python_用 Python 实现 PowerDesigner 数据模型文件的处理

简述目前在银行研发中心做项目管理工作。我们单位的项目经理从需求、设计、编码到测试以及上线&#xff0c;都要有很大程度的参与。没有工具支持&#xff0c;很多事根本忙不过来、或者没法在有限的时间里保证项目质量。大概半年前开始接触PYTHON&#xff0c;多多少少写了一些能…

JS~~~ 前端开发一些常用技巧 模块化结构 命名空间处理 奇技淫巧!!!!!!...

前端开发一些常用技巧 模块化结构 &&&&& 命名空间处理 奇技淫巧&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;2016-09-29 17:16:39 #####背景&#xff1a; 前端开发过程中&#xff0c;创建js对象…

会移动的文字(Marquee)

Marquee标记用于在可用浏览区域中滚动文本。这个标记只适用于IE3以后的版的浏览器。 ??   格式&#xff1a; ??   <MARQUEE ALIGN"…" ??   BEHAVIOR"…" ??   BGCOLOR"…" ??   DIRECTION"…" ??   HEIGH…

vscode 英伟达tk1_英伟达的未来,不只是GPU

成立于1993年的英伟达&#xff0c;最为人熟知的就是他们的GPU。尤其是进入最近几年&#xff0c;因为AI的火热&#xff0c;英伟达GPU的关注度暴增&#xff0c;行业对他们在这个领域的认可程度也达到了前所未有的高度。但其实GPU只是英伟达的根本。历经过去几年的收购和产品线拓展…

语法2

页面(PAGE)标记(TAGS) HTML 文件结构(Document Structures)<html>...</html><head>...</head><body>...</body><HTML><HEAD> <title>, <base>, <link>, <isindex>, <meta></HEAD><…

生成n对括号的合法全排列

生成n对括号的合法全排列&#xff1a; 给定一整数N&#xff0c;输出N对括号的合法全排列 例&#xff1a; 2 3 ()() (()) ()()() (())() ()(()) ((())) 分析&#xff1a; 很经典的需要迭代来进行实现。 迭代的关键在于找到跳出迭代的条件&#xff0c;以及每次迭代的策略。 出口&…

springMVC 源码学习-请求映射原理

一、DispatcherServlet的继承关系 1、FrameworkServlet HttpServlet中的doGet等方法在FrameworkServlet之中重写了&#xff0c;都是调用该方法&#xff1a; 在这个方法内部调用doServlce的方法 这个doService的方法在FrameworkServlet中是一个抽象方法&#xff0c;说明是交给它…

constraintlayout布局新特性_AMD发布Ryzen PRO 4000系列移动处理器:多了超线程和商用安全特性...

昨日晚间&#xff0c;AMD正式发布了基于Renoir的最新一代商用移动处理器Ryzen PRO 4000系列&#xff0c;本次共发布3款处理器&#xff0c;分别是Ryzen 7 PRO 4750U、Ryzen 5 PRO 4650U和Ryzen 3 PRO 4450U&#xff0c;我们制作了规格对比表&#xff0c;如下&#xff1a;从规格对…

网页设计中HTML常范的五个错误

1.网页背景色的设置犯错机率&#xff1a;很大普遍性&#xff1a;较广犯错可能性&#xff1a;懒/不知道约2年前我曾发现21cn上出现过一次没有设置背景色的情况&#xff0c;当时我用Email通知了他们&#xff0c;自此之后这个问题我从没犯过。绝大部分人的窗口背景颜色都是白色&am…

mkdir与mkdirs的区别

项目中需要在代码中读取或创建文件保存路径&#xff0c;用到了mkdir&#xff0c;查看还有个mkdirs方法&#xff0c;这里记录一下两者的区别。 1、关于两者的说明如下&#xff1a; boolean mkdir() : 创建此抽象路径名指定的目录。 boolean mkdirs() : 创建此抽象路径名指定…

易支付系统源码_刷脸支付系统源码,插件源码合作模式有哪些,采购源码需要注意什么...

对刷脸支付比较关注的朋友&#xff0c;应该都知道源码。当拥有这个&#xff0c;就意味着有了独立的系统。也意味着可以打造自己的品牌&#xff0c;转化自己资源&#xff0c;获取更多的利润。但是想拥有一套源码也是不简单的&#xff0c;不仅因为编写的难度和价格&#xff0c;也…