1. 使用应用上下文初始化参数
在编写web应用的时候,有时候需要在web应用中加入一些配置,比如下面配置一些应用加载的配置文件:
<!-- 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>标签配置响应的参数。
下面举一个简单的例子,在web.xml中配置应用应用上下文参数
<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类,获取这写参数并返回到前端线上。
@WebServlet(name = "contextParameterServlet", urlPatterns = "/contextParameter")
public class ContextParameterServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//使用getInitParameter获取配置的初始化参数
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的方式获取相应的参数。
在浏览器中访问 http://localhost:8080/contextParameter 会看到如下的结果:

2. 使用Servlet初始化参数
上面是使用servletContext获取初始化参数,这个参数是整个上线文共享的,如果只想在单个servlet中配置一些参数,可以使用在web.xml文件中的<servlet>标签内配置<init-param>标签,下面举个例子。
@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类进行获取
ServletConfig sc = this.getServletConfig();
String server = sc.getInitParameter("server");
String database = sc.getInitParameter("database");
resp.getWriter().println("server : [" + server + "] database : [" + database + "]");
}
}
在获取servlet的配置参数时,使用ServletConfig类进行获取。
上面的代码使用了注解的方式进行配置,配置的初始化参数使用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>
网友评论