搭建SpringMVC配置流程以及使用框架流程

1.新建工程
构建ssm框架,使用maven来构建项目
在这里插入图片描述
构建的是否是简单项目自行考虑自行选择
在这里插入图片描述
填写上前面两行的项目名
在这里插入图片描述
2.在pom.xml文件中添加依赖

<dependencies>
			<!-- 引入web工程所需的依赖 -->
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>javax.servlet-api</artifactId>
				<version>3.1.0</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>javax.servlet.jsp</groupId>
				<artifactId>jsp-api</artifactId>
				<version>2.2</version>
				<scope>provided</scope>
			</dependency>
			<!-- 添加JSTL标签库 -->
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>jstl</artifactId>
				<version>1.2</version>
			</dependency>
			<dependency>
				<groupId>taglibs</groupId>
				<artifactId>standard</artifactId>
				<version>1.1.2</version>
			</dependency>
			<!-- 整合SpringMVC会自动引入其他所需的spring核心依赖 -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-webmvc</artifactId>
				<version>4.3.7.RELEASE</version>
			</dependency>
			
		</dependencies>
		<build>
			<plugins>
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<configuration>
						<source>1.8</source>
						<target>1.8</target>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>![在这里插入图片描述](https://img-blog.csdnimg.cn/20190506105505638.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjI2NDgyMw==,size_16,color_FFFFFF,t_70)
			</plugins>
		</build>

在这里插入图片描述
3.将项目变为web项目(右击项目-project facets-勾选上dynamic选择3.1版本)
在这里插入图片描述
如果要生成web.xml那么就勾上下面这个空的
在这里插入图片描述
然后update一下

4.如果项目中没有web.xml,那么右击项目,选择javaee tools—generate deployment descriptor stub自动生成web.xml文件
在这里插入图片描述
5.在web.xml里面添加配置

<!--字符集过滤器 -->
			<filter>
				<filter-name>Encoding</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>
			</filter>
			<filter-mapping>
				<filter-name>Encoding</filter-name>
				<url-pattern>/*</url-pattern>
			</filter-mapping>


			<!-- spring核心控制器 -->
			<servlet>
				<servlet-name>springmvc</servlet-name>
				<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
				<!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等) 如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-serlvet.xml(springmvc-servlet.xml) -->
				<init-param>
					<param-name>contextConfigLocation</param-name>
					<param-value>classpath:springmvc.xml</param-value>
				</init-param>
			</servlet>

			<servlet-mapping>
				<servlet-name>springmvc</servlet-name>
				<!-- 第一种:*.do/action,访问以.action结尾 由DispatcherServlet进行解析 第二种:/,所以访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析 
					使用此种方式可以实现 RESTful风格的url  -->
				<url-pattern>*.do</url-pattern>
			</servlet-mapping>
		</web-app>

6.新建springmvc.xml文件,new-spring bean configuration file-放在resources文件夹里面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果建成后忘记加这些东西了那么直接在文件的namespace处加
在这里插入图片描述
7.在上面的这个xml文件里面添加

<!-- 处理器映射器 将bean的name作为url进行查找 ,需要在配置Handler时指定beanname(就是url) 所有的映射器都实现 HandlerMapping接口。 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

8.新建一个Contrller类并且实现Controller接口,用于接受请求
在这里插入图片描述
9.把Contrller加入spring 容器里面处理器映射器BeanNameUrlHandlerMapping.class(注册器映射器 bean节点的class属性中用到的,这种方式bean id属性必须要以“/”开头) class是它的全类名
在这里插入图片描述
10.添加到tomcat里面然后运行,发现有异常,类找不到异常
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
看下这个项目里面有没有这些jar包,然后发现他没有jar包
11.需要引进这些jar包,在sts里面配置
在这里插入图片描述
**注意:
1.记得新建的这个xml文件要和上面配置的那个名字一样,也就是springmvc.xml
2.每有一个新页面新请求就要在springmvc.xml里面配置多一个

<bean name="/FirstController.do"  class="day80.controller.FirstController" ></bean>

3.在重定向请求时候可能会有路径错误,所以可使用
(new RedirectView(request.getContextPath()+"/SecondController.do"))
request.getContextPath():为当前项目名称,/SecondController.do为请求的地方

配置SpringMVC注解

1)新建一个maven工程,配置几乎和上面的搭建一样
2)在pom.xml加如下配置

<dependencies>
			<!-- 引入web工程所需的依赖 -->
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>javax.servlet-api</artifactId>
				<version>3.1.0</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>javax.servlet.jsp</groupId>
				<artifactId>jsp-api</artifactId>
				<version>2.2</version>
				<scope>provided</scope>
			</dependency>
			<!-- 添加JSTL标签库 -->
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>jstl</artifactId>
				<version>1.2</version>
			</dependency>
			<dependency>
				<groupId>taglibs</groupId>
				<artifactId>standard</artifactId>
				<version>1.1.2</version>
			</dependency>
			<!-- 整合SpringMVC会自动引入其他所需的spring核心依赖 -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-webmvc</artifactId>
				<version>4.3.7.RELEASE</version>
			</dependency>
			
		</dependencies>
		<build>
			<plugins>
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<configuration>
						<source>1.8</source>
						<target>1.8</target>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>
			</plugins>
		</build>

3)把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_3_1.xsd"
			version="3.1">

			<!--字符集过滤器 -->
			<filter>
				<filter-name>Encoding</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>
			</filter>
			<filter-mapping>
				<filter-name>Encoding</filter-name>
				<url-pattern>/*</url-pattern>
			</filter-mapping>


			<!-- spring核心控制器 -->
			<servlet>
				<servlet-name>springmvc</servlet-name>
				<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
				<!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等) 如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-serlvet.xml(springmvc-servlet.xml) -->
				<init-param>
					<param-name>contextConfigLocation</param-name>
					<param-value>classpath:springmvc.xml</param-value>
				</init-param>
			</servlet>

			<servlet-mapping>
				<servlet-name>springmvc</servlet-name>
				<!-- 第一种:*.do/action,访问以.action结尾 由DispatcherServlet进行解析 第二种:/,所以访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析 
					使用此种方式可以实现 RESTful风格的url  -->
				<url-pattern>*.do</url-pattern>
			</servlet-mapping>
		</web-app>

4)加入springmvc配置文件

<beans xmlns="http://www.springframework.org/schema/beans"
		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		 xmlns:p="http://www.springframework.org/schema/p" 
		 xmlns:context="http://www.springframework.org/schema/context" 
		 xmlns:util="http://www.springframework.org/schema/util" 
		 xmlns:mvc="http://www.springframework.org/schema/mvc"
		 xsi:schemaLocation="http://www.springframework.org/schema/beans 
					http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
					http://www.springframework.org/schema/context 
					http://www.springframework.org/schema/context/spring-context-4.3.xsd
					http://www.springframework.org/schema/util 
					http://www.springframework.org/schema/util/spring-util-4.3.xsd
					http://www.springframework.org/schema/mvc  
					http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">
			<!-- 默认扫描的包路径 -->
			<context:component-scan base-package="com.chair.controller" />
			<!-- 添加注解驱动 -->
			<mvc:annotation-driven />
			<!-- 视图 解释器 -->
			<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
				<property name="viewClass">
					<value>org.springframework.web.servlet.view.JstlView</value>
				</property>
				<!--前缀 -->
				<property name="prefix">
					<value>/</value>
				</property>
				<!--后缀 -->
				<property name="suffix">
					<value>.jsp</value>
				</property>
			</bean>
		</beans>

5)新建一个Contrller类,并且在该类添加@Controller
6)写测试代码,使用 @RequestMapping 来映射 Request 请求与处理器
6.1 @RequestMapping(“”)里面的值写的是当前方法的请求地址
在这里插入图片描述
== 【
@RequestMapping配置方式
1.@RequestMapping("/my")添加在方法上,可以使用/my来访问方法
2.@RequestMapping("/my")添加在类上,该类下的所有的请求方法前都需要加上/my,例如:/my/test
3.@RequestMapping(value="/somelist", method=RequestMethod.POST);可以是使用method属性来控制请求方法,当前注解限制post请求,restful 规范
】 ==
上面是第一种,下面是第二种,在类上面加上@RequestMapping,然后在访问的时候也要加上类的这个然后在加上方法的这个
在这里插入图片描述
在这里插入图片描述
第三种,post请求
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.2更改springmvc.xml文件里面扫描包的配置里面的包名为Controller类所在的包名
在这里插入图片描述

RequestMapping请求获取参数

转发
1.新建一个Controller类SecondController.java
在这里插入图片描述
2.在web-inf文件夹下面创建一个文件夹page,然后在里面创建一个jsp页面Secondjsp.jsp
在这里插入图片描述
3.在配置文件里面修改加上page识别jsp的那个配置
在这里插入图片描述
4.测试一下是否搭建成功
在这里插入图片描述
重定向
1.重定向:添加方法 重定向到test1这个方法 加上
newRedirectView(“test.do”)
在这里插入图片描述
测试
在这里插入图片描述
2.转发,返回字符串的形式返回页面
在这里插入图片描述
3.转发形式–携带参数返回前端
在ModelAndView里面会有一个ModelMap属性,在ModelAndView返回的时候,在return“Secondjsp”时候,会帮我们封装到View中,Model可以在方法上一参数的形式传进来,返回的时候自动封装到里面
在这里插入图片描述
4.重定向形式-携带参数返回前端
重定向需要返回字符串前添加前缀redirect:,springmvc框架会自动识别redirect:的前缀执行重定向的操作
在这里插入图片描述
【 springmvc请求参数获取的几种方法
1.通过HttpServletRequest接收,post方式和get方式都可以。
2.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交, 不适用于post方式提交。(查询功能)
3.通过一个bean来接收,post方式和get方式都可以。(新增、修改)
4.@RequestParam(“username”) String username
5.通过@PathVariable获取路径中的参数

5.用request作用域获取前端传过来的值,新建ThirdController.java实验
怎么在前端获取参数呢
怎么获取到Request呢
要获取什么参数的时候,在方法参数列表上定义就可以了
在这里插入图片描述在这里插入图片描述
6.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交。(一般用于查询功能)
获取表单的参数,可以把相应的参数卸载方法的参数列表上,表单参数名称要与参数列表的名称一致,它会根据表单参数自动映射到参数列表里面去
在这里插入图片描述
在这里插入图片描述
7.通过一个bean来接收,post方式和get方式都可以。(一般用于新增、修改)
创建jsp页面
在这里插入图片描述
创建实体类
在这里插入图片描述
编写text3方法, springmvc 会自动的帮我们去封装好表单的数据,有一个user的对象,里面有name和pwd的属性,那么它就会根据表单的参数名称,自动封装到对象的对应的属性中
在这里插入图片描述
测试
在这里插入图片描述
8.使用注解获取@RequestParam(“username”) String username,当我们在前端参数的参数名跟后端方法里面的参数名字不同时候,可以用这个注解解决
在这里插入图片描述
在这里插入图片描述
@RequestParam注解可以映射表单的指定参数到参数列表上
测试
在这里插入图片描述
9.通过@PathVariable获取路径中的参数,@PathVariable可以映射路径上的参数值
表单传数据的方式,get在url末尾加上?属性名称=属性值,执行更新方法,用户就可以很容易的知道该条数据的id是什么在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值