从Servlet内部的线程访问请求对象 [英] Accessing the request object from a thread inside a servlet
本文介绍了从Servlet内部的线程访问请求对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我让此代码在servlet中运行
I have this code running in a servlet
public void doPost(HttpServletRequest request, HttpServletResponse response) {
final HttpServletRequest requestF = request;
Runnable runner = new Runnable() {
public void run() {
String something = requestF.getParameter("anything");
//do other things...
}
};
Thread thread = new Thread(runner);
thread.start();
但是当我尝试从请求对象中获取参数时,它将引发异常.
But it throws an Exception when i try to get the parameter from the request object.
Exception in thread "Thread-25" java.lang.NullPointerException
at org.apache.catalina.connector.Request.parseParameters(Request.java:2560)
at org.apache.catalina.connector.Request.getParameter(Request.java:1086)
at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:355)
at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:158)
at br.com.test.controller.ajax.MyServlet$1.run(MyServlet.java:54)
at java.lang.Thread.run(Thread.java:619)
requestF
对象不为null,我已经检查过.
有谁知道我是否可以在新的Thread
中访问请求对象?
The requestF
object is not null, I've checked.
Does anyone know if i can access the request object inside a new Thread
?
推荐答案
是的,Zaske是正确的. 您可以使用地图对象的新实例进行复制,如下所示:
Yes, Zaske is right. You may copy using a new instance of map object, like this:
final Map<String,String> mapParameters = new HashMap<String,String>();
mapParameters.putAll(request.getParameterMap());
并在运行"方法中使用mapParameters:
and use mapParameters inside your "run" method:
public void doPost(HttpServletRequest request, HttpServletResponse response) {
final Map<String,String> mapParameters = new HashMap<String,String>();
mapParameters.putAll(request.getParameterMap());
Runnable runner = new Runnable() {
public void run() {
String something = mapParameters.get("anything");
//do other things...
}
};
Thread thread = new Thread(runner);
thread.start();
}
这篇关于从Servlet内部的线程访问请求对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文