• springBoot之Servlet


    在web项目开发中,大部分情况下,都是通过Spring默认的DispatcherServlet,转发请求到Controller,我们在Controller里处理请求。但有时候,可能有些请求我们不希望通过Spring,而是通过其他Servlet处理。如果是普通的项目,那可以在web.xml文件中进行配置,但是springBoot中是没有web.xml的。

      在springBoot中有2中方法实现。

          其一:使用注解注册@WebServlet(urlPatterns = "/test/*",initParams = {@WebInitParam(name = "param1", value = "value1"),})

          其二:代码注册ServletRegistrationBean

                     创建一个@Bean,使用:return new ServletRegistrationBean(new TestServlet(), "/test1/");

    public class TestServlet extends HttpServlet{
        @Override
        public void init(ServletConfig config) throws ServletException {
            super.init(config);
            String value=config.getInitParameter("param1");
            log.info("param1:{}",value);
    
        }
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            PrintWriter out = resp.getWriter();
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Hello World</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("Hello");
            out.println("</body>");
            out.println("</html>");
        }
    1  @Bean
    2     public ServletRegistrationBean testServletBean() {
    3         ServletRegistrationBean testServletRegistration = new ServletRegistrationBean(new TestServlet(), "/test1/");
    4         Map<String,String> params = new HashMap<>();
    5         params.put("param1","value2");
    6         testServletRegistration.setInitParameters(params);
    7         return testServletRegistration;
    8 
    9     }
  • 相关阅读:
    Inner Classes with TypeScript
    设计模式(一)
    C++定义构造函数必须使用初始化列表的场合
    制作Linux下程序安装包——使用脚本打包bin、run等安装包
    Windows下将程序打包为安装包(最为简易的方式)
    在Linux中查看文件的编码及对文件进行编码转换
    libpcap文件格式分析
    static_cast, dynamic_cast, const_cast
    字符1与数字1
    Linux下的多线程编程
  • 原文地址:https://www.cnblogs.com/swfzzz/p/11760149.html
Copyright © 2020-2023  润新知