JSP之Servlet概述

来源:互联网 发布:关联矩阵 编辑:程序博客网 时间:2024/05/17 07:09
(1)Servlet是用Java编写的Server端程序,它与协议和平台无关。Servlet运行于Java服务器中。Java Servlet可以动态地扩展服务器的能力,并采取请求-响应模式提供web服务。
(2)Servlet运行原理:
当web服务器接收到一个HTTP请求时,它会先判断请求的内容----如果是静态网页数据,web服务器将会自行处理,然后产生响应信息;如果牵扯到动态数据,web服务器会将请求转交给Servlet容器。此时Servlet容器会找到相应的处理该请求Servlet实例来处理,结果会送回到web服务器,再由web服务器传回到客户端。针对同一个Servlet,Servlet容器会在第一次收到HTTP请求的时候创建一个Servlet实例,然后启动一个线程。第二次收到HTTP请求的时候,Servlet容器无需再创建相同的Servlet实例,而是启动第二个线程来服务客户端请求。所以多线程的服务方式不仅可以web应用程序的执行效率,也可以降低web服务器的系统负担。
(3)Servlet如何被加载和实例化
Servlet容器可以在Servlet容器加载时对Servlet进行加载和实例化,可以在Servlet响应请求时执行,也可以在两者之间的任何时候执行。Servlet容器加载完之后,首先必须要初始化Servlet,初始化的时候调用init()方法。
(4)Servlet如何处理请求

Servlet在被初始化之后就处于就绪状态,每一个Servlet都有一个请求的Servlet Request对象和响应的Servlet Response对象。当处理客户端的请求时,Servlet容器会将Servlet Request对象和Servlet Response对象转发给Servlet。这两个对象以参数的形式传给Service方法。

相应的代码案例:

package javaweb;

import java.io.*;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class FirstServlet
 */
@WebServlet("/FirstServlet")
public class FirstServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public FirstServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        this.doPost(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.setContentType("text/html;charset = utf-8");
        PrintWriter out = response.getWriter();
        out.print("这是我的第一个Servlet");
    }
    public void init(){}
    public void destory(){}

}


0 0
原创粉丝点击