实验4Servlet容器模型Word版

上传人:仙*** 文档编号:35468261 上传时间:2021-10-27 格式:DOC 页数:8 大小:91KB
收藏 版权申诉 举报 下载
实验4Servlet容器模型Word版_第1页
第1页 / 共8页
实验4Servlet容器模型Word版_第2页
第2页 / 共8页
实验4Servlet容器模型Word版_第3页
第3页 / 共8页
资源描述:

《实验4Servlet容器模型Word版》由会员分享,可在线阅读,更多相关《实验4Servlet容器模型Word版(8页珍藏版)》请在装配图网上搜索。

1、传播优秀Word版文档 ,希望对您有帮助,可双击去除!实验4 Servlet容器模型一、实验目的1. 掌握Web应用程序的DD文件web.xml的配置方法和作用;2. 掌握如何通过ServletConfig获取Servlet的初始化参数;3. 掌握ServletContext的概念,如何获得ServletContext对象;4. 掌握如何通过RequestDispatcher转发请求。二、实验原理Web应用程序有严格定义的目录结构,它需要一个称为部署描述文件的文件web.xml来配置。对应用程序的每个Servlet,可以在web.xml中定义若干个初始化参数,然后通过ServletConfig

2、对象获取这些参数。ServletContext对象表示该应用程序的环境,通过该对象可以获得应用程序范围的初始化参数、容器版本信息、资源的URL、在其中存放共享数据以及登录日志等。三、实验内容与步骤(一)名为bookstore的Web应用程序的目录结构在Tomcat的webapps目录下,项目目录结构如下所示。 |- bookstore|- html (包含所有的HTML文件)|- jsp (包含所有的JSP文件)|- images (包含所有的GIF、JPEG和BMP图象文件)|- index.html (默认的HTML文件)|- WEB-INF |-classes lib web.xml图4

3、.1 bookstore应用程序的目录结构这样就建立了一个名为bookstore的Web应用程序,本实验后面的题目都在该应用程序下面完成。(二)使用ServletConfig检索Servlet的初始化参数【步骤1】编写ConfigDemoServlet程序,内容如下:package cn.edu.servlet;import java.io.*;import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;public class ConfigDemoServlet extends HttpServletString

4、servletName=null;ServletConfig config=null;传播优秀Word版文档 ,希望对您有帮助,可双击去除!String email=null;String telephone=null;public void init() config = getServletConfig();servletName = config.getServletName();email = config.getInitParameter(email);telephone = config.getInitParameter(telephone);public void service

5、(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException response.setContentType(text/html;charset=gb2312); PrintWriter out = response.getWriter(); out.println(); out.println(Servlet名称:+servletName+); out.println(Email地址:+email+); out.println(电话:+telephone); out

6、.println();【步骤2】修改web.xml文件,在其中添加下面Servlet定义和初始化参数定义 configDemoServlet cn.edu.servlet.ConfigDemoServlet email tom telephone 8899123 1 configDemoServlet /configDemo.do 【步骤3】在浏览器的地址栏中输入下面URL访问该Servlet:http:/localhost:8080/bookstore/configDemo.do 程序运行结果如下图所示: 图4.2 ConfigDemoServlet程序的运行结果传播优秀Word版文档 ,希

7、望对您有帮助,可双击去除!(三)ServletContext的使用修改上面程序,将email地址和电话使用ServletContext初始化参数传递给ConfigDemoServlet。使用ServletContext对象将email地址和电话信息写入日志文件中,并查看日志文件。(五)下面是一个Servlet,它可以获得有关服务器的信息。package cn.edu.servlet;import java.io.*;import java.util.*;import javax.servlet.*;public class ServerInfo extends GenericServlet p

8、ublic void service(ServletRequest request, ServletResponse response) throws ServletException, IOException response.setContentType(text/html;charset=GB2312);PrintWriter out = response.getWriter();ServletContext sc = getServletContext();out.println();out.println();out.println();out.println(获取服务器端信息);o

9、ut.println();out.println();out.println(服务器端信息:);out.println();out.println();out.println(站点名);out.println( + request.getServerName() + );out.println();out.println();out.println(端口号);out.println( + request.getServerPort() + );out.println();out.println();out.println(服务器类型);out.println( + sc.getServerIn

10、fo() + );out.println();out.println();out.println(支持Servlet版本);out.println(+sc.getMajorVersion()+.+sc.getMinorVersion()+);out.println();out.println();out.println(服务器属性);out.println();/ 获得服务器属性集合Enumeration attributes = sc.getAttributeNames();while (attributes.hasMoreElements() String name = (String)a

11、ttributes.nextElement();out.println(name);传播优秀Word版文档 ,希望对您有帮助,可双击去除!out.println();out.println();out.println();out.println();out.println();图4.3 ServerInfo程序的运行结果(六)简单的综合应用(代码见附录)【步骤1】创建一个名为input.html的HTML页面,其中包括一个表单,表单中包含两个文本域,分别供用户输入学号和姓名,该页面也包含提交和重置按钮。【步骤2】定义一个名为cn.edu.jp.data.Student类,其中包括学号sno和姓

12、名name两个private的成员变量,定义访问和修改sno和name的方法。【步骤3】编写名为FirstServlet的Servlet,要求当用户在input.html中输入信息后点击“提交”按钮,请求FirstServlet对其处理。在FirstServlet中使用表单传递的参数(学号和姓名)创建一个Student对象并将其作为属性存储在ServletContext对象中,然后获得通过ServletContext的getRequestDispatcher()方法获得RequestDispatcher()对象,将请求转发到SecondServlet。【步骤4】在SecondServlet中取

13、出ServletContext上存储的Student对象,并显示输出该学生的学号和姓名。在SecondServlet的输出中应该包含一个超链接,点击该连接可以返回input.html页面。传播优秀Word版文档 ,希望对您有帮助,可双击去除! 图4.4 input.html页面显示结果 图4.5 SecondServlet显示结果四、思考题1. 如何通过ServletConfig获得Servlet参数?答:通过ServletConfig接口中的方法获取参数,通过getServletName()获取Servlet的实例名,通过getInitParameter(“name”)获取name的初始化参

14、数。2. 如何获得ServletContext对象,如何通过该对象获得上下文参数?答:Servlet容器在初始化Servlet时向其传入一个ServletConfig对象,通过该对象的getServletContext()方法得到ServletContext对象,从而获得上下文参数。 3. 如何使用ServletContext共享数据?答:首先将数据作为属性通过setAttribute(name,name)方法存入ServletContext对象中,然后如果在其他地方使用,则需要从ServletContext对象中通过getAttribute(name)方法取出。五、实验总结 本次实验主要是使

15、我们掌握Web应用程序的DD文件web.xml的配置方法和作用,以及如何通过ServletConfig获取Servlet的初始化参数,了解ServletContext的概念,懂得如何获得ServletContext对象,进而掌握如何通过RequestDispatcher转发请求。相信通过本次实验,我们对这方面的知识能了解得更加深刻,对以后的学习也会有所帮助。六、附录代码【步骤1】input.html input.html 学号: 姓名:传播优秀Word版文档 ,希望对您有帮助,可双击去除! 【步骤2】Student类package cn.edu.jp.data;public class Stu

16、dent private String sno; private String name; public Student(String sno, String name) this.sno = sno; this.name = name; public String getSno() return sno; public void setSno(String sno) this.sno = sno; public String getName() return name; public void setName(String name) this.name = name; 【步骤3】First

17、Servletpackage cn.edu.jp.data;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.RequestDispatcher;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet

18、.http.HttpServletResponse;public class FirstServlet extends HttpServlet 传播优秀Word版文档 ,希望对您有帮助,可双击去除!public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(UTF-8); String name = request.getParameter(name); name = ne

19、w String(name.getBytes(ISO-8859-1),UTF-8); String id = request.getParameter(id); Student s=new Student(id,name); ServletContext sc=this.getServletContext(); sc.setAttribute(s, s); RequestDispatcher rd=request.getRequestDispatcher(/SecondServlet); rd.forward(request, response);【步骤4】SecondServletpacka

20、ge cn.edu.jp.data;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOExceptio

21、n;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class SecondServlet extends HttpServlet public void doPost(HttpServletRequest request, HttpServle

22、tResponse response)throws ServletException, IOException ServletContext sc=this.getServletContext();Student st=(Student)sc.getAttribute(s); response.setCharacterEncoding(UTF-8); response.setContentType(text/html;charset= UTF-8); String name = st.getName();传播优秀Word版文档 ,希望对您有帮助,可双击去除! name = new String(name.getBytes(ISO-8859-1),UTF-8); String id = st.getSno(); PrintWriter pw = response.getWriter(); pw.println(); pw.println(); pw.println(); pw.println(); pw.println(学号:+id+); pw.println(姓名:+name+); pw.println(返回); pw.println(); pw.println();

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!