一、注解方式
1.1 使用Servlet3注解方式写一个Servlet
java
@WebServlet(urlPatterns = "/testServlet",initParams = {
@WebInitParam(name="name",value="wno704")
})
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = -4316351735748478174L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = req.getParameter("name");
resp.getWriter().println("he " + name + " hello world");
resp.getWriter().flush();
resp.getWriter().close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
1.2 在启动类添加注解扫描servlet
java
@ServletComponentScan(basePackages = "com.wno704.boot.servlet")
1.3 测试
启动项目,访问http://localhost:8080/testServlet?name=wno7042

二、通过SpringBoot配置类实现
2.1 编写一个普通servlet类
java
public class HeServlet extends HttpServlet {
private static final long serialVersionUID = -4316351735748478173L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().println("he servlet hello world");
resp.getWriter().flush();
resp.getWriter().close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
2.2 编写一个springboot配置类
java
@Configuration
public class WebConfig {
@Bean
public ServletRegistrationBean heServletRegistrationBean() {
ServletRegistrationBean registration = new ServletRegistrationBean(new HeServlet(),"/heServlet");
return registration;
}
}
2.3 测试
启动项目,访问http://localhost:8080/heServlet

三、动态注册
3.1 编写一个普通的Servlet类
java
public class HeServlet extends HttpServlet {
private static final long serialVersionUID = -4316351735748478173L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().println("he servlet hello world");
resp.getWriter().flush();
resp.getWriter().close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
3.2编写一个Servlet注册类
java
@Component
public class ServletConfig implements ServletContextInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
ServletRegistration iniServlet = servletContext.addServlet("iniServlet", HeServlet.class);
iniServlet.addMapping("/iniServlet");
//iniServlet.setInitParameter("name","wno704");
}
}
3.3 测试
启动项目,访问http://localhost:8080/iniServlet
