注:在普通的应用或者普通的框架中,servlet的注册有两种方式,一种为注解方式,另一种为web.xml中注册方式。
在springboot框架中也有两种方式注册,一种为注解 + 扫描,另一种为注解类(对应于web.xml方式)
一、第一种方式
1、class servlet
package com.springboot.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;
import java.io.PrintWriter;
/**
* @author dc
* @date 2020/5/18 - 15:16
*/
@WebServlet("/first")
public class SomeServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("这是第一个servlet-1");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
2、class Applicaton
package com.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@ServletComponentScan(basePackages = "com.springboot.servlet")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
二、第二种方式
1、class servlet
package com.springboot.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* @author dc
* @date 2020/5/18 - 15:26
*/
public class SomeServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
out.println("这是第二个servlet-2");
out.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
2、class servletConfig
package com.springboot.config;
import com.springboot.servlet.SomeServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.servlet.Servlet;
/**
* @author dc
* @date 2020/5/18 - 15:28
*/
@Configuration //表明该类为一个配置类
public class ServletConfig {
@Bean
public ServletRegistrationBean myServlet(){
ServletRegistrationBean<Servlet> servletServletRegistrationBean =
new ServletRegistrationBean(new SomeServlet(), "/second");
return servletServletRegistrationBean;
}
}