13.1 使用 servlet 步骤
-
编写一个servlet类,继承 HttpServlet 类
-
配置Servlet,让框架能识别
项目结构如下:
13.1.1 创建Servlet类 MyServlet
- package com.zhanglei.web;
- 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;
- 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 {
- //运用 HttpServletResponse
- resp.setContentType("text/html;charset=UTF-8");
- PrintWriter pw= resp.getWriter();
- pw.println("welcome to Servlet");
- pw.flush();
- pw.close();
- }
- }
13.1.2 配置Servlet
要使用 Servlet,要配置它的属性,比如 url。在springboot 中,配置 servlet 的类是 ServletRegistrationBean,顾名思义,就是获取 Servlet 的bean 容器。
发现 ServletRegistrationBean 里面有一个有参构造方法,第一个参数是 Servlet 对象,另一个参数是 url,因此这样就可以配置出 Servlet:
- package com.zhanglei.config;
- import com.zhanglei.web.MyServlet;
- import org.springframework.boot.web.servlet.ServletRegistrationBean;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- //声明这是一个配置类,等效于xml文件
- @Configuration
- public class MyConfig {
- //定义一个方法getServlet,返回为 ServletRegistrationBean 类型
- //@Bean 注解是将返回的 bean对象放容器中,让框架能识别,相当于 spring 中的xml
- @Bean
- public ServletRegistrationBean getServlet(){
- ServletRegistrationBean servlet=
- new ServletRegistrationBean<>(new MyServlet(),"/myservlet");
- return servlet;
- }
- }
由于 Servlet 不属于框架里面的内容,因此要把它用@Bean 注解放入到 容器中,框架才能识别!
13.1.3 验证 Servlet
这边说个题外话,启动应用的时候,控制台显示:
由于我们未在 .properties 文件中配置 tomcat 端口号和项目名,因此默认 tomcat 端口号是8080,项目名是空!
启动应用,在浏览器输入:localhost:8080/myservlet
Servlet 正常工作!