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是什么