springboot-8- 自定义servlet和监听器

1.自定义servlet

springboot自定义servlet,

  • 继承HttpServlet 类,重写doGet doPost方法
  • 通过@WebServlet将这个类标记为一个servlet类,并被spring管理,urlPatterns可以指定这个类能够处理的请求url
  • 主启动类上面需要加上@ServletComponentScan注解
package com.example.lchtest.springbootdemo1.customservlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**
 *  Servlet3.0注解实现原生servelt
 *  主类上面需要加上@ServletComponentScan注解
 *
 */
@WebServlet(name="userServlet",urlPatterns = "/test/servlet")
public class UserServlet extends HttpServlet {

    // http://localhost:8080/test/servlet浏览器输入该请求,将会被doget方法处理
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.print("custom servlet");
        writer.flush();
        writer.close();
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }
}

测试: 在浏览器输入http://localhost:8080//test/servlet ,将会得到响应为: custom servlet

2.自定义监听器

常用的监听器有 servletContextListener、httpSessionListener、 servletRequestListener等,自定义监听器过程如下:

  • 自定义监听器类,实现ServletContextListener 接口,重写contextInitialized() 和contextDestroyed()方法
  • 在自定义监听器类上面加上@WebListener注解,使之能够被spring管理
    自定义监听器作用: 以servletContextListener为例,它可以在应用初始化的时候做一些资源加载之类的操作,如单独开启一个线程连接redis等,在应用销毁时,关闭一些资源, 示例代码
package com.example.lchtest.springbootdemo1.customlistener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

/**
 * 自定义ServletContextListener监听器
 * 可以在应用初始化的时候做一些资源加载之类的操作,如单独开启一个线程连接redis等
 */
@WebListener
public class ContextListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("*********contextInitialized *********");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("*********contextDestroyed *********");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值