servlet定义

servlet定义:

Servlet是一个Java应用程序,运行在服务器端,用来处理客户端请求并作出响应的程序。

Servlet多线程体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。

当客户端第一次请求某个Servlet时,Servlet容器将会根据web.xml配置文件实例化这个Servlet类,此时它贮存于内存中。。当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有多个线程在使用这个实例。这样,当两个或多个线程同时访问同一个Servlet时,可能会发生多个线程同时访问同一资源的情况,数据可能会变得不一致。所以在用Servlet构建的Web应用时要注意线程安全的问题。每一个请求都是一个线程,而不是进程,因此,Servlet对请求的处理的性能非常高。

对于Servlet,它被设计为多线程的(如果它是单线程的,你就可以想象,当1000个人同时请求一个网页时,在第一个人获得请求结果之前,其它999个人都在郁闷地等待),如果为每个用户的每一次请求都创建一个新的线程对象来运行的话,系统就会在创建线程和销毁线程上耗费很大的开销,大大降低系统的效率。

因此,Servlet多线程机制背后有一个线程池在支持,线程池在初始化初期就创建了一定数量的线程对象,通过提高对这些对象的利用率,避免高频率地创建对象,从而达到提高程序的效率的目的。(由线程来执行Servletservice方法,servletTomcat中是以单例模式存在的, Servlet的线程安全问题只有在大量的并发访问时才会显现出来,并且很难发现,因此在编写Servlet程序时要特别注意。线程安全问题主要是由实例变量造成的,因此在Servlet中应避免使用实例变量。如果应用程设计无法避免使用实例变量,那么使用同步来保护要使用的实例变量,但为保证系统的最佳性能,应该同步可用性最小的代码路径)

Struts2的Action是原型,非单实例的;会对每一个请求,产生一个Action的实例来处理。

解决servlet线程安全的方案:同步对共享数据的操作 Synchronized (this){...}、避免使用实例变量

①客户端向服务器端发出请求;

②这个过程比较重要,这时Tomcat会创建两个对象:HttpServletResponse和HttpServletRequest。并将它们的引用(注意是引用)传给刚分配的线程;

③线程开始着手接洽servlet;

④servlet根据传来的是GET和POST,分别调用doGet()和doPost()方法进行处理;

⑤和⑥servlet将处理后的结果通过线程传回Tomcat,并在之后将这个线程销毁或者送还线程池;

⑦Tomcat将处理后的结果变成一个HTTP响应发送回客户端,这样,客户端就可以接受到处理后的结果了。

时间: 2024-10-04 23:10:54

servlet定义的相关文章

JSP/Servlet Web 学习笔记 DayFour

Servlet概述 Servelt是使用Java Servlet应用程序接口及相关类和方法的Java程序. Servlet是用Java编写的Server端程序,它与协议和平台无关.Servlet运行于Java服务器中. Java Servlet API 定义了Servlet和服务器之间的标准接口,这使得Servlet具有跨服务器平台的特性. 通常,Servlet采用一种无状态的“请求-响应”模型来访问.它能处理客户端传来的Http请求,从中提取参数,处理业务逻辑,最终返回数据或输出HTML.它还

web开发技术中Servlet技术的概述

1.servlet是什么:servlet是一个位于服务器端的java应用程序它可以像jsp一样,直接输出信息 servlet类必须继承HttpServlet类,否则,不能称为serlvet servlet类是一个java类,但是有自己的规则servlet必须在web.xml文件中注册服务器在启动的时候,可以根据这些配置来加载servlet类....... 2.servlet作用:C:控制层serlvet主要用来做控制转发,需要结合到MVC模式(套路) 3.servlet生命周期:initserv

Servlet入门总结及第一个Servlet程序 (转载)

转载请注明出处http://blog.csdn.net/evankaka 一了解Servlet的概念 二Servlet技术功能 三 Servlet技术特点 四 Servlet生命周期 五servlet工作过程 六 Servlet与JSP区别 七Servlet代码结构 八 Servlet第一个程序 一.了解servlet 概念 Servlet定义:Servlet是基于Java技术的Web组件,由容器管理并产生动态的内容.Servlet引擎作为WEB服务器的扩展提供支持Servlet的功能.Serv

Java Servlet系列之Servlet生命周期

Servlet生命周期定义了一个Servlet如何被加载.初始化,以及它怎样接收请求.响应请求,提供服务.在讨论Servlet生命周期之前,先让我们来看一下这几个方法: 1. init()方法 在Servlet的生命周期中,仅执行一次init()方法,它是在服务器装入Servlet时执行的,可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet.无论有多少客户机访问Servlet,都不会重复执行init(): 2. service()方法 它是Servlet的核心,每当

Servlet入门总结及第一个Servlet程序

目录 一了解Servlet的概念 二Servlet技术功能 三 Servlet技术特点 四 Servlet生命周期 五servlet工作过程 六 Servlet与JSP区别 七Servlet代码结构 八 Servlet第一个程序 一.了解Servlet的概念 Servlet定义:Servlet是基于Java技术的Web组件,由容器管理并产生动态的内容.Servlet引擎作为WEB服务器的扩展提供支持Servlet的功能.Servlet与客户端通过Servlet容器实现的请求/响应模型进行交互.

servlet部署到tomcat中

引用:http://blog.csdn.net/shuidao/article/details/1738059 配置,部署 servlet: 1. 在tomcat的安装目录下 找到webapps 文件夹,在里面新建一个文件夹,这作为你的网站根文件夹,名字随意取, 本文叫做 serv 文件夹.位置为 /webapps/serv 通过 http://127.0.0.1:8080 /serv   可以访问到这个位置(现在没有文件,访问会出错).可以写一个测试文件,index.html 放在这个文件夹下

J2EE进阶技术标准(1)——Servlet/JSP

Servlet/JSP Servlet定义:部署在java的Web服务器上的组件,整个java服务端程序都构建在Servlet之上,以多线程方式提 供服务,具有效率高,可扩展,可移植的特点. JSP的定义: 所有JSP页面在执行过程中,都会被变异成Servlet,由JSP页面生成的Servlet叫做"JSP"页面实现类,可以把 JSP理解为嵌入了Java语句的HTML页面文件. Servlet与JSP的关系: 在页面展现上,Servlet通过输出HTML语句来实现动态页面,如果SUN不

在servlet中的xml配置

今天弄了大半天,才弄好了,还是请教了别人,主要原因在于把web.xml文件放在了WEB-INF文件夹下面了,正常的情况是在WebRoot下面的. 还有一个,我是在MyEclipse中操作的,起初不知道,在创建web project时候,没有出现web.xml文件,所以web.xml文件都是复制过来的. 在这里,给大家讲讲怎么在创建web project的时候也一起创建了web.xml文件. (1)在创建web project工程时,写好name后,不要直接点Finash,我就是直接点了Finas

JSP与Servlet的关系

http://blog.csdn.net/kaixinbingju/article/details/9409927 Servlet是Java提供的用于开发Web服务器应用程序的一个组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容.Servlet是平台独立的Java类,编写一个Servlet,实际上就是按照Servlet规范编写一个Java类. 如图所示,Java提供一系列接口类(所谓接口类就是类中所有方法只提供方法声明,不提供任何的方法实现,这些类的实现就留给后继者去做.):