配置嵌入式服务器

一、如何定制和修改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;
    }

}

运行:

相关推荐
视觉震撼6 小时前
逐步指南:为大模型构建自动化知识图谱
运维·自动化·知识图谱
yeflx7 小时前
OpenMVS源码编译
运维
有泽改之_7 小时前
ssh命令使用
linux·运维·ssh
玩大数据的龙威7 小时前
【乱占耕地建房】—试点工作平台自动化填报系统
运维·自动化
JoyCong19988 小时前
高效远程协作指南:基于ToDesk的六大应用场景详解
运维·服务器·远程工作·远程操作
wniuniu_9 小时前
增加依据。。
服务器·网络·数据库
三不原则9 小时前
实战:混沌工程入门,模拟服务器宕机的故障演练
运维·kubernetes·chaos mesh
cws2004019 小时前
MFA双因素用户使用手册
运维·windows·网络安全·github·邮件·邮箱
筱谙10 小时前
BES BLE低功耗蓝牙技术实现分析
服务器·网络·网络协议
RisunJan10 小时前
Linux命令-last(查看用户登录历史)
linux·服务器·网络