Struts 2中的java HttpServletRequest和静态方法threadsafety
假设我在这样一个类中有一个静态方法:
public static String getSomething(HttpServletRequest request)
在方法中,调用请求。getHeader(“headerName”)和请求。getParameter(“parameterName”)
另外,在Struts 2操作中,我在execute()中调用了这个函数:
private String theString;
public String execute() throws Exception {
theString = TheClass.getSomething(ServletActionContext.getRequest());
....
....
}
假设我没有修改静态getSomething(request)函数中的请求异议,那么这个线程安全吗?我猜是的,因为据我所知,动作中的HttpServletRequest对象是线程本地的,但我不是100%确定
# 1 楼答案
是的,它是线程安全的,因为您要将其作为参数传递。这就像在代码中使用静态数学类
# 2 楼答案
是的,它是完全线程安全的,因为所有变量都只从堆栈中引用