如何从servlet init方法获取请求参数

时间:2014-01-12 20:24:33

标签: java servlets

我正在编写一个检索请求参数的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()个参数吗?如果没有其他更好的方法可以用来解决这个问题?感谢。

2 个答案:

答案 0 :(得分:3)

init在启动时调用一次。所以你必须使用部分returnTo,并在请求处理(doGet / doPost)中使用请求参数完成它。

实际上,管理器似乎是依赖于请求的,因此应该在请求中创建 - 从不作为字段。因为可能有几个请求。也许坚持作为会话属性。

答案 1 :(得分:1)

你的问题没有意义。调用init()方法时没有请求。在容器初始化期间调用它。

您的意思是初始参数吗?它们可以通过ServletContext作为init()的参数提供。