在ssm或者springboot 框架下,如何获取对应的request和response

1.在对应的servlet框架下:

一般说来:继承HttpServlet的形式实现:如下

@WebServlet("/wx")
public class WxServlet extends HttpServlet { }

完整代码: 


@WebServlet("/wx")
public class WxServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		/**
		 * signature	微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
			timestamp	时间戳
			nonce	随机数
			echostr	随机字符串
		 */
		String signature = request.getParameter("signature");
		String timestamp = request.getParameter("timestamp");
		String nonce = request.getParameter("nonce");
		String echostr = request.getParameter("echostr");
		//校验证签名
		if(WxService.check(timestamp,nonce,signature)) {
			System.out.println("接入成功");
			PrintWriter out = response.getWriter();
			//原样返回echostr参数
			out.print(echostr);
			out.flush();
			out.close();
		}else {
			System.out.println("接入失败");
		}
	}

2.在对应的ssm框架下:

1.直接在Controller接收参数HttpServletRequest或HttpServletResponse,再传到service类中


2.在service类中需要使用req和res对象的方法上加@ModelAttribute注解,并且在方法
参数列表里接收这两个对象即可在方法里使用

3.在web.xml中配置监听器(专门监听http对象),spring子容器可以使用父容器web的对象
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>

@Autowired

private HttpServletRequest request;

@Autowired

private HttpServletResponse response;


————————————————
版权声明:本文为CSDN博主「zhengholien」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhengholien/article/details/53558354

3.在对应的spring boot的框架下:

// 对于的controller方法里面,写以下代码
RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes();
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes;
HttpServletRequest request = servletRequestAttributes.getRequest();
HttpServletResponse response = servletRequestAttributes.getResponse();

比如一个请求的入口是这样的:

@RequestMapping(value = "new",method = RequestMethod.POST)
    public ResultMessage<String> newResume(@RequestBody AdminResumeShowVo resumePerson) {
        RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes();
        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes;
        HttpServletRequest request = servletRequestAttributes.getRequest();
        HttpServletResponse response = servletRequestAttributes.getResponse();
        return recruitmentManagementService.newResumeByWeb(resumePerson,response,request);
    }

同第二种类似,还有其他方法,我用的最常见习惯这样用!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

specialApe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值