利用Java web容器配置文件减少“硬编码”的几种方法
为减少硬编码,项目中要使用配置文件存储一些会随部署环境的变化而改变的变量值,比如别的web容器发布的子系统的跳转地址,下面是几个比较简单的实现方式。
1. 利用ServletContextservlet容器在启动时会为每个web应用创建唯一的servlet context对象,可以把ServletContext看成是一个Web 应用的服务器端组件的共享内存,在ServletContext中可以存放共享数据。ServletContext对象只在web应用被关闭的时候才被销毁,不同的web应用,ServletContext各自独立存在,其内提供的方法可以在同一web应用下的所有servlet中被使用。利用ServletContext有以下两种方式:
如果需要配置的变量值比较少,放在web.xml文件中可谓是简单明了。在web.xml文件的根节点前面的位置写下类似的配置,就可以为本web应用设置context参数:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="NearEast_Demo" version="2.5"><context-param><param-name>Author</param-name><param-value>NearEast</param-value></context-param><context-param><param-name>PersonalPage</param-name><param-value>http://blog.csdn.net/NearEast</param-value></context-param><servlet><servlet-name>DemoServlet</servlet-name><servlet-class>com.neareast.DemoServlet</servlet-class><init-param><param-name>College</param-name><param-value>JiLin University</param-value></init-param></servlet><servlet-mapping><servlet-name>DemoServlet</servlet-name><url-pattern>/servlet/DemoServlet</url-pattern></servlet-mapping><servlet><servlet-name>jspServlet</servlet-name><servlet-class>/servlet.jsp</servlet-class><init-param><param-name>nationality</param-name><param-value>China</param-value></init-param></servlet><servlet-mapping><servlet-name>jspServlet</servlet-name><url-pattern>/servlet/jspServlet</url-pattern></servlet-mapping></web-app>