JSP之Servlet概述

原创 2017年01月03日 18:09:47
(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(){}

}


版权声明:本文为博主原创文章,未经博主允许不得转载。

简易jsp+servlet实现单表增删查改

jsp+servlet进行单表增删查改
  • maple082
  • maple082
  • 2016年10月23日 20:15
  • 7445

Filter和Servlet的执行顺序与实例

Filter介绍  Filter可认为是Servlet的一种“变种”,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。它与Serv...
  • Ltw518
  • Ltw518
  • 2015年11月24日 11:11
  • 451

MVC三层架构模式编程思想 JSP-Servlet-JavaBean

MVC(Mdodel-View-Controller)编程模式,把一个Java应用分成三层:模型层、视图层、控制层,各层分别实现各层的功能,整个过程见下图就一目了然了。 JSP、JavaBe...
  • u012882327
  • u012882327
  • 2014年11月06日 22:01
  • 1941

mysql+tomcat+jsp增删改查(二)

四、创建数据库   mysql>create database jsp;     mysql>use jsp mysql>create table student(   ->id int(3...
  • mengchuan6666
  • mengchuan6666
  • 2016年12月17日 11:07
  • 377

servlet简单介绍

前几天在看一本关于servlet的书,在此想进行一部分的归纳,总结。由于资历尚浅的很,所以有理解偏差,错误的地方,希望大家能指出。     在我的理解中,servlet是一个运行在Web服务器上,一个...
  • u010858001
  • u010858001
  • 2016年08月03日 20:56
  • 443

jsp/servlet第二章jsp概述

Jsp:java server pages 服务器端语言(还有asp和psp也是服务器端语言) 1.(它是在传统的网页HTML(.htm,.html)文件中插入java程序段(Scriptlet)...
  • qq_36592225
  • qq_36592225
  • 2017年11月13日 20:01
  • 31

SERVLET与JSP概述

1.1 Java Servlet及其特点    Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,J...
  • luna8418
  • luna8418
  • 2005年07月12日 16:17
  • 953

Servlet和JSP概述

1.1 Java Servlet及其特点    Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,J...
  • justinlin
  • justinlin
  • 2006年09月14日 00:02
  • 419

Jsp 与 Servlet的编译过程、原理、区别及使用

一、 编译过程 每一个JSP页面都会被Web容器编译成一个Java类,供web容器调用,并且生成HTML页面回馈给用户。而了解其中的编译方法和规则,对我们学习JSP是非常有好处的,可以说学习好了这个...
  • shenlin2011
  • shenlin2011
  • 2014年06月29日 17:00
  • 2148

[JSP]JSP到Servlet的转换

1. JSP生命周期:     1) JSP即JavaServer Pages的简称,即Java服务器生成页面,见名知意;     2) JSP和Servlet是一体两面,JSP页面最终会被转换成Se...
  • Lirx_Tech
  • Lirx_Tech
  • 2015年11月28日 14:44
  • 709
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSP之Servlet概述
举报原因:
原因补充:

(最多只允许输入30个字)