配置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);
}
}
效果同上
仅供参考,如有不足之处,敬请见谅。