实验Servlet容器模型.docx
- 文档编号:16313644
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:10
- 大小:90.26KB
实验Servlet容器模型.docx
《实验Servlet容器模型.docx》由会员分享,可在线阅读,更多相关《实验Servlet容器模型.docx(10页珍藏版)》请在冰点文库上搜索。
实验Servlet容器模型
实验4Servlet容器模型
一、实验目的
1.掌握Web应用程序的DD文件的配置方法和作用;
2.掌握如何通过ServletConfig获取Servlet的初始化参数;
3.掌握ServletContext的概念,如何获得ServletContext对象;
4.掌握如何通过RequestDispatcher转发请求。
二、实验原理
Web应用程序有严格定义的目录结构,它需要一个称为部署描述文件的文件来配置。
对应用程序的每个Servlet,可以在中定义若干个初始化参数,然后通过ServletConfig对象获取这些参数。
ServletContext对象表示该应用程序的环境,通过该对象可以获得应用程序范围的初始化参数、容器版本信息、资源的URL、在其中存放共享数据以及登录日志等。
三、实验内容与步骤
(一)名为bookstore的Web应用程序的目录结构
在Tomcat的webapps目录下,项目目录结构如下所示。
|-bookstore
|-html(包含所有的HTML文件)
|-jsp(包含所有的JSP文件)
|-images(包含所有的GIF、JPEG和BMP图象文件)
|-(默认的HTML文件)
|-WEB-INF
|-classes
├lib
├
图bookstore应用程序的目录结构
这样就建立了一个名为bookstore的Web应用程序,本实验后面的题目都在该应用程序下面完成。
(二)使用ServletConfig检索Servlet的初始化参数
【步骤1】编写ConfigDemoServlet程序,内容如下:
package.*;
import.*;
import.*;
importclassConfigDemoServletextendsHttpServlet{
StringservletName=null;
ServletConfigconfig=null;
Stringemail=null;
Stringtelephone=null;
publicvoidinit(){
config=getServletConfig();
servletName=();
email=("email");
telephone=("telephone");
}
publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
("text/html;charset=gb2312");
PrintWriterout=();
("
");("Servlet名称:
"+servletName+"
");
("Email地址:
"+email+"
");
("电话:
"+telephone);
("");
}
}
【步骤2】修改文件,在其中添加下面Servlet定义和初始化参数定义
【步骤3】在浏览器的地址栏中输入下面URL访问该Servlet:
程序运行结果如下图所示:
图ConfigDemoServlet程序的运行结果
(三)ServletContext的使用
修改上面程序,将email地址和电话使用ServletContext初始化参数传递给ConfigDemoServlet。
使用ServletContext对象将email地址和电话信息写入日志文件中,并查看日志文件。
(五)下面是一个Servlet,它可以获得有关服务器的信息。
package.*;
import.*;
import.*;
publicclassServerInfoextendsGenericServlet{
publicvoidservice(ServletRequestrequest,ServletResponseresponse)
throwsServletException,IOException{
("text/html;charset=GB2312");
PrintWriterout=();
ServletContextsc=getServletContext();
("");
("
");("
");("
("");
("
");("
服务器端信息:
");
("
("
("
("
("
("
("
("
("
("
("
("
("
("
("
("
("
("
("
("
如何通过ServletConfig获得Servlet参数
答:
通过ServletConfig接口中的方法获取参数,通过getServletName()获取Servlet的实例名,通过getInitParameter(“name”)获取name的初始化参数。
2.如何获得ServletContext对象,如何通过该对象获得上下文参数
答:
Servlet容器在初始化Servlet时向其传入一个ServletConfig对象,通过该对象的getServletContext()方法得到ServletContext对象,从而获得上下文参数。
3.如何使用ServletContext共享数据
答:
首先将数据作为属性通过setAttribute("name",name)方法存入ServletContext对象中,然后如果在其他地方使用,则需要从ServletContext对象中通过getAttribute("name")方法取出。
五、实验总结
本次实验主要是使我们掌握Web应用程序的DD文件的配置方法和作用,以及如何通过ServletConfig获取Servlet的初始化参数,了解ServletContext的概念,懂得如何获得ServletContext对象,进而掌握如何通过RequestDispatcher转发请求。
相信通过本次实验,我们对这方面的知识能了解得更加深刻,对以后的学习也会有所帮助。
六、附录代码
【步骤1】
DOCTYPEhtml>
学号:
姓名:
【步骤2】Student类
packageclassStudent{
privateStringsno;
privateStringname;
publicStudent(Stringsno,Stringname){
=sno;
=name;
}
publicStringgetSno(){
returnsno;
}
publicvoidsetSno(Stringsno){
=sno;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
=name;
}
}
【步骤3】FirstServlet
packageclassFirstServletextendsHttpServlet{
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
("UTF-8");
Stringname=("name");
name=newString("ISO-8859-1"),"UTF-8");
Stringid=("id");
Students=newStudent(id,name);
ServletContextsc=();
("s",s);
RequestDispatcherrd=("/SecondServlet");
(request,response);
}
}
【步骤4】SecondServlet
packageclassSecondServletextendsHttpServlet{
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
ServletContextsc=();
Studentst=(Student)("s");
("UTF-8");
("text/html;charset=UTF-8");
Stringname=();
name=newString("ISO-8859-1"),"UTF-8");
Stringid=();
PrintWriterpw=();
("");
("
");("");
("
");("
学号:
"+id+"
");
("
姓名:
"+name+"
");
("
("");
("");
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 Servlet 容器 模型