我需要从 xml 检索 init-param 值到 Servlet,我使用了以下代码
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>LoginServlet</servlet-class>
<init-param>
<param-name>jdbcDriver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
</servlet>
servlet 代码
public void init(ServletConfig config) throws ServletException {
super.init(config);
System.out.println(config.getInitParameter("jdbcDriver"));
}
但是它显示为空..任何人都可以帮助我做到这一点。 预先感谢
我看不出为什么你必须重写
init(ServletConfig sc)
方法,因为你总是可以通过调用继承的 ServletConfig
方法来获取 getServletConfig()
。
System.out.println(getServletConfig().getInitParameter("jdbcDriver"));
如果您有自定义初始化工作要做,请覆盖无参数 init() 方法,忘记 init(ServletConfig)。可以打电话吗 无参数 init() 方法中的 getServletConfig() 方法?是的,一个 ServletConfig 的实例已被超类保存 通用Servlet。
http://javahowto.blogspot.com/2006/06/common-mistake-in-servlet-init-methods.html
在类中使用包总是好的。它可以实现清晰的界限。
嗯...应该可以。 你是在LoginServlet中调用代码吗?还有
<servlet-class>LoginServlet</servlet-class>
不在任何包裹中?
首先你必须在 web.xml 文件中指定
<init-param>
<param-name>jahnvi</param-name>
<param-value>abac</param-value>
</init-param>
并且你必须在servlet中指定代码
out.println("<h2>Init Parameters:</h2>");
Enumeration<String> initParams = getServletConfig().getInitParameterNames();
while (initParams.hasMoreElements())
{
String paramName = initParams.nextElement();
String paramValue = getServletConfig().getInitParameter(paramName);
out.println(paramName + ": " + paramValue + "<br>");
}
快乐编码:)