SpringMVC框架 (5) —— Spring请求响应

本文介绍了SpringMVC中@RequestMapping注解的使用,用于设置请求映射路径,并讲解了两种限制:方法限制和参数限制,增强执行方法的安全性。同时阐述了SpringMVC方法参数可以注入的类型,如HttpServletRequest、HttpServletResponse和HttpSession。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring请求响应

@RequestMapping

@RequestMapping注解主要是设置SpringMVC请求的映射路径
所谓的映射路径,就是匹配请求路径和执行方法关系的路径.

请求路径:http://localhost:8080/springmvc/method1.do
映射路径:@RequestMapping(value="/method1")

@RequestMapping 用于贴在控制器的类上或者方法上面
如果是贴在控制器的类上面,那么在访问这个类的方法之前必须先加上类上的对应的名称
类似于 项目下面的 模块名称
如果贴在方法上面,就是访问此方法的资源名称

@Controller
@RequestMapping("/request")  //访问时候必须加上,类似模块名称
public class RequestController {
	@RequestMapping(value="/method1") //资源名称 
	public void method1() {
	}
}

访问地址 : http://localhost:8080/springmvc/request/method1.do

两种限制

SpringMVC支持对请求的限制.如果不满足限制的条件,就不让访问执行方法.

这样做,大大提高了执行方法的安全性.

主要的限制有两种:(method)方法限制,参数限制

方法限制

就是设置请求的method类型.如果发送过来的请求与方法设置的method不一样,就不能访问执行方法.

请求method : GET , POST

  <form action="${pageContext.request.contextPath }/login.do" method="get">
    <input type="submit" value="登录">
  </form>

	/**
	 * 接收的请求,必须是POST
	 * @return
	 */
	@RequestMapping(value="login",method=RequestMethod.POST)
	public String login(){
		System.out.println("-登录-");
		return "/login.jsp";
	}

前台发送的是GET请求,而方法限制是POST请求,所以请求无法执行方法

在这里插入图片描述

方法限制可以配置多个参数

	@RequestMapping(value="login",method={RequestMethod.GET,RequestMethod.POST})
	public String login(){
		System.out.println("-登录-");
		return "/login.jsp";
	}

参数限制

1.就是请求里面必须包括哪些参数,或不包括哪些哪些.
2.参数包括哪些值,不包括哪些值

限制参数格式:
1.参数必须包括:params={“username”,“password”}
2.参数不能包括:params={"!userid"}
3参数值必须是指定的值:params={“username=zhangsan”})
4.参数值必须不是指定的值:params={“userid!=123”})

请求:没有后台方法指定的参数

<h4>登录页面</h4>
<form action="${pageContext.request.contextPath}/request/method1.do" method="post">
	账号:<input name="username"><br>
	密码:<input type="password" name="pwd"><br>
	<button type="submit">登录</button>
</form>

后台代码

	/**
	 * 需求:登录时必须包括用户名,密码
	 * @return
	 */
	@RequestMapping(value="login2",params={"username","password"})
	public String login2(){
		System.out.println("-登录-");
		return "/login.jsp";
	}

如果前台请求没有指定后台要求的参数,会报错.
在这里插入图片描述

Spring方法参数可以注入的类型

SpringMVC的方法默认可以注入 JavaWeb开发常用的数据共享对象
HttpServletRequest
HttpServletResponse
HttpSession
获取这些共享对象以后,就可以向之前的Servlet一样,做任何数据共享以及页面跳转操作

/*
 * Spring的方法默认可以注入 JavaWeb开发常用的数据共享对象 
HttpServletRequest
HttpServletResponse
 * HttpSession 以后开发 按需注入
 */
@RequestMapping(value = "/method0")
public void method0(HttpServletRequest req, 
					HttpServletResponse resp,
					HttpSession session) {
	//TODO
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值