SpringMVC的入门
简介:
SpringMVC本质是Spring的一个Web层模块,实际开发中,一般都会把它当做一个单独的框架来讲,主要位于软件三层架构的web层
SpringMVC的第一个案例
1.导入jar包
2. 在web.xml文件中配置springmvc的前端控制器
<!-- SpringMVC的前端控制器 -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!-- 指定SpringMVC的配置文件的路径和名称 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- load-on-startup表示该servlet创建的时机
0或正整数表示servlet随着容器的启动而创建
负数表示该servlet在第一次被访问时才创建
-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
3. 创建springmvc.xml的配置文件,并配置扫描包和内部资源视图解析器
<!--1 配置扫描包 -->
<context:component-scan base-package="com.sy"/>
<!--2 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
Springmvc.xml文件的作用:
4.编写controller层
@Controller
public class UserController {
@RequestMapping("/abc")
public String success() {
System.out.println("来过success方法了");
return "aaa";
}
}
/与/*的区别:
/: 拦截当前项目下的所有请求,不包括:jsp
/*:也会拦截当前项目下的所有请求,包括:jsp
请求相关操作:
1.@RequestMapping
作用:用来限制请求的
位置:可以标记在方法上,也可以标记在类上
属性: value:用来限制请求url的,字符串数组类型
支持通配符:
?:表示任意一个字符
*:任意多个任意字符
** :任意多层字符
method:用来限制请求方式的,RequestMethod数组类型
默认支持四种请求方式,如果我们指定了某种请求方式,那么前端再给后端发送请求的时候,就必须按着指定的请求方式发送
GET: 查询数据库资源
POST: 向数据库中添加数据
PUT: 修改数据库中的资源
DELETE:删除数据库中的资源
如何发送put或者delete请求?
1.在web.xml文件中配置一个HiddenHttpMethodFilter
2.必须发送post请求 *
3.必须携带一个键值对,键为:_method,值为:put或者delete * 补充:rest请求风格:建议使用请求方式表示对某种资源进行何种方式的处理,规范 * *
params:用来限制请求参数的,字符串数组类型 *
params={“username”}:请求参数中必须携带一个键为username的参数 *
params={"!username"}:请求参数中不能携带键为username的参数 *
params={“username=123”}:请求参数中必须携带一个键为username,值为123的参数 *
params={“username!=123”}:请求参数中必须携带一个键为username,值不能为123的参数
params={“username=123”,“password”}:请求参数中必须携带一个键为username,值为123的参数,并且还得携带一个键为password的参数 * * headers:用来限制请求头的* ,字符串数组类型,使用类似于params属性 *
headers={“Connection”}:请求头中必须携带一个键为username的参数 *
headers={"!Connection"} * headers={“Connection=123”}: *
headers={“Connection!=123”}: *
@RequestMapping注解的四个属性是与(&)的关系,必须同时满足