Servlet是使用Java Servlet应用程序设计接口及相关类和方法的Java程序。它在Web服务器上或应用服务器上运行并扩展了该服务器的能力。Servlet装入Web服务器并在Web服务器内执行。
Servlet是以Java技术为基础的服务器端应用程序组件,Servlet的客户端可以提出请求并获得该请求的响应,它可以是任何Java程序、浏览器或任何设备。
Servlet运行原理
当Web服务器接收到一个HTTP请求时,它会先判断请求内容——如果是静态网页数据,Web服务器将会自行处理,然后产生响应信息;如果牵涉到动态数据,Web服务器会将请求转交给Servlet容器。此时Servlet容器会找到对应的处理该请求的Servlet实例来处理,结果会送回Web服务器,再由Web服务器传回用户端
Servlet的优点
可移植性好:Servlet是用Java语言编写的,具有完善的Servlet API标准,企业编写的Servlet程序,可以轻松地移植到其他服务器中。
执行效率高:Servlet请求到来的时候激活Servlet,请求处理完,等待新的请求,新的请求将生成一个线程而不是进程。
使用方便:Servlet可以轻松地处理HTML表单数据,并读取和设置HTTP头,处理Cookie,跟踪会话。
Servlet的生命周期
重定向和请求分派
示例:重定向的应用--客户端发出URL为“http://localhost:8080 /jsp_04_servlet/servlet1?name=test”的请求,服务器用“Servlet1”来处理这个请求,在处理方法中通过sendRedirect重定向到第二个Servlet,即“Servlet2”上。
请求分派
Servlet API中定义了一个RequestDispatcher接口,俗称请求分派器。它定义了如下两个方法:
public void forward(ServletRequest request,ServletResponse response)
throws ServletException,IOException;
public void include(ServletRequest request, ServletResponse response)
throws ServletException,IOException