第一种,新建一个srpingboot项目,在创建时添加web支持。

然后,创建一个MyServlet类。

复制代码
package com.example.servlet;

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;

@WebServlet(urlPatterns = "/hehe")
//访问hehe这个路径,就会调用doget和dopost
public class MyServlet extends HttpServlet {
//继承HttpServlet类,并复写doget和dopost这两个函数
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().println("my Springboot Servlet-1");
        resp.getWriter().flush();
        resp.getWriter().close();
    }

    @Override
    protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
    }
}
复制代码

然后,需要在主入口函数前加上一句 @ServletComponentScan("com.example.servlet")让springboot框架扫描到servlet的类!

这里一共用到两个注解,一个是WebServlet和@ServletComponentScan()。

 

第二种,新建一个springboot项目,在创建时添加web支持。然后,也是创建一个MyServlet类,和上面一样,只是这次再多建一个配置类,在配置类里注册相应的Servlet类,然后就可以调用这个类了。

复制代码
package com.example.config;

import com.example.servlet.MyServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration//该注解将此类定义为一个配置类(相当于一个xml配置文件)
public class ServletConfig {
//    这里的@Bean相当于xml文件中的
// <beans>
//  <bean id="" class="">
// </beans>
    @Bean
    public ServletRegistrationBean myServletRegistrationBean(){
        ServletRegistrationBean servletRegistrationBean=new ServletRegistrationBean(new MyServlet(),"/hehe");
//这里也可以改成以下方式:
//
ServletRegistrationBean servletRegistrationBean=new ServletRegistrationBean(new MyServlet());
//servletRegistrationBean.addUrlMappings("/hehe");
return servletRegistrationBean; } }
复制代码

这里就不是在主程序调用@ServletComponentScan(),而是自己写一个配置类,然后用@Configuration注解配置就可以调用了。