通過Servlet獲取初始化參數


獲取初始化參數
在web.xml中配置Servlet時,可以配置一些初始化參數。而在Servlet中可以通過ServletConfig接口提供的方法來獲取這些參數。(其實還可以通過ServletContext來獲得參數,只不過ServletConfig獲得的參數是容器啟動的時候就初始化的,而ServletConfig是Servlet類調用init()函數的時候才初始化的)。
因為我們的初始哈參數是配置在servlet里面的,所以我們這里以username為例,我們假設要在我們的moonlit servlet中添加一個初始化屬性username,我們可以在web.xml中對應的servlet中添加init-param屬性,如下:

    <init-param>
        <param-name>username</param-name>
        <param-value>moonlit</param-value>
    </init-param>

完整的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>WebProject</display-name>
  
  <servlet>
    <servlet-name>moonlit</servlet-name>
    <servlet-class>com.moonlit.MoonlitServlet</servlet-class>
    <init-param>
        <param-name>username</param-name>
        <param-value>moonlit</param-value>
    </init-param>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>moonlit</servlet-name>
    <url-pattern>/getinit.do</url-pattern>
  </servlet-mapping>
  
</web-app>
web.xml

然后我們就可以在moonlit servlet對應的類中通過getParameter()方法獲得username這個初始化參數對應的值,如下:

String username = this.getInitParameter("username");

完成的MoonlitServlet類:

package com.moonlit;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
public class MoonlitServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter out = resp.getWriter();
        String username = this.getInitParameter("username");
        out.println("<html>" 
                    + "<head><title>moonlit servlet</title></head>" 
                    + "<body>" + username + "</body>"
                    + "</html>");
    }
    
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }
}
MoonlitServlet.java

然后我們可以通過對應的url-pattern訪問到這個servlet對應的網頁。
效果如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM