2. 使用初始化參數(shù)配置應(yīng)用程序

1. 使用應(yīng)用上下文初始化參數(shù)

在編寫web應(yīng)用的時候,有時候需要在web應(yīng)用中加入一些配置,比如下面配置一些應(yīng)用加載的配置文件:

<!-- Context Configuration locations for Spring XML files -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:applicationContext*.xml</param-value>
    </context-param>

可以在web.xml文件中使用<context-param>標(biāo)簽配置響應(yīng)的參數(shù)。
下面舉一個簡單的例子,在web.xml中配置應(yīng)用應(yīng)用上下文參數(shù)

<context-param>
        <param-name>context_param1</param-name>
        <param-value>1</param-value>
    </context-param>
    <context-param>
        <param-name>context_param2</param-name>
        <param-value>2</param-value>
    </context-param>

編寫servlet類,獲取這寫參數(shù)并返回到前端線上。

@WebServlet(name = "contextParameterServlet", urlPatterns = "/contextParameter")
public class ContextParameterServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         //使用getInitParameter獲取配置的初始化參數(shù)
        String param1 =req.getServletContext().getInitParameter("context_param1");
        String param2 =req.getServletContext().getInitParameter("context_param2");

        PrintWriter printWriter = resp.getWriter();
        printWriter.println("param1 "+param1);
        printWriter.println("param2 "+param2);
        printWriter.flush();
    }
}

上面的代碼先獲取servletContext,再通過getInitParameter的方式獲取相應(yīng)的參數(shù)。
在瀏覽器中訪問 http://localhost:8080/contextParameter 會看到如下的結(jié)果:

2. 使用Servlet初始化參數(shù)

上面是使用servletContext獲取初始化參數(shù),這個參數(shù)是整個上線文共享的,如果只想在單個servlet中配置一些參數(shù),可以使用在web.xml文件中的<servlet>標(biāo)簽內(nèi)配置<init-param>標(biāo)簽,下面舉個例子。

@WebServlet(
        name = "servletParameterServlet",
        urlPatterns = {"/servletParameter"},
        initParams = {@WebInitParam(name = "server", value = "mysql")
                , @WebInitParam(name = "database", value = "user")}
)
public class ServletParameterServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //使用servletConfig類進(jìn)行獲取
        ServletConfig sc = this.getServletConfig();
        String server = sc.getInitParameter("server");
        String database = sc.getInitParameter("database");
        resp.getWriter().println("server : [" + server + "] database : [" + database + "]");
    }
}

在獲取servlet的配置參數(shù)時,使用ServletConfig類進(jìn)行獲取。
上面的代碼使用了注解的方式進(jìn)行配置,配置的初始化參數(shù)使用initParams,也可以在配置文件中配置如下:

 <servlet>
        <servlet-name>servletParameterServlet</servlet-name>
        <servlet-class>com.fishfree.javaweb.servlet.ContextParameterServlet</servlet-class>
        <init-param>
            <param-name>server</param-name>
            <param-value>mysql</param-value>
        </init-param>
        <init-param>
            <param-name>database</param-name>
            <param-value>user</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>servletParameterServlet</servlet-name>
        <url-pattern>/servletParameter</url-pattern>
    </servlet-mapping>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容