- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
J2EE从入门到精通24-26
24.Servlet
24.1第一个Servlet程式
从Java程式设计人员的角度来看,Servlet其实就是一个Java类别,它实作javax.servlet.Servlet介面,通常会继承实作该介面的javax.servlet.GenericServlet类别或javax.servlet.http.HttpServlet类别,前者用于与协定无关的Servlet,后者专门适于处理HTTP请求与回应的Servlet。
继承GenericServlet类别的Servlet通常会改写service 方法,而继承HttpServlet类别的service 会处理request并传送给doXXX 方法,例如doGet 或doPost 方法,通常很少会去改写service ,而是改写doGet 或doPost 方法,下面就仍以一个简单的Hello!Servlet!来示范如何撰写与设定Servlet,让其可以传回一个HTML网页显示Hello!Servlet!文字:
HelloServlet.java
packageonlyfun.caterpillar;
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclassHelloServletextendsHttpServlet
publicvoiddoGet HttpServletRequestreq,
HttpServletResponseres
throwsServletException,IOException
res.setContentType text/html ;
PrintWriterout res.getWriter ;
out.println ;
out.println ;
out.println Hello!Servlet! ;
out.println ;
out.println ;
out.println Hello!Servlet! ;
out.println ;
out.println ; 为了要能编译上面这个类别,您需要将servlet-api.jar加至CLASSPATH中,在Tomcat的话servlet-api.jar是放在common/lib目录下。
doGet 处理客户端请求的GET方法,只要是客户端请求资源时是使用GET方法,就会呼叫它来处理,它获得两个参数,分别表示用户端的请求与回应,您可以回忆一下JSP的隐含对象request与response,其对应的就是HttpServletRequest与HttpServletResponse对象,您由HttpServletResponse对象取得写出至用户端的PrintWriter对象,并写出一个HTML网页至用户端,PrintWriter对象可以使用println 方法将资料写出。
假设您的Web应用程式位于webapps/myServlet/下,则编译完成的Servlet类别必须放置在WEB-INF/classes/之下,为了要让容器能知道这个Servlet的存在并实例化,您必须在WEB-INF/web.xml中告知:
web.xml
?xmlversion 1.0encoding ISO-8859-1 web-appxmlns /xml/ns/j2ee
xmlns:xsi /2001/XMLSchema-instance
xsi:schemaLocation /xml/ns/j2ee
/xml/ns/j2ee/web-app_2_4.xsd
version 2.4 MyServletExamples. display-name ServletExamples /display-name servlet-name hello /servlet-name
servlet-class
onlyfun.caterpillar.HelloServlet
/servlet-class servlet-mapping
servlet-name hello /servlet-name
url-pattern /helloServlet /url-pattern
/servlet-mapping
/web-app
在容器实例化并初始化Servlet并给予相关环境对象之前,Servlet只不过是个普通的Java类别,并不具备有Servlet的该有的功能,容器会为每一个注册的 servlet-name 实例化一个 servlet-class 指定的类别,而 url-pattern 用于指定与 servlet-name 对应的Ser
文档评论(0)