
servlet简介
servlet 是运行在 Web 服务器中的小型 Java 程序。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。
要实现此接口,可以编写一个扩展 javax.servlet.GenericServlet 的一般 servlet,或者编写一个扩展 javax.servlet.http.HttpServlet 的 HTTP servlet。
此接口定义了初始化 servlet 的方法、为请求提供服务的方法和从服务器移除 servlet 的方法。这些方法称为生命周期方法,它们是按以下顺序调用的:
- 构造 servlet,然后使用 init 方法将其初始化。
- 处理来自客户端的对 service 方法的所有调用。
- 从服务中取出 servlet,然后使用 destroy 方法销毁它,最后进行垃圾回收并终止它。
Servlet功能:
1、接受浏览器发送过来的消息。
2、给浏览器返回消息。浏览器认识html。可以动态去输出html
Servlet的生命周期
生命周期相关方法(life-cycle methods)
Servlet的生命周期通过java.servlet.Servlet接口中的init()
、service()
、和destroy()
方法表示。
Servlet的生命周期有四个阶段:加载并实例化
、初始化
、请求处理
、销毁
。
1.调用 init 方法 初始化Servlet
2.调用 Servlet中的service方法 处理请求操作
3.调用 destory方法 执行Servlet销毁的操作
- init方法:当服务器创建一个serlvet的时候,会去调用init方法。当我们第一次去访问一个servlet的时候,会去创建这个servlet对象。并且只会创建一次。如果配置了load-on-startup 表示服务器启动的时候就创建servlet实例。
- service方法:客户端每一次请求,tomcat都会去调用servcie方法。处理用户的请求。并且给其响应。每一次请求都会调用servcie方法。
- destroy 方法:当服务器销毁一个servlet的时候,会调用里面的destory方法。当我们的web服务器,正常关闭的时候,会去调用destroy方法。否则不会调用destroy的方法。
servlet实现
开发步骤:
- 编写一个java类,实现servlet接口
- 把开发好的java类部署到web服务器
手动编写第一个servlet
- 实现servlet接口(javax.servlet.Servlet)
- 重写service方法(service方法每次请求都会调用一次),当浏览器输入地址,访问servlet的时候,servlet会执行
servcie
方法。 - 在
WebContent/WEB-INF/web.xml
中配置servlet的访问路径 :浏览器访问servlet的路径 - 把项目部署到tomcat中,去启动tomcat。在地址栏中输入信息,访问servlet
Servlet实现跳转
- 第一种情况:
服务器调转/转发rd.forward(request, response);
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setAttribute("requestKey", "request值"); HttpSession session=request.getSession(); // 获取session session.setAttribute("sessionKey", "session值"); ServletContext application=this.getServletContext(); // 获取application application.setAttribute("applicationKey", "application值"); RequestDispatcher rd=request.getRequestDispatcher("target.jsp"); rd.forward(request, response); // 服务器调转/转发 }
- 第二种情况:
客户端跳转/重定向response.sendRedirect("target.jsp");
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setAttribute("requestKey", "request值"); HttpSession session=request.getSession(); // 获取session session.setAttribute("sessionKey", "session值"); ServletContext application=this.getServletContext(); // 获取application application.setAttribute("applicationKey", "application值"); response.sendRedirect("target.jsp"); // 客户端跳转/重定向 }