我正在编写一个检索请求参数的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的HttpServletRequest
方法中获得init()
个参数吗?如果没有其他更好的方法可以用来解决这个问题?感谢。
答案 0 :(得分:3)
init
在启动时调用一次。所以你必须使用部分returnTo
,并在请求处理(doGet / doPost)中使用请求参数完成它。
实际上,管理器似乎是依赖于请求的,因此应该在请求中创建 - 从不作为字段。因为可能有几个请求。也许坚持作为会话属性。
答案 1 :(得分:1)
你的问题没有意义。调用init()方法时没有请求。在容器初始化期间调用它。
您的意思是初始参数吗?它们可以通过ServletContext作为init()的参数提供。