Spring MVC 中获取 HttpServletRequest request, HttpServletResponse response 对象的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring MVC 中获取 HttpServletRequest request, HttpServletResponse response 对象的方法相关的知识,希望对你有一定的参考价值。
补充:
我配置的Spring MVC,使用注解方式,在controller中使用
@Autowired
private HttpServletRequest request;
竟然能得到 request对象,这是怎么注入的呢?
另外使用
@Autowired
private HttpServletResponse response;
却得不到response对象,这又是怎么回事呢?
还望大家赐教。
@RequestMapping("view")
public String view(HttpServletRequest request, HttpServletResponse)
return "view";
参考技术A 你在Spring配置文件中是不是配置了相应的bean呢?追问
没有对应的配置啊,使用的全部是注解方式,所以应该没有配置request对象的地方
追答你采用了Spring的注解方式进行注入的,Struts能够讲Map类型的Request,Session转换成我们所需要的Servlet那种作用域类型的。
在 Spring MVC 控制器中获取查询字符串值
【中文标题】在 Spring MVC 控制器中获取查询字符串值【英文标题】:Get Query String Values in Spring MVC Controller 【发布时间】:2013-07-29 21:19:25 【问题描述】:我有一个这样的引荐来源网址:
http://myUrl.com?page=thisPage&gotoUrl=https://yahoo.com?gotoPage
如何在我的 Spring Controller 中获取“page”和“gotoUrl”的值?
我想将这些值存储为变量,以便以后重复使用。
【问题讨论】:
看看@RequestParam注解。 你真的是想说“推荐人”吗?如果是这样,则接受的答案是错误的。 您可能应该对gotoUrl
的值进行 URL 编码(尽管我不确定在这个特定示例中它在功能上是否重要)。
【参考方案1】:
在 SpringMVC 中,您可以使用 @RequestParam 注释指定查询字符串中的值被解析并作为方法参数传入。
public ModelAndView getPage(
@RequestParam(value="page", required=false) String page,
@RequestParam(value="gotoUrl", required = false) String gotoUrl)
【讨论】:
【参考方案2】:您可以使用 HttpServletRequest 接口中的getParameter() 方法。
例如;
public void getMeThoseParams(HttpServletRequest request)
String page = request.getParameter("page");
String goToURL = request.getParameter("gotoUrl");
【讨论】:
如果我想将请求作为参数传递,这是有道理的。但是,如果我不想将 HttpServletRequest 作为参数传递给我的控制器操作,有没有办法检索参数? 虽然这个答案在技术上是正确的,但它不是使用 Spring 的推荐方法,@Affe 的答案更重要。 @AkshaySinghal 除非您事先不知道参数但您需要一种方法来处理它们 - 然后您可以使用request.getParameterNames()
或 request.getParameterMap()
@LukaszWiktor 很抱歉,我不理解该评论。它似乎与任何问题或答案无关。
@AkshaySinghal 我想说 Raunak 的回答很有帮助。就我而言,我不知道参数的确切名称。我需要创建一个可以读取任何参数的端点。当我注意到这个答案时,我还发现了我之前评论中提到的两种方法。【参考方案3】:
在 Spring MVC 控制器中获取QueryString
这是 Liferay 门户特定的解决方案,它有效。
查询字符串示例:?reportTypeId=1&reportSeqNo=391
为了在Liferay Portal中获取reportSeqNo
的值,我们需要获取Original Servlet Request。
String reportSeq = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(renderRequest)).getParameter("reportSeqNo");
【讨论】:
以上是关于Spring MVC 中获取 HttpServletRequest request, HttpServletResponse response 对象的方法的主要内容,如果未能解决你的问题,请参考以下文章