文章目录
Servlet Config Extension
post-construct、pre-destroy
post-construct
这个post-construct给servlet生命周期init之前新增一个回掉方法
pre-destroy
这个pre-destroy给servlet生命周期destroy之后新增一个回掉方法
servlet: servlet_dome01
@WebServlet(urlPatterns = "/servlet01.do")
public class servlet_dome01 extends HttpServlet {
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
System.out.println("invoke init");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("this is servlet01 doGert method");
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("invoke service");
super.service(req, resp);
}
//init之前调用的方法
@PostConstruct
public void postConstruct(){
System.out.println("invoke postConstruct");
}
//在destroy之后调用
@PreDestroy
public void predestroy(){
System.out.println("invoke predestroy");
}
@Override
public void destroy() {
System.out.println("invoke destroy");
super.destroy();
}
}
通过XML配置方式
<post-construct>
<lifecycle-callback-class>com.test.servlet_dome.controller.servlet_dome01</lifecycle-callback-class>
<lifecycle-callback-method>postConstruct</lifecycle-callback-method>
</post-construct>
<pre-destroy>
<lifecycle-callback-class>com.test.servlet_dome.controller.servlet_dome01</lifecycle-callback-class>
<lifecycle-callback-method>predestroy</lifecycle-callback-method>
</pre-destroy>
init-param属性
Servlet、Filter中可以添加的属性,意为给定初始化属性
<servlet>
<servlet-name>servlet01</servlet-name>
<servlet-class>com.test.servlet_dome.controller.servlet_dome01</servlet-class>
<init-param>
<param-name>abc</param-name>
<param-value>abc</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>servlet01</servlet-name>
<url-pattern>/servlet01.do</url-pattern>
</servlet-mapping>
//servlet中用this获得
String abc = this.getInitParameter("abc");
session-config
对servlet生成session进行默认配置
session-timeout属性
单位为分钟,当参数为0或者-1代表session不会不会超时,只到服务器重启
web.xml中配置
<session-config>
<session-timeout>1</session-timeout>
</session-config>
一个测试的servlet
public class HiServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
System.out.println("invoke doget");
HttpSession session = req.getSession();
System.out.println("session creat date :"+sdf.format(new Date(session.getCreationTime())));
}
}
cookie-config属性
对servlet中session中增加给客户端的cookic
name
cookic名字
max-age
生效最大时间
web.xml中配置
<session-config>
<cookie-config>
<name>xml_name</name>
<max-age>60</max-age>
</cookie-config>
</session-config>
一个测试的servlet
public class HiServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
HttpSession session = req.getSession();
Cookie[] cookies = req.getCookies();
System.out.println("cookies length:" + cookies.length);
System.out.println("cookie name :"+cookies[cookies.length-1].getName());
System.out.println("cookie maxage:" + cookies[cookies.length - 1].getMaxAge());
System.out.println("cookie creat date :"+sdf.format(new Date()));
}
}