一、Servlet 的体系结构
Servlet -- 接口
|
GenericServlet -- 抽象类
|
HttpServlet -- 抽象类
* GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象
* 将来定义Servlet类时,可以继承GenericServlet,实现service()方法即可
* HttpServlet:对http协议的一种封装,简化操作
(1)定义类继承HttpServlet
(2)复写doGet/doPost方法
所以以后再使用 Servlet,可以直接继承 HttpServlet 抽象类即可
package test;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/demo")
public class ServletDemo extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.print("doGet...");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.print("doPost...");
}
}
二、Servlet 的相关配置
urlpartten:Servlet访问路径
* 一个Servlet可以定义多个访问路径 : @WebServlet({"/d4","/dd4","/ddd4"})
* 路径定义规则:
(1)/xxx:路径匹配
(2)/xxx/xxx:多层路径,目录结构
(3)*.do:扩展名匹配
/**
* Servlet路径配置
*/
// @WebServlet({"/d4","/dd4","/ddd4"})
// @WebServlet("/user/demo4")
// @WebServlet("/user/*") 表示什么样的路径都能访问
// @WebServlet("/*")
@WebServlet("*.do") // 表示xx.do,do表示自定义的扩展名
public class ServletDemo4 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("demo4...");
System.out.println(req);
}
}
只要后缀是 .action
即可