获取和配置Servlet的初始化参数

配置Servlet的初始化参数有两种:

1、使用注解方式@WebServlet

在注解中设置Servlet的初始化参数,需要配置name,urlPatterns,inintParams的值

name等价于web.xml配置文件中的<servlet-name>

urlPatterns等价于<url-pattern>,用于指定servlet的URL

inintParams等价于<init-pattern>,用于指定一组servlet初始化参数

@WebServlet(
name="/initParameterServlet", //name="/自定义"
urlPatterns={"/initParameterServlet"}, //urlPatterns={"/自定义"}
initParams={
@WebInitParam
(name="email",value = "123qq.com")  //name="设置的参数名"   value="设置的参数值"
})

如果需要配置多组参数,可以如下操作:

@WebServlet(
name="/InitParameterServlet",
urlPatterns={"/initParameterServlet"},
initParams={
@WebInitParam
(name="email",value = "[email protected]"),
@WebInitParam
(name="phone",value = "123456789"),
@WebInitParam
(name="参数名",value = "参数值")
})

servlet完整代码如下:

public class InitParameterServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		 ServletConfig config = this.getServletConfig();
		 String value = config.getInitParameter("email");
		 
		 String value1 = config.getInitParameter("phone");
		 PrintWriter writer = resp.getWriter();
		 writer.println("your email is:"+value);
		 writer.println("your phone munber is:"+value1);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}

}

地址栏输入:http://主机名:端口号/工程名/urlPatterns设置的值

实现如下:

2、在Web.xml文件中配置

<servlet-class>:注册的servlet 的类地址,也就是:包名.类名

配置初始化参数是在

<context-param>

<param-name>属性名</param-name>
 <param-value>属性值</param-value> 

</context-param>

需要配置多少个参数就写多少个<context-param>....</context-param>

Web.xml配置文件加入以下代码部分:

    <servlet>
		<servlet-name>InitParameterServlet1</servlet-name>
		<servlet-class>com.servlet.InitParameterServlet1</servlet-class>
    </servlet>
	<servlet-mapping>
		<servlet-name>InitParameterServlet1</servlet-name>
		<url-pattern>/initParameterServlet1</url-pattern>
	</servlet-mapping> 
	<!-- 配置InitParameterServlet1整个web应用的初始化参数 -->
	<context-param>
		<param-name>email</param-name>
		<param-value>123qq.com</param-value>
	</context-param>

servlet完整代码如下:

public class InitParameterServlet1 extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		ServletContext servletContext = getServletContext();
		String initParameter = servletContext.getInitParameter("email");
        String initParameter1 = servletContext.getInitParameter("phone");
		
		//后台
		System.out.println("your email is:" + initParameter);
		System.out.println("your phone number is:" + initParameter1);

		//浏览器
		PrintWriter writer = resp.getWriter();
		writer.println("your email is" + initParameter);
        writer.println("your phone number  is" + initParameter1);
	}
}

效果同上

仅供参考,如有不足之处,敬请见谅。

猜你喜欢

转载自blog.csdn.net/qq_53376718/article/details/126962010