Servlet初始化 可以传入一些参数 通过 <init-param>来配置
新建 servletinit项目
新建包 com.xiaoan.test->new Class(TestInit.java)
1 package com.xiaoan.test; 2 3 import java.io.IOException; 4 import java.util.Enumeration; 5 6 import javax.servlet.Servlet; 7 import javax.servlet.ServletConfig; 8 import javax.servlet.ServletException; 9 import javax.servlet.ServletRequest; 10 import javax.servlet.ServletResponse; 11 12 public class TestInit implements Servlet{ 13 14 @Override 15 public void destroy() { 16 // TODO Auto-generated method stub 17 18 } 19 20 @Override 21 public ServletConfig getServletConfig() { 22 // TODO Auto-generated method stub 23 return null; 24 } 25 26 @Override 27 public String getServletInfo() { 28 // TODO Auto-generated method stub 29 return null; 30 } 31 32 @Override 33 public void init(ServletConfig arg0) throws ServletException { 34 //通过参数名获取参数值 35 String username = arg0.getInitParameter("username"); 36 System.out.println("username: " + username); 37 38 //获得所有的参数名 String 对象的 Enumeration 39 Enumeration<String> paramName = arg0.getInitParameterNames(); 40 while(paramName.hasMoreElements()){ 41 String param = paramName.nextElement(); 42 String paramvalue = arg0.getInitParameter(param); 43 System.out.println(param + ": " + paramvalue); 44 } 45 46 //获得servletname 了解 47 String servletname = arg0.getServletName(); 48 System.out.println("servletName: " + servletname); 49 } 50 51 @Override 52 public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { 53 // TODO Auto-generated method stub 54 55 } 56 57 }
配置web.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 3 <display-name>servletinit</display-name> 4 5 6 <servlet> 7 <servlet-name>si</servlet-name> 8 <servlet-class>com.xiaoan.test.TestInit</servlet-class> 9 10 <init-param> 11 <param-name>username</param-name> 12 <param-value>xiaoan</param-value> 13 </init-param> 14 <init-param> 15 <param-name>password</param-name> 16 <param-value>123456</param-value> 17 </init-param> 18 19 <load-on-startup>1</load-on-startup> 20 </servlet> 21 <servlet-mapping> 22 <servlet-name>si</servlet-name> 23 <url-pattern>/si</url-pattern> 24 </servlet-mapping> 25 </web-app>
@Override
public void init(ServletConfig arg0) throws ServletException {
}
参数中ServletConfig: 封装了Servlet的配置信息, 并可以获取到ServletContext对象
1>配置Servlet的初始化参数
在<servlet>里面配置Servlet的初始化参数,并且必须放到load-on-startup的前面
<init-param>
<param-name>key</param-name>
<param-value>val</param-value>
</init-param>
按照以上格式可以配置多个初始化参数
2>获取初始化参数
获取初始化参数值
getInitParameter(String name)
以 String 对象的 Enumeration 的形式返回 servlet 的初始化参数的名称
getInitParameterNames()
返回此 servlet 实例的名称
getServletName()