相关疑难解决方法(0)

servlet如何工作?实例化,会话,共享变量和多线程

假设,我有一个拥有大量servlet的Web服务器.对于在这些servlet之间传递的信息,我正在设置会话和实例变量.

现在,如果有2个或更多用户向此服务器发送请求,那么会话变量会发生什么?它们对所有用户都是通用的,或者对于每个用户而言都是不同的.如果它们不同,那么服务器如何区分不同的用户?

还有一个类似的问题,如果有n用户访问特定的servlet,那么这个servlet只在第一个用户第一次访问它时实例化,或者是否为所有用户单独实例化?换句话说,实例变量会发生什么?

java multithreading servlets session-variables instance-variables

1105
推荐指数
6
解决办法
28万
查看次数

Spring JSF集成:如何在JSF托管bean中注入Spring组件/服务?

我知道托管bean的工作方式类似于控制器,因为您唯一的任务是将视图层与模型"链接"起来.

要使用bean作为托管bean,我必须声明@ManagedBean注释,这样做我可以直接与bean通信JSF.

如果我想在这个managedBean中注入一些组件(来自Spring),我有两种可能的方法:

  1. 在ManagedBean中选择属性(如"BasicDAO dao")并@ManagedProperty(#{"basicDAO"})在属性上方声明.这样做,我"basicDAO"在ManagedBean中从Spring 注入bean .

  2. 在ManagedBean Class中声明了@Controller,然后我将拥有@ManagedBean@Controller注释一起.在物业中"BasicDAO dao"我必须使用@AutowiredSpring.

我的理解是否正确?

integration jsf spring dependency-injection managed-bean

39
推荐指数
2
解决办法
3万
查看次数

FacesContext和ExternalContext有什么区别

FacesContext和之间有什么区别ExternalContext?我什么时候可以使用其中一个?什么有一个什么有另一个?

以下示例来自JavaServer Faces第3版:

 <h:commandButton ... actionListener="#{rushmore.handleMouseClick}" />
Run Code Online (Sandbox Code Playgroud)

支持豆:

public void handleMouseClick(ActionEvent e) {
    FacesContext context = FacesContext.getCurrentInstance();
    String clientId = e.getComponent().getClientId(context);
    Map<String, String> requestParams = context.getExternalContext().getRequestParameterMap();
    // ...
}
Run Code Online (Sandbox Code Playgroud)

为什么请求参数在ExternalContext?什么是clientId?它是在应用程序启动时由JSF生成的吗?

facescontext jsf-2 externalcontext

29
推荐指数
1
解决办法
3万
查看次数