JSP之Servlet概述

31 篇文章 0 订阅
23 篇文章 0 订阅
(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(){}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值