前言:
1.servlet是服务器中核心处理单元,
2.服务器中有多个不同的servlet,每一个servlet负责不同的业务,处理不同的请求
3.servlet的对象创建和调用其方法,都是tomcat来完成的。
4.一个类必须实现servlet这个接口,才能算是servlet的家族成员。
一.原始方法(实现Servlet接口)
1.创建一个类,实现javax.servlet.Servlet这个接口
2.在web.xml中配置:
servlet标签:告诉服务器servlet在哪儿,还给servlet取个小名
servlet-mapping标签:告诉浏览器如何访问到该servlet,提供url访问路径,同时和servlet标签关联
- web.xml内容:
- 对应响应服务的类:
Servlet接口,共5个方法,其中3个是生命周期方法:init() service() destroy()
- 启动服务
- 在网址中输入:
- 对应输出:
ps:
1.只有web文件夹下的内容才会被部署在服务器上
2.web文件夹下的WEB-INF文件夹里面的资源是受保护的,不能直接被访问
二.方法二(继承GenericServlet抽象类)
GenericServlet抽象类,实现了Servlet接口,保留service方法仍是抽象,其它方法做了空实现。
- web.xml:
- 对应响应服务的类:
方法三(继承HttpServlet)
HttpServlet封装了http协议的抽象类,继承GenericServlet,重写了service方法,自定义了doGet/doPost方法,用来分别处理get请求和post(表单提交)请求。并在自己的service方法中对请求方式进行判断,然后分别调用doGet和doPost.
- web.xml:
- 对应响应服务的类:
- 浏览器直接输入为get请求:
对应输出 - 表单提交method = “post” (也可以选择get)请求:
index.jsp内容:
点击提交,对应输出:
方法四(注解版)
在方法三的基础上,添加注解,其目的是不需要在web.xml文件中写响应的标签,简化了其代码量。
1.多个路径,数组的形式 @WebServlet({"/cs","/css","/ccs"})
2.单路径,(常用方式),例如:/cs 或 /*
3.两层路径,例如:/cs/aa 或 /cs/* //
4.后缀名形式,例如:cs.do 或 *.do
对应的响应类:
在浏览器中输入需访问的url:
对应的输出: