我正在尝试在Spring中设置一个请求范围的bean.
我已成功设置它,因此每次请求都会创建一次bean.现在,它需要访问HttpServletRequest对象.
由于每次请求都会创建一次bean,因此我认为容器可以很容易地在我的bean中注入请求对象.我怎样才能做到这一点 ?
我想自己处理请求和会话属性,而不是将其留给spring @SessionAttributes,例如登录cookie处理.
我只是无法弄清楚如何HttpRequest在控制器中访问from,我需要一种方法去上面一层@RequestAttribute并访问它HttpRequest自己.使用Stripes来实现ApplicationContext和调用getAttribute().
此外,传递HttpServletRequestas参数似乎不起作用:
@RequestMapping(value="/") public String home(HttpServletRequest request){
System.out.println(""+request.getSession().getCreationTime());
return "home";
}
Run Code Online (Sandbox Code Playgroud)
上述方法不打印任何内容.
你对此有什么建议吗?
有人可以解释每个连接的每个请求和线程的线程是什么?servlet工作的模型是什么?如何分配线程来处理HTTP请求?是线程/请求还是连接?
让我们说如果我想在我Servlet的doGet()方法中异步执行一个耗时的任务,我会使用Java执行程序启动一个新线程,以便在一个单独的线程中完成冗长的计算,并立即发送响应.
现在这样做是否确保我已经释放了处理我的线程,HttpServletRequest或者它仍然被使用,因为子线程仍在运行?
Spring-MVC单例中的所有控制器是否都在不同的会话和请求之间共享?
如果是这样,我假设一个类变量就好
public String name;
Run Code Online (Sandbox Code Playgroud)
对于所有请求和会话都是一样的吗?因此,如果用户X发出请求并且name正在设置为Paul,则用户Z还将Paul作为属性?
在我的情况下,我不希望这种行为,但想知道是否有一个更简单,或更清洁的OOP方式,以获得会话/请求变量然后session.getAttribute()/request.getAttribute()
我正在开发一个带有基于Flex的前端和Spring/Hibernate后端的应用程序.
为了让Facebook集成按照我目前的方式工作,我需要在后端的前端读取javascript设置的cookie,并在登录期间进行一些验证,看看用户是否试图欺骗他的Facebook登录.
这将非常简单,但我无法弄清楚如何获得HttpServletRequest.我正在使用一个非常基本的Spring配置(这是我的第一个真正的Spring应用程序,现在我对它非常熟悉,但是我从来没有看过它.)
我没有使用Spring MVC或Spring WebFlow或类似的东西.我可以获得ServletContext,但我还没有弄清楚如何获取请求.
有帮助吗?
java ×3
spring ×3
servlets ×2
spring-mvc ×2
apache-flex ×1
facebook ×1
httprequest ×1
httpsession ×1
java-ee ×1
threadpool ×1