一、ServletConfig对象
*web.xml中配置参数。用ServletConfig读取:
<servlet> <servlet-name>ServletDemo6</servlet-name> <servlet-class>cn.gong.servlet.ServletDemo6</servlet-class> <!-- 配置后可以在ServletCongfig中读到 --> <init-param> <param-name>encoding</param-name><!-- 配置参数名 --> <param-value>utf-8</param-value><!-- 配置参数值 --> </init-param> </servlet>
*servlet中获取ServletConfig
// 获取ServletConfig对象 ServletConfig config = getServletConfig(); // 获得初始化参数 String encoding = config.getInitParameter("encoding"); // 获得所有初始化参数名 Enumeration k = config.getInitParameterNames(); // 获得Servlet的名字 String servletName = config.getServletName(); // 获得ServeltContext对象 ServletContext context = config.getServletContext();
*servlet中对ServletConfig几个方法的简单调用。 在这几个方法中调用了config对象的相应方法。
getInitParameter("encoding");
getInitParameterNames();
getServletContext();
getServletName();
二、ServletContext对象
*ServletContext对象也可以获取初始化参数。web.xml中的配置如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <!-- 配置后可以在ServletContext中读到 --> <context-param> <param-name>student</param-name><!-- 配置参数名 --> <param-value>lisi</param-value><!-- 配置参数值 --> </context-param> <servlet> <servlet-name>ServletDemo6</servlet-name> <servlet-class>cn.gong.servlet.ServletDemo6</servlet-class> <!-- 配置后可以在ServletConfig中读到 --> <init-param> <param-name>encoding</param-name><!-- 配置参数名 --> <param-value>utf-8</param-value><!-- 配置参数值 --> </init-param> </servlet> <servlet-mapping> <servlet-name>ServletDemo6</servlet-name> <url-pattern>/servlet/ServletDemo6</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
//获取ServletContext ServletContext servletContext = getServletContext(); servletContext.getInitParameter("url");
//请求转发 RequestDispatcher dispatcher = context.getRequestDispatcher("/1.html"); dispatcher.forward(request, response);
ServletContext context = getServletContext(); String realPath = context.getRealPath("WEB-INF/classes/a.txt"); InputStream in = context.getResourceAsStream("WEB-INF/classes/a.txt");
三、设置缓存
response.setDateHeader("expires", System.currentTimeMillis() + 24 * 60* 60 * 1000);
覆写getLastModified方法
@Override
protected long getLastModified(HttpServletRequest req) { String realPath = getServletContext().getRealPath("1.html"); File file=new File(realPath); long lastModified = file.lastModified(); return lastModified; }