如何从Servlet中的web.xml中检索<servlet><init-param>值?

问题描述 投票:0回答:4

我需要从 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"));
}

但是它显示为空..任何人都可以帮助我做到这一点。 预先感谢

servlets web.xml init-parameters
4个回答
4
投票

我看不出为什么你必须重写

init(ServletConfig sc)
方法,因为你总是可以通过调用继承的
ServletConfig
方法来获取
getServletConfig()

System.out.println(getServletConfig().getInitParameter("jdbcDriver"));

2
投票

如果您有自定义初始化工作要做,请覆盖无参数 init() 方法,忘记 init(ServletConfig)。可以打电话吗 无参数 init() 方法中的 getServletConfig() 方法?是的,一个 ServletConfig 的实例已被超类保存 通用Servlet。

http://javahowto.blogspot.com/2006/06/common-mistake-in-servlet-init-methods.html

在类中使用包总是好的。它可以实现清晰的界限。


0
投票

嗯...应该可以。 你是在LoginServlet中调用代码吗?还有

<servlet-class>LoginServlet</servlet-class> 

不在任何包裹中?


0
投票

首先你必须在 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>");
        }

快乐编码:)

© www.soinside.com 2019 - 2024. All rights reserved.