提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Servlet 技术
a)什么是 Servlet
1、Servlet 是 JavaEE 规范之一。规范就是接口
2、Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。
3、Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。
1、编写一个类去实现 Servlet 接口
2、实现 service 方法,处理请求,并响应数据
3、到 web.xml 中去配置
代码如下(示例):
public class HelloServlet implements Servlet { /** * service 方法是专门用来处理请求和响应的 * @param servletRequest * @param servletResponse * @throws ServletException * @throws IOException */ @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("Hello Servlet 被访问了"); } }
使用Servlet程序需要给该程序配置一个访问地址 这个地址一般配置在 WEB-INF下的web.xml文件中
如下配置
<?xml version="1.0" encoding="UTF-8"?> HelloServlet com.atguigu.servlet.HelloServlet HelloServlet /helloServlet 的生命周期
1、执行 Servlet 构造器方法
2、执行 init 初始化方法
第一、二步,是在第一次访问,的时候创建 Servlet 程序会调用。
3、执行 service 方法
第三步,每次访问都会调用。
4、执行 destroy 销毁方法
第四步,在 web 工程停止的时候调
1、编写一个类去继承 HttpServlet 类
2、根据业务需要重写 doGet 或 doPost 方法
3、到 web.xml 中的配置 Servlet 程序的访问地址
public class HelloServlet2 extends HttpServlet { /** * doGet()在 get 请求的时候调用 * @param req * @param resp * @throws ServletException * @throws IOException */ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("HelloServlet2 的 doGet 方法"); } /** * doPost()在 post 请求的时候调用 * @param req * @param resp * @throws ServletException * @throws IOException */ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("HelloServlet2 的 doPost 方法"); } }
web.xml配置文件
HelloServlet2 com.atguigu.servlet.HelloServlet2 HelloServlet2 /hello2我们可以通过此图来看清Servlet类的继承体系
1.Servlet接口由 GenericServlet类实现,而HttpServlet又继承了GenericServlet类我们编写Servlet程序时可以直接继承HttpServlet类来实现Servlet程序。
为什么不直接实现Servlet接口来搞Servlet程序那?
实现接口你会发现有很多方法我们无法直接使用
这里我猜想前面的Servlet接口里并没有过多的便于我们操作的方法,在GenericServlet和HttpServlet
又增加了许多不为人知的 方法与定义供我们继承使用
这次的博客就到这里吧,最近有点焦虑,觉得学校学习的课程自己学不完,但是自己也想按照自己的路线走,自己平时又懒惰,导致了现在自己处于一种两难的境地。
但是我觉得自己按照自己的路走比较稳妥一些,不然大学过完自己没什么专精到时候就很尴尬了。
加油吧最近的目标就是学完java web。