分类: Java
2013-03-29 09:08:11
-------------------------Servlet?------------------------------------------------
------------Servlet:-------------------
他是存在于服务器端的一类实现固定接口的程序(java类),他的对象能处理客户浏览器发出的Http请求。
动态处理来自浏览器的不同内容http请求。
------------接口和类:----------------
genericServlet(子类):
httpServlet(子类):处理http请求的组件类(需要配置)
ServletConfig:(对应Servlet组件类的配置信息)
ServletRequest:
httpSerletRequest(子类):代表http请求对象,它包含了所有客户发过来的http请求数据
ServletResonse:
httpServletResonse(子类):代表响应对象,它包含了服务返回给浏览器的所有数据
-------------注意:----------------------
1.某一个WEB应用就是一个文件夹,在文件夹里有某一个servlet程序(java程序)
2.servlet容器里有很多应用(文件夹)
3.在一个服务器上有很多的WEB应用,服务器为每个应用分配不同的空间,当某一个WEB应用的空间被释放,servlet对象也被释放
-----------------------------
servlet容器应客户请求的过程------------------------------
servlet引擎检查是否已经加载并创建该servlet的实例对象.
如果对象存在:
则把servletRequest封装成对象和一个代表响应消息的servletResconse对象,然后调用servlet的
service()方法并把请求和响应对象作为参数传进去
如果不存在:
则装载并创建该servlet的一个实例对象:调用该servlet的构造器,调用servlet实例对象的init()方法。
web应用程序被停止或重新启动之前,servlet引擎将卸载servlet,并在卸载之前调用servlet的destroy()方法
-------------------------------servlet注册(映射)与运行-------------------------------
**********1.启动****************
servlet程序需要通过servlet容器来启动运行,并且存储目录有特殊要求,通长需要存储在
******2.注册(映射过程)***********
servlet程序必须在WEB应用程序的web.xml文件中进行注册和映射其访问路径,才能被servlet引擎加载和被外界访问
2.1
一个
2.2
一个
3.
4.解决方法:不用全局变量和同步代码块
-----------------------------------
servletCinfig接口---------------------------------
*********1 web.xml文件配置*************
*********2
初始化文件的配置*************
***3
对应当前发送请求信息servlet的配置信息***
浏览器发送请求信息,servlet引擎会判断该servlet对象是否被创建,没有就根据虚拟地址找到对应的全类名,并调用构造器创建servlet对象并调用init()方法.把请求信息和响应信息包装成类传入service()方法中,并把处理的信息传递给浏览器
**************4.方法*******************
getInitParameterNames();//获得servlet对象的初始化信息
getIntiParmerter();
getServletName();
getServletContext();
//获得servlet对象
------------------------------application(应用文件夹)---------------------
一个WEB应用程序中的所有servlet都共享同一个servletContext对象.被称为application对象(web应用程序对象)
********Servletcontext接口****************
1.如何得到这个接口对象:sevletConfig对象来到
2.代表当前的web应用,在这个应用被部署时会被创建.在整个应用中就一个实例,被所有的servlet所共享全局的容器)
3.功能
获取web应用程序的初始化参数
获取虚拟路径所映射的本地路径
application域范围的属性
访问资源文件
web应用程序间的访问
记录日志
servletContext的其他方法
4.servletContext对象是被所有的servletConfig所共享,可以再context对象中配置所有config的共有信息(在web.xml中
在context中配置的信息在所有的config中都可以看到!)
5.getRealpath(String path):用于返回某个虚拟路径所映射的本地路径文件系统路径
6.application域范围的属性
一个servlet向context中存放数据.另一个servlet从context中取出这个数据
-------------------------------genericservlet抽象类---------------------------------
1.得到servletconfig对象: public abstract class genericservlet inplenenta
servlet,servletconfig
当前对象servlet对象就是一个servletconfig对象
2.得到servletcontext对象
this.getservletcontext();
5.4
httpservlet接口(genericservlet的子类)
1.通过继承httpservlet来实现servlet组件?
2.post请求和get请求调用doget和dopost方法)
注意:表单需要服务器不需要应用名称
2.1
doget方法和dopost方法是有谁调用的?
service方法源码中能看到)
-------------------------servlet类的生命周期--------------------------
1.servlet对象什么时候被创建?
在第一次发出请求时
servlet容器(tomcat)创建servlet对象单例)
2.init()方法什么时候被调用?
在servlet对象第一次被创建后马上就调用init()方法
3.什么时候执行service()方法
每次发出请求时都会调用service()方法
4.什么时候执行destroy()方法
在servlet对象销毁前调用destroy()方法
原文地址: