========================================
Servlet概述
servlet,服务器端的小程序,它是相对于applet而言的,我们可以将其看做是运行于服务端的applet。servlet接收来自网络的请求(form表单,以及其他的请求),并对不同请求作出不同的响应。
使用servlet的基本流程如下:
(1)客户端(很可能是Web浏览器)通过HTTP提出请求。
(2)Web服务器接收该请求并将其发给servlet,如果这个servlet尚未被加载,Web服务器将吧它加载到Java虚拟机并执行它。
(3)servlet就爱你个接收该HTTP请求并执行某种处理。
(4)servlet将向Web服务器返回应答。
(5)Web服务器将从servlet收到的应答发送给客户端。
servlet的优点:
(1)servlet是持久的。servlet只需要Web服务器加载一次,就可以在不同请求之间保持服务。
(2)servlet是与平台无关的。如前所述,servlet是用Java编写的,它自然也继承了Java平台无关性。
(3)servlet是可以扩展的。
(4)servlet是安全的。从外界调用一个servlet的唯一方法就是通过Web服务器,Web服务器所具有的安全保障servlet自然也具有。
(5)servlet可以在多种多样的客户机上使用。
========================================
编写第一个servlet
编写一个servlet一般经过如下两个步骤:
(1)创建一个扩展了javax.servlet.http.HttpServlet接口的servlet类。javax.servlet.http.HttpServlet接口是javax.servlet.GenericServlet的扩展接口,它包含了分析HTTP首部和将客户端信息打包到javax.servlet.http.HttpServletRequest类中的相关代码。
(2)配置web.xml文件,将我们创建的servlet装载到应用中。
HelloWorldServlet.java
package com.darkmi.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloWorldServlet extends HttpServlet {
public HelloWorldServlet() {
super();
}
public void destroy() {
super.destroy(); // Just puts “destroy” string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
out.println(““);
out.println(““);
out.println(”
out.println(” “);
out.println(” hello world!”);
out.println(” “);
out.println(““);
out.flush();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
public void init() throws ServletException {
// Put your code here
}
}
web.xml
访问地址:http://localhost:8080/rose/servlet/HelloWorldServlet
========================================
Sorry, the comment form is closed at this time.
No comments yet.