我正在编写一个检索请求参数的 Servlet,但需要在 init
方法中使用它们。由于 init
方法将在 doGet
方法之前调用,并且 init
方法没有 HttpServletRequest
对象作为参数,我不知道如何获取请求参数。
public class OpenIdServlet extends HttpServlet
{
...
...
private OpenIdManager manager;
@Override
public void init() throws ServletException
{
super.init();
manager = new OpenIdManager();
manager.setRealm("http://localhost:8080/OpenIDSample");
manager.setReturnTo("http://localhost:8080/OpenIDSample/openid"); //I need to append the value of a request parameter here...
}
...
...
}
所以问题是:有什么方法可以在 servlet 的 init()
方法中获取 HttpServletRequest
参数吗?如果没有,还有什么其他更好的方法可以解决这个问题?谢谢。
最佳答案
init
在启动时被调用一次。因此,您必须接受部分 returnTo
,并在请求处理 (doGet/doPost) 时使用请求参数完成它。
事实上,管理器似乎依赖于请求,因此应该在请求中创建 - 永远不要作为字段。因为可能会有多个请求。也许作为 session 属性持续存在。
关于java - 如何从 servlet init 方法获取请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21079868/