Servlet Config Extension(一)

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()));
    }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值