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 正常工作!