欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

实验4Servlet容器模型Word版

  • 资源ID:35468261       资源大小:91KB        全文页数:8页
  • 资源格式: DOC        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

实验4Servlet容器模型Word版

传播优秀Word版文档 ,希望对您有帮助,可双击去除!实验4 Servlet容器模型一、实验目的1. 掌握Web应用程序的DD文件web.xml的配置方法和作用;2. 掌握如何通过ServletConfig获取Servlet的初始化参数;3. 掌握ServletContext的概念,如何获得ServletContext对象;4. 掌握如何通过RequestDispatcher转发请求。二、实验原理Web应用程序有严格定义的目录结构,它需要一个称为部署描述文件的文件web.xml来配置。对应用程序的每个Servlet,可以在web.xml中定义若干个初始化参数,然后通过ServletConfig对象获取这些参数。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.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 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(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException response.setContentType("text/html;charset=gb2312"); PrintWriter out = response.getWriter(); out.println("<html><body>"); out.println("Servlet名称:"+servletName+"<br>"); out.println("Email地址:"+email+"<br>"); out.println("电话:"+telephone); out.println("</body></html>");【步骤2】修改web.xml文件,在其中添加下面Servlet定义和初始化参数定义<servlet> <servlet-name>configDemoServlet</servlet-name> <servlet-class>cn.edu.servlet.ConfigDemoServlet</servlet-class> <init-param> <param-name>email</param-name> <param-value>tom</param-value> </init-param> <init-param> <param-name>telephone</param-name> <param-value>8899123</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>configDemoServlet</servlet-name> <url-pattern>/configDemo.do</url-pattern> </servlet-mapping>【步骤3】在浏览器的地址栏中输入下面URL访问该Servlet:http:/localhost:8080/bookstore/configDemo.do 程序运行结果如下图所示: 图4.2 ConfigDemoServlet程序的运行结果传播优秀Word版文档 ,希望对您有帮助,可双击去除!(三)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 public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException response.setContentType("text/html;charset=GB2312");PrintWriter out = response.getWriter();ServletContext sc = getServletContext();out.println("<html>");out.println("<body>");out.println("<head>");out.println("<title>获取服务器端信息</title>");out.println("</head>");out.println("<body>");out.println("<h2>服务器端信息:</h2>");out.println("<table width="500" border="1">");out.println("<tr>");out.println("<td width="175">站点名</td>");out.println("<td width="325">" + request.getServerName() + "</td>");out.println("</tr>");out.println("<tr>");out.println("<td>端口号</td>");out.println("<td>" + request.getServerPort() + "</td>");out.println("</tr>");out.println("<tr>");out.println("<td>服务器类型</td>");out.println("<td>" + sc.getServerInfo() + "</td>");out.println("</tr>");out.println("<tr>");out.println("<td>支持Servlet版本</td>");out.println("<td>"+sc.getMajorVersion()+"."+sc.getMinorVersion()+"</td>");out.println("</tr>");out.println("<tr>");out.println("<td>服务器属性</td>");out.println("<td>");/ 获得服务器属性集合Enumeration attributes = sc.getAttributeNames();while (attributes.hasMoreElements() String name = (String)attributes.nextElement();out.println(name);传播优秀Word版文档 ,希望对您有帮助,可双击去除!out.println("</td>");out.println("</tr>");out.println("</table>");out.println("</body>");out.println("</html>");图4.3 ServerInfo程序的运行结果(六)简单的综合应用(代码见附录)【步骤1】创建一个名为input.html的HTML页面,其中包括一个表单,表单中包含两个文本域,分别供用户输入学号和姓名,该页面也包含提交和重置按钮。【步骤2】定义一个名为cn.edu.jp.data.Student类,其中包括学号sno和姓名name两个private的成员变量,定义访问和修改sno和name的方法。【步骤3】编写名为FirstServlet的Servlet,要求当用户在input.html中输入信息后点击“提交”按钮,请求FirstServlet对其处理。在FirstServlet中使用表单传递的参数(学号和姓名)创建一个Student对象并将其作为属性存储在ServletContext对象中,然后获得通过ServletContext的getRequestDispatcher()方法获得RequestDispatcher()对象,将请求转发到SecondServlet。【步骤4】在SecondServlet中取出ServletContext上存储的Student对象,并显示输出该学生的学号和姓名。在SecondServlet的输出中应该包含一个超链接,点击该连接可以返回input.html页面。传播优秀Word版文档 ,希望对您有帮助,可双击去除! 图4.4 input.html页面显示结果 图4.5 SecondServlet显示结果四、思考题1. 如何通过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文件web.xml的配置方法和作用,以及如何通过ServletConfig获取Servlet的初始化参数,了解ServletContext的概念,懂得如何获得ServletContext对象,进而掌握如何通过RequestDispatcher转发请求。相信通过本次实验,我们对这方面的知识能了解得更加深刻,对以后的学习也会有所帮助。六、附录代码【步骤1】input.html<!DOCTYPE html><html> <head> <title>input.html</title><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <form action="FirstServlet" method="post"> 学号:<input type="text" name="id"><br> 姓名:<input type="text" name="name"><br>传播优秀Word版文档 ,希望对您有帮助,可双击去除! <input type="submit" value="提交" > <input type="reset" value="重置" > </form> </body></html>【步骤2】Student类package cn.edu.jp.data;public class Student 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】FirstServletpackage 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.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 = new 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】SecondServletpackage 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.IOException;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, HttpServletResponse 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("<html>"); pw.println("<head>"); pw.println("</head>"); pw.println("<body>"); pw.println("<h3>学号:"+id+"</h3><p>"); pw.println("<h3>姓名:"+name+"</h3><p>"); pw.println("<a href="/test2/input.html">返回</a>"); pw.println("</body>"); pw.println("</html>");

注意事项

本文(实验4Servlet容器模型Word版)为本站会员(仙***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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