1.通过注解扫描完成Servlet组件的注册(组件扫描注册);
这种方式在控制台看到了相关的输出信息,但是在浏览器打开的时候是错误的页面信息
@ServletComponentScan("com.jlt.workplat.report.servlet")
// 在SppringBoot启动时扫描@WebServlet,并将该类实例化
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 3600)
public class WorkplatWebApplication extends SpringBootServletInitializer {
public WorkplatWebApplication() {
super();
setRegisterErrorPageFilter(false);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(WorkplatWebApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(WorkplatWebApplication.class, args);
}
}
/**
*
*
* SpringBoot 整合Servlet方式1 创建servlet时需要在web.xml进行配置。 <servlet>
* <servlet-name>ServletDemo1</seevlet-name>
* <servlet-classs>com.example.combine.servlet.sbservlet.FineReportRedirectServlet</servlet-class>
* </servlet>
*
* <servlet-mapping> <servlet-name>FineReportRedirectServlet</servlet-name>
* <url-pattern>/fineReportRedirectServlet</url-pattern> </servlet-mapping>
* 但是在servlet3.0以后可以使用注释的方式来配置,且在springboot中也没有web.xml
*
*/
@WebServlet(name = "FineReportRedirectServlet", urlPatterns = "/fineReportRedirectServlet")
// 在哪个class添加了这个注释就意味着哪个class就是servlet
public class FineReportRedirectServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 8500521341954102046L;
private final Logger logger = LoggerFactory.getLogger(FineReportRedirectServlet.class);
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
logger.info("这是第一种方式:通过注解扫描完成Servlet组件的注册");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().print("<h1>Hello MyServlet Response return you this</h1>");
logger.info("这是doPost方法!");
}
}
上面的写法虽然在控制台都可以输入信息,但是页面访问显示错误。
@WebServlet(name = "FineReportRedirectServlet", urlPatterns = "/fineReportRedirectServlet", asyncSupported = true, initParams = {
@WebInitParam(name = "name", value = "javastack"), @WebInitParam(name = "sex", value = "man")})
public class FineReportRedirectServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 8500521341954102046L;
private final Logger logger = LoggerFactory.getLogger(FineReportRedirectServlet.class);
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
logger.info("整合servlet");
String name = getServletConfig().getInitParameter("name");
String sex = getServletConfig().getInitParameter("sex");
resp.getOutputStream().println("name is " + name);
resp.getOutputStream().println("sex is " + sex);
}
}
2.通过方法完成Servlet组件的注册;