Java 如何从servlet init方法获取请求参数
我正在编写一个Servlet来检索请求参数,但需要在Java 如何从servlet init方法获取请求参数,java,servlets,Java,Servlets,我正在编写一个Servlet来检索请求参数,但需要在init方法中使用它们。由于init方法将在doGet方法之前调用,并且init方法没有HttpServletRequest对象作为参数,因此我不知道如何获取请求参数 public class OpenIdServlet extends HttpServlet { ... ... private OpenIdManager manager; @Override public void init() t
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
。因此,您必须接受部分返回到,并在请求处理(doGet/doPost)时使用请求参数完成它
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...
}
...
...
}
事实上,管理器似乎是依赖于请求的,因此应该在request-never-as字段中创建。因为可能会有几个请求。可能作为会话属性持久化。启动时调用init
。因此,您必须接受部分返回到,并在请求处理(doGet/doPost)时使用请求参数完成它
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...
}
...
...
}
事实上,管理器似乎是依赖于请求的,因此应该在request-never-as字段中创建。因为可能会有几个请求。可能作为会话属性持续存在。您的问题没有意义。调用init()方法时没有请求。它在容器初始化期间被调用
你是指初始参数吗?它们可以通过作为init()参数提供的ServletContext获得。您的问题没有意义。调用init()方法时没有请求。它在容器初始化期间被调用
你是指初始参数吗?它们可以通过作为init()参数提供的ServletContext访问。添加了一条注释,上面写着同样的内容,+1;)@Joop Eggen:但是当我用doGet()方法声明它时,经理拒绝工作。您熟悉这个OpenID技术吗?已知的技术,但没有使用jOpenId库。如果init中需要,您可以给出一个固定的URL,并且在doGet/doPost中调用getAuthentication时调用setUserPrincipal或设置一些会话属性。然后returnTo将重定向。有一些查询字符串必须附加到URL,它们只能来自请求参数。似乎没有办法得到它们,但我正在研究另一种方法。我添加了一条评论,说同样的,+1;)@Joop Eggen:但是当我用doGet()方法声明它时,经理拒绝工作。您熟悉这个OpenID技术吗?已知的技术,但没有使用jOpenId库。如果init中需要,您可以给出一个固定的URL,并且在doGet/doPost中调用getAuthentication时调用setUserPrincipal或设置一些会话属性。然后returnTo将重定向。有一些查询字符串必须附加到URL,它们只能来自请求参数。似乎没有办法得到它们,但我正在研究另一种方法。解释库OpenIdManager
来自何处。@McDowell它来自JOpenID-1.08解释库OpenIdManager
来自何处。@McDowell它来自JOpenID-1.08