web.xml中servlet初始化参数的设置

<context-param>
<param-name>param1</param-name>
<param-value>value1</param-value>
</context-param>
<context-param>
<param-name>param2</param-name>
<param-value>value2</param-value>
</context-param>

这些初始化参数便是整个servletContext的初始化参数,可以有多个,在整个web项目中都可以进行使用,现在一个servlet如果想用到这些初始化参数,只要用servletContext对象的getInitParameter()方法便可以得到这个servletContext的初始化参数

在MYservlet.java文件中可以通过这样的方式获得值:

public class MyServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{

ServletContext context=this.getServletContext();     //因为它继承自GenericServlet这个类,依据Tomcat版本不同,可能获取的方法会有些差异

String value1=context.getInitParameter("param1");    //通过.getInitParameter(String param)获取初始化参数值

System.out.println("context value1"+value1);

}

}

-------------------------------------------------------------------------------

<servlet>
 <!--name可以是任意的,但一般是类名-->
<servlet-name>MyServlet</servlet>
 <!--class用于指定你的servlet存放的路径-->
<servlet-class>com.web.MyServlet</servlet-class>
<!--设置各自servlet的初始化参数-->
 <!--参数1-->
<init-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
 <!--参数2-->
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mysql</param-value>
</init-param>

</servlet>

<servlet-mapping>

<!--同上-->

<servlet-name>MyServlet</servlet-name>

<!--url指定访问时的路径,这里的/指的是相对于本项目,在浏览器进行访问时,URI 是:http://localhost:8080/servlet/myServlet-->

//端口号8080/servlet是我的项目名
<url-pattern>/myServlet</url-pattern>
</servlet-mapping>

在servlet.java中访问方式跟获取context-param中的参数可以比较:

//this指代当前对象

String uri=this.getInitParameter("uri");    //获取init-param中的value值

String driver=this.getInitParameter("driver");    //获取init-param中的value值

System.out.println("uri="+uri+" "+"driver="+driver);    //打印输出

综上所述:

注意:     context-param跟init-param里面的参数值只能有一个,多个会报错。

当我们想要整个web项目中的servlet都要用某一个value值时,可以将它设置成Context-param,这样可以简化代码;如果是单个servlet用的参数,设置成init-param,按需求来定。

上一篇:用gradle把springboot项目打包成jar


下一篇:[Luogu4230]连体病原体