核心提示:一、Servlet简介1、Servlet定义: Servlet(Server Applet)是Java Servlet的简称,是为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互...
一、Servlet简介
1、Servlet定义:
Servlet(Server Applet)是Java Servlet的简称,是为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
2、Servlet定义:
A servlet is a small Java program that runs within a Web server. Servlets receive and respond to requests from Web clients, usually across HTTP, the HyperText Transfer Protocol.
(servlet是一个java小程序运行在web服务器。servlet接收并响应来自Web客户端的请求,通常通过HTTP,超文本传输协议。)
3、Servlet实现过程:
(1)客户端发送请求至服务器端;
(2)服务器将请求信息发送至 Servlet;
(3)Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
(4)服务器将响应返回给客户端。
4、Servlet可以完成以下任务:
(1)动态生成HTML文档。
(2)将请求转发给Servlet组件。
(3)读取客户端的Cookie,以及向客户端写入Cookie。
(4)访问服务器的资源,如数据库、 XML、文件对像等。
二、Servlet底层原理:
1、javax.servlet Interface Servlet
2、javax.servlet Interface Servlet 中的method
三、Servlet实现方式
1、Servlet的实现方式一(实现Servlet接口):
package cn.hncu; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class FirstServlet implements Servlet { /**init方法*/ @Override public void init(ServletConfig paramServletConfig) throws ServletException { } /**getServletConfig方法*/ @Override public ServletConfig getServletConfig() { return null; } /**service方法*/ @Override public void service(ServletRequest paramServletRequest, ServletResponse paramServletResponse) throws ServletException, IOException { } /**getServletInfo方法*/ @Override public String getServletInfo() { return null; } /**destroy方法*/ @Override public void destroy() { } }
2、Servlet的实现方式二(继承Servlet接口的实现类:GenericServlet类、HttpServlet类):
2.1、继承实现类GenericServlet:
package cn.hncu; import java.io.IOException; import javax.servlet.GenericServlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; /**【注意】GenericServlet是抽象类,service是抽象方法*/ public class ExtendGenericServlet extends GenericServlet { /**service方法*/ /**【注意】唯独service方法没有被实现,这个service方法我们自己使用*/ @Override public void service(ServletRequest paramServletRequest, ServletResponse paramServletResponse) throws ServletException, IOException { } /**destroy方法*/ /**【注意】除过service方法之外,其他方法都已经被实现了,并且这些方法都调用父接口的方法*/ @Override public void destroy() { super.destroy(); } /**getServletConfig方法*/ @Override public ServletConfig getServletConfig() { return super.getServletConfig(); } /**getServletInfo方法*/ @Override public String getServletInfo() { return super.getServletInfo(); } /**init方法*/ @Override public void init(ServletConfig config) throws ServletException { super.init(config); } }
2.2、继承实现类HttpServlet:
package cn.hncu; import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ExtendHttpServlet extends HttpServlet { /**service方法*/ /**【注意】此service方法是HttpServlet类 继承 GenericServlet类 后实现的其抽象service方法的*/ @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.service(req, resp); } /**destroy方法*/ /**【注意】下面的这些方法全部是继承与GenericServlet类中的方法*/ @Override public void destroy() { super.destroy(); } /**getServletConfig方法*/ @Override public ServletConfig getServletConfig() { return super.getServletConfig(); } /**getServletInfo方法*/ @Override public String getServletInfo() { return super.getServletInfo(); } /**init方法*/ @Override public void init(ServletConfig config) throws ServletException { super.init(config); } }