您的位置:首页 > 其它

Servlet简介

2017-07-06 21:50 211 查看
Servlet与JSP都由SUN公司推出,其中JSP技术允许在HTML页面中嵌入Java脚本代码从而实现动态网页的功能。

Servlet是一个平台独立的Java类,编写Servlet其实就是按照Servlet规范来编写一个Java类。之后Servlet被编译为平台独立的字节码,被动态地加载到支持Java的Web容器中运行。

Servlet不能独立运行,必须被部署到Servlet容器中,由Servlet容器对其进行实例化并进行方法的调用,Servlet容器在Servlet的生命周期内对其进行管理。(Web容器、Servlet容器、JSP容器被认为是同义的)

Servlet的使用流程:用户通过单击某个链接或直接在浏览器的地址栏中输入URL来访问Servlet,Web服务器在接收到请求后,不是直接交给Servlet,而是先将其交给Servlet容器。Servlet容器对Servlet进行实例化并调用一个特定的方法产生一个响应。Servlet容器将这个响应返回给Web服务器,Web服务器将其包装成HTTP响应的形式返回给Web浏览器。

Servlet是单实例多线程的。

Servlet由Servlet容器进行管理,当客户端请求到来时,容器创建一个ServletRequest对象来封装请求数据,同时创建一个ServletResponse对象来封装响应数据。这两个对象被Servlet容器作为service()方法的参数传递给Servlet,Servlet从ServletRequest中获取客户端发来的请求数据,通过ServletResponse返回响应数据。

在javax.servlet包中,定义了ServletConfig接口。ServletConfig对象由Servlet容器构造,Servlet容器使用ServletConfig对象在Servlet初始化时向其传递配置信息,一个Servlet只有一个ServletConfig对象。可以在Servlet的init方法中使用this.getInitParameter()方法通过ServletConfig获取初始化参数。

Java开发的Web应用程序需要遵守一定的目录层级结构,在Servlet规范中定义了Web应用程序的目录层级结构,如图所示。



其中

\ch02:Web应用程序的根目录,属于此Web应用程序的所有文件都存放在这个目录下;

\ch02\WEB-INF:存放Web应用程序的部署描述符文件web.xml;

\ch02\WEB-INF\classes:存放Servlet及其它有用的类文件;

\ch02\WEB-INF\lib:存放Web应用程序需要用到的jar文件;

\ch02\WEB-INF\web.xml:web.xml文件中包含Web应用程序的配置与部署信息。

其中,classes文件夹与lib文件夹里都可以存放Java的类文件,在Servlet容器运行时,Web应用程序的类加载器将首先加载classes中的类,再加载lib中的类,若两个文件夹中的类出现重名,以classes文件夹中的类为准。另外,WEB-INF文件夹对用户是不可见的,不能通过URL进行访问,但是在Servlet代码中可以通过ServletContext的getResource()或getResourceAsStream()方法访问WEB-INF目录下的资源,也可以通过RequestDispatcher将WEB-INF下的资源呈现到客户端。因此,如果我们想在Servlet代码中访问保存在文件中的配置信息,而又不希望这些配置信息被客户端访问到,就可以把这些文件放到WEB-INF目录下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  servlet