HttpSession 作为控制器中的参数
HttpSession as a parameter in the controller
我想了解如何在 spring 控制器中将 HttpSession 作为参数发送。
我有一个 jsp,它在单击提交按钮时执行 post 请求。在控制器中,读取会话如下
在控制器中:
public ModelAndView viewEditFundClass(HttpServletRequest request,HttpServletResponse response,Model model){
HttpSession session = (HttpSession)request.getSession();
java.util.Date startDate = sesseion.getAttribute("startDate");
但是,当我把controller改成下面这样的时候,还是可以访问session
public ModelAndView viewEditFundClass(HttpServletRequest request,HttpServletResponse response, HttpSession session,Model model)
我想知道 Spring 中是如何完成的,即 post 请求是如何将 HttpSession 作为参数传递的?此会话是否有效?
假设您正在使用 Spring 3+ @Controller
和 @RequestMapping
处理程序方法,Spring 为您的处理程序定义了一组默认的 supported argument types
- Session object (Servlet API): of type
HttpSession
. An argument of
this type enforces the presence of a corresponding session. As a
consequence, such an argument is never null
.
Spring 使用策略模式来完成此操作,使用接口 HandlerMethodArgumentResolver
。它检查您的处理程序方法的参数类型,并尝试为每种类型找到一个 HandlerMethodArgumentResolver
能够为其解析参数。
对于 HttpSession
,该实现是 ServletRequestMethodArgumentResolver
。
我想了解如何在 spring 控制器中将 HttpSession 作为参数发送。 我有一个 jsp,它在单击提交按钮时执行 post 请求。在控制器中,读取会话如下
在控制器中:
public ModelAndView viewEditFundClass(HttpServletRequest request,HttpServletResponse response,Model model){
HttpSession session = (HttpSession)request.getSession();
java.util.Date startDate = sesseion.getAttribute("startDate");
但是,当我把controller改成下面这样的时候,还是可以访问session
public ModelAndView viewEditFundClass(HttpServletRequest request,HttpServletResponse response, HttpSession session,Model model)
我想知道 Spring 中是如何完成的,即 post 请求是如何将 HttpSession 作为参数传递的?此会话是否有效?
假设您正在使用 Spring 3+ @Controller
和 @RequestMapping
处理程序方法,Spring 为您的处理程序定义了一组默认的 supported argument types
- Session object (Servlet API): of type
HttpSession
. An argument of this type enforces the presence of a corresponding session. As a consequence, such an argument is nevernull
.
Spring 使用策略模式来完成此操作,使用接口 HandlerMethodArgumentResolver
。它检查您的处理程序方法的参数类型,并尝试为每种类型找到一个 HandlerMethodArgumentResolver
能够为其解析参数。
对于 HttpSession
,该实现是 ServletRequestMethodArgumentResolver
。