配置嵌入式服务器

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

}

运行:

相关推荐
玉石观沧海17 分钟前
高压变频器故障代码解析F67 F68
运维·经验分享·笔记·分布式·深度学习
海阳宜家电脑24 分钟前
SQL Server连接字符串
服务器·网络
努力学习的小廉1 小时前
深入了解linux网络—— 自定义协议(上)
linux·服务器·网络
野犬寒鸦2 小时前
从零起步学习Redis || 第十一章:主从切换时的哨兵机制如何实现及项目实战
java·服务器·数据库·redis·后端·缓存
要做朋鱼燕2 小时前
【AES加密专题】1.AES的原理详解和加密过程
运维·网络·密码学·c·加密·aes·嵌入式工具
yunson_Liu2 小时前
jenkins更新了gitlab后出现报错
运维·gitlab·jenkins
iconball2 小时前
个人用云计算学习笔记 --19 (MariaDB服务器)
linux·运维·笔记·学习·云计算
Lynnxiaowen2 小时前
今天我们开始学习python3编程之python基础
linux·运维·python·学习
skywalk81633 小时前
term.everything‌ 通过终端运行任意GUI应用程序
运维
dragoooon343 小时前
[Linux系统编程——Lesson6.进程切换与调度]
linux·运维·服务器