Servlet入门指南
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Servlet入门指南
1.简介
Servlet是在Web服务器端加载并运行的Java应用程序,具体运行在Servlet引擎管理的JVM上,负责Servlet和用户的通信以及调用Servlet的方法。
Servlet和用户的通信采用请求/响应模式,用于以动态响应客户机请求形式扩展Web服务器(Web Container)的功能。
Servlet是一个执行在服务器端的Java Class文件,载入前必须先将Servlet程序代码编译成.class文件,然后将此class文件放在servlet Engline 路径下。
Servlet API使用javax.servlet和javax.servlet.http两个包的接口类。
Servlet是开发服务器端应用程序的一个很好选择, Servlet与JSP结合使用,能提供更强大的服务器端功能。
Servlet的最大的缺点是不能有效地管理页面的逻辑部分和页面的输出部分,导致Servlet代码非常混乱,而用JSP和JavaBean/Servlet结合可以有效地管理页面的逻辑部分和页面的输出部分。
当服务器上的一个JSP网页被第一次请求执行时,服务器上的JSP引擎首先将JSP页面文件转译成一个Java文件,再将这个Java文件编译成class字节码文件(即Servlet类),然后执行以响应客户的请求,当这个JSP页面再次被请求执行时,JSP引擎将直接执行这个字节码文件来响应客户,响应速度比第一次执行快很多。
两者可以互相调用,一般Servlet较多应用于业务逻辑(页面HTML输出不多或没有),而JSP偏重于数据展现,同一份数据可以用不同形式的视图来展现。
2. 基本引擎分类
●大多数的J2EE服务器,如:BEA WebLogic,WebSphere Application,
JBoss等。
●具有内置Servlet容器的Web服务器,如:Tomcat。
●使用Servlet引擎插件的产品,如JRun、 Apache Web服务器、Microsoft
IIS等,这些产品都需要安装Web插件来集成Java运行时环境
3. Servlet 处理请求的过程
1.用户从客户机将HTTP请求发送给Web服务器。
2.Web容器实例化Servlet,并创建线程。
3.Web服务器将该请求发送给Servlet。
4.Servlet处理该请求。
5.Servlet将响应发送给Web服务器。
6.Web服务器将响应转发送给客户机。
Servlet被发来的第一个请求激活,然后继续运行于后台,以线程形式处理请求,速度非常快,直到Servlet被修改时才再次加载。
一个Servlet在同一时刻只有一个实例,并且它在Sevlet的使用期间将一直保留。
4. Servlet的生命周期
(1)初始化阶段
在下列情形下Web容器装入Servlet,创建一个Servlet实例,调用Servlet 的init()方法对Servlet实例初始化:
∙Servlet容器启动时。
∙在Servlet容器启动后,客户首次向Servlet发出请求。
∙Servlet的类文件被修改后,重新加载。
(2)服务阶段
如果容器接收到对此Servlet的请求,那么它根据配置文件Web.xml中URL
与Servlet映射关系将请求转发至此Servlet的service()方法。
service()方法中调用doGet()或doPost()。
(3)终止阶段
实例被销毁,通过调用Servlet的destory()方法来销毁Servlet,关闭数据库连接、中断后台线程等。
5. Tomcat 的主要目录结构
① /bin:存放Tomcat服务器的可执行文件和运行用的Jar包。
② /conf :存放Tomcat服务器的各种配置文件,其中最重要的是server.xml。
③ /server :包含3个子目录classes、lib和webapps。
④ /common/lib 存放Tomcat服务器以及所有Web应用都可以访问的JAR。
⑤ /logs:存放了Tomcat的日志文件。
⑥ /webapps:当发布Web应用时,默认情况下把Web应用文件放于此目录下。
⑦ /work:Tomcat把由JSP生成的Servlet放于此目录下。
其中server.xml是用于整个Web服务器的,可以配置Web服务器的端口、应用目录、应用的入口、用户访问安全等信息。
6.Web应用的目录结构
Web应用有固定的结构,在/webapps目录下创建一个目录myapp。
则这个Web 应用的目录结构如下:
① /myapp:Web应用的根目录,所有的JSP和Html文件都存放在该目录下。
② /myapp/WEB-INF:存放Web应用的描述文件web.xml。
③ /myapp/WEB-INF/classes:存放各种class文件,servlet类文件也存放与该目录下。
④/myapp/WEB-INF/lib:存放Web应用所需的各种JAR文件。
如可以存放JDBC 驱动程序的JAR文件。
示例Servlet程序如下所示:
import java.io.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>Hello Servlet</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("<B>Hello, World !</B>");
out.println("</BODY>");
out.println("</HTML>");
out.close();
}
}
7.配置文件web.xml
Java Web 应用通过一个基于XML的发布描述文件来配置其发布信息。
Web.xml文件中可包含的配置信息有:
① Servlet的定义;
② Servlet的初始化参数;
③ Servlet以及JSP的映射;
④安全域配置参数;
⑤资源引用;
⑥环境变量的定义。
配置文件web.xml可以自己编写,也可以从其他应用(如Root、JSP-examples、servlets-examples等)目录下拷贝过来修改。
8.部署Servlet文件的步骤
①编写Servlet并编译成class文件,编译时,将servlet-api.jar文件(在/common/lib 目录下)加入到classpath中;
②将编译好的class文件拷贝到应用的WEB-INF/classes/下(如
/myapp/WEB-INF/classes/);
③在web.xml中进行配置 <servlet> 、<servet-mapping>,具体可参见下面的web.xml,在<web-app>...</web-app>之间添加如下内容:
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet/*</url-pattern>
</servlet-mapping>
保存web.xml文件,注意,备份修改前的web.xml。
重新启动Tomcat访问HelloServlet .class即可。
注意:如果Tomcat已经启动,需要重启Tomcat。