说明
使用 Servlet ,有两个步骤:
- 实现Servlet类
- 配置Servlet生效
配置方式
配置 Servlet 生效有两种方式:
- 传统方式,配置到
web.xml中 - 注解方式。好处: 使用更简单方便
方式一:传统方式
public class HelloServlet extends HttpServlet {
public HelloServlet(){
System.out.println("构造方法");
}
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("init()");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html; charset=UTF-8");
PrintWriter pw=resp.getWriter();
pw.write("get请求");
}
}
配置 web.xml
<!-- 配置Servlet -->
<servlet>
<!-- 起别名 -->
<servlet-name>HelloServlet</servlet-name>
<!-- Servlet全路径 -->
<servlet-class>top.malaoshi.HelloServlet</servlet-class>
</servlet>
<!-- 配置Servlet映射 -->
<servlet-mapping>
<!-- 上面定义的别名 -->
<servlet-name>HelloServlet</servlet-name>
<!-- 映射url,访问 http://ip:port/contextpath/hello,tomcat将请求转交给该Servlet -->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
映射多个url
<url-pattern>/hello</url-pattern>
<url-pattern>/test</url-pattern>
方式二:注解方式
@WebServlet(urlPatterns = "/hello2")
public class HelloServlet2 extends HttpServlet {
public HelloServlet2(){
System.out.println("构造方法");
}
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("init()");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html; charset=UTF-8");
PrintWriter pw=resp.getWriter();
pw.println("get请求");
}
}
映射多个url
@WebServlet(urlPatterns = {"/hello2","/test"})
常见错误
多个Servlet的url-pattern 不能重复,否则报错