配置嵌入式服务器

一、如何定制和修改Servlet容器的相关配置

修改和server有关的配置(ServerProperties)

properties 复制代码
server.port=8081
server.context‐path=/tx
server.tomcat.uri-encoding=UTF-8

二、注册servlet三个组件【Servlet、Filter、Listener】

由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件。之前这三个都是配置在web.xml中的,现在:

1.Sevlet

MyServlet

java 复制代码
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class MyServlet extends HttpServlet {

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

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().print("Hello Servlet");
    }
}

MyServerConfig

java 复制代码
@Configuration
public class MyServerConfig {

    /*
    * 注册三大组件
    * */
    //Servlet
    @Bean
    public ServletRegistrationBean myServlet(){
        ServletRegistrationBean registrationBean = new ServletRegistrationBean(new
                MyServlet(),"/myServlet");
        return registrationBean;
    }
}

运行:

2.Filter

MyFilter

java 复制代码
public class MyFilter implements Filter {
    public MyFilter() {
        super();
    }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("myFilter初始化...");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("MyFilter...");
        filterChain.doFilter(servletRequest, servletResponse);
    }

    @Override
    public void destroy() {

    }
}

MyServerConfig

java 复制代码
@Configuration
public class MyServerConfig {

    /*
    * 注册三大组件
    * */
    //Filter
    @Bean
    public FilterRegistrationBean myFilter(){
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        registrationBean.setFilter(new MyFilter());
        registrationBean.setUrlPatterns(Arrays.asList("/hello","/myServlet"));
        return registrationBean;
    }

}

运行:

3.Listener

MyListener

java 复制代码
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("contextInitialized ...启动");
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("contextDestroyed ...销毁");
    }
}

MyServerConfig

java 复制代码
@Configuration
public class MyServerConfig {

    /*
    * 注册三大组件
    * */
    //Listener
    @Bean
    public ServletListenerRegistrationBean myListener(){
        ServletListenerRegistrationBean<MyListener> registrationBean = new
                ServletListenerRegistrationBean<>(new MyListener());
        return registrationBean;
    }

}

运行:

相关推荐
DO_Community4 分钟前
DigitalOcean 打造 AI 原生云,帮助 AI 应用大幅降低成本与运维复杂度
运维·人工智能·agent·claude
实心儿儿8 分钟前
Linux —— 文件系统_路径解析_软硬连接
linux·运维·服务器
云达闲人12 分钟前
搭建DevOps企业级仿真实验环境:005Proxmox Web 界面操作入门
运维·devops·proxmox ve·web界面·虚拟机创建
云达闲人14 分钟前
搭建DevOps企业级仿真实验环境:004Proxmox 内核调优与虚拟化优化
linux·服务器·devops·硬件加速·linux内核调优·虚拟化优化·内存气球
运维老郭24 分钟前
Kubernetes Ingress Controller完全指南:7种选型对比+Istio集成+Gateway API迁移
运维·云原生·kubernetes
Elastic 中国社区官方博客29 分钟前
Kibana 中的查询活动:用于长时间运行搜索的实时控制塔
大数据·运维·elasticsearch·搜索引擎·全文检索·kibana
黄同学real38 分钟前
踩坑实录:离线内网服务器 Docker 部署 PaddleOCR-VL 1.5 完全指南
运维·服务器·docker
SilentSamsara38 分钟前
Python 并发基础:threading/GIL 与 multiprocessing 的选型逻辑
服务器·开发语言·数据库·vscode·python·pycharm
东北甜妹39 分钟前
K8s -Daemonset,kube-proxy,service,statefulset
linux·运维·服务器
DeepHacking42 分钟前
在电脑 B 上通过局域网 SSH 直接从电脑 A 拉取文件,用 rsync 断点续传
运维·ssh