版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验2 HTTP请求对象一、实验目的1. 掌握如何获得请求参数;2. 掌握如何检索请求头;3. 了解如何通过请求对象获得客户信息;4. 重点掌握使用请求对象存储数据和请求转发。 二、实验原理对客户的请求,容器根据请求调用Servlet的相应doXxx()方法,该方法带有两个参数,一个是HttpServletRequest,一个是HttpServletResponse,它们分别表示请求对象和响应对象,它们是容器自动创建的两个对象。可以使用这两个接口定义的若干方法完成有关操作。三、实验内容与步骤(一)通过查询串传递请求参数,并在Servlet中检索请求参数【步骤1】编写下面的Servlet。pac
2、kage ;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HelloUserServlet extends HttpServletpublic void service(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOExceptionString userName = request.getParameter("userName");Prin
3、tWriter pw = response.getWriter();pw.println("<html>");pw.println("<head>");pw.println("</head>");pw.println("<body>");pw.println("<h3>Hello, " + userName + "</h3>");pw.println("</body>");
4、pw.println("</html>");【步骤2】在MyEcipse下查看web.xml文件,关键代码如下:<servlet> <servlet-name>HelloUserServlet</servlet-name> <servlet-class>.servlet.request.HelloUserServle</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloUserSe
5、rvlet</servlet-name> <url-pattern>/myHelloUserServlet</url-pattern> </servlet-mapping>【步骤3】使用下面的URL访问之。http:/localhost:8080/prac02_request/myHelloUserServlet?userName=tom效果:将userName的值改为你自己的名字(不要使用汉字),看输出结果。若不给出查询字符串,结果如何?参数值使用汉字如何?将userName的值改为自己的名字(不使用汉字)结果如下:若不给出查询字符串结果如下:
6、参数值使用汉字结果如下:从该实验可知尽管未对response对象进行转码操作,但还是可以正确显示中文。(二)通过表单传递请求参数,使用HttpServletRequest对象获得请求参数【步骤1】首先编写一个input.html文件,存放在helloapp目录中。该页面在屏幕上显示一个表单,其中包括姓名和年龄域,点击“确定”按钮后,将表单参数传递给ParamServlet并显示出来。input.html代码如下:<html><head><title>参数传递</title><meta http-equiv="Content-Typ
7、e" content="text/html;charset=UTF-8"></head><body> <h3>从表单向Servlet传递参数</h3> <form method="GET" action="paramtest" > 姓名:<input type="text" name="name"><br> 年龄:<input type="text" name="
8、;age"><br> <input type="submit" value="确定" > <input type="reset" value="重置" > </form></body></html>【步骤2】编写ParamServlet.java,其代码如下:package ;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servl
9、et.http.*;public class ParamServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset= UTF-8"); String name = requ
10、est.getParameter("name");name = new String(name.getBytes("iso8859-1")," UTF-8");String age = request.getParameter("age"); PrintWriter pw = response.getWriter(); pw.println("<html>"); pw.println("<head>"); pw.println("</h
11、ead>"); pw.println("<body>"); pw.println("<h3>姓名:"+name+"</h3><p>"); pw.println("<h3>年龄:"+age+"</h3><p>"); pw.println("</body>"); pw.println("</html>"); public void doP
12、ost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException doGet(request, response); 【步骤3】查看web.xml文件,关键代码如下:<servlet> <servlet-name>ParamServlet</servlet-name> <servlet-class>.servlet.request.ParamServlet</servlet-class><
13、;/servlet> <servlet-mapping> <servlet-name>ParamServlet</servlet-name> <url-pattern>/myParamServlet</url-pattern></servlet-mapping>【步骤4】测试参数传递。在浏览器的地址栏中输入:http:/localhost:8080/prac02_request/input.html。输入数据,点击“确定”按钮,体会表单参数的传递。测试过程如下:测试结果:问题1:如何通过超链接的锚标签(<a h
14、ref>)传递请求参数?用get方式提交表单,形式如下<a href='oneGetAllCultivateEndCertificateServlet?page=1&hiddenA=A'>(三)编写一个Servlet,显示所有请求头【步骤1】ShowHeadersServlet.java的Servlet能够检索所有的请求头,代码如下:package ;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;public cla
15、ss ShowHeadersServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType("text/html;charset=gb2312"); PrintWriter out = response.getWriter(); out.println("<html>"); out
16、.println("<head><title>All Headers</title>"); out.println("</head>"); out.println("<body bgcolor="#fdf5e6">"); out.println("<h1 align="center">All Request Headers</h1>"); out.println("<table
17、 border=1 align="center">n"+ "<tr bgcolor="#ffad00">n"+ "<th>Header Name<th>Header Value"); Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements() String headerName = (String)headerNames.nextElement();
18、 out.println("<tr><td>"+headerName); out.println("<td>"+request.getHeader(headerName); out.println("</table>n</body></html>"); public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExc
19、eption doGet(request, response); 【步骤2】修改web.xml,加入下面内容:<servlet> <servlet-name>ShowHeadersServlet</servlet-name> <servlet-class>.ShowHeadersServlet</servlet-class></servlet><servlet-mapping> <servlet-name>ShowHeadersServlet</servlet-name> &
20、lt;url-pattern>/myShowHeadersServlet</url-pattern></servlet-mapping>【步骤3】在浏览器地址栏中输入下面URL访问该Servlet http:/localhost:8080/prac02_03/myShowHeadersServlet实验效果如下:(四)简单的综合应用【步骤1】创建一个名为input.html的HTML页面,其中包括一个表单,表单中包含两个文本域,分别供用户输入学号和姓名,该页面也包含提交和重置按钮。【步骤2】定义一个名为com.demo.Student类,其中包括学号sno和姓名name两个private的成员变量,定义访问和修改sno和name的方法。【步骤3】编写名为FirstServlet的Servlet,要求当用户在input.html中输入信息后点击“提交”按
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 温州肯恩大学《媒体写作与运营》2023-2024学年第一学期期末试卷
- 2024零售商资金垫付协议样本版B版
- 二零二五年度抖音与体育赛事合作合同6篇
- 二零二五版德汉翻译及多语言本地化服务协议3篇
- 2024版桩基工程分包商合同2篇
- 2024版私营企业工厂劳务外包协议样本一
- 铜陵职业技术学院《软件测试与质量保证》2023-2024学年第一学期期末试卷
- 天津美术学院《公益广告策划与创作》2023-2024学年第一学期期末试卷
- 二零二五年绿色能源项目合作开发合同范本3篇
- 四川希望汽车职业学院《化学工程基础2》2023-2024学年第一学期期末试卷
- GB/T 24474.1-2020乘运质量测量第1部分:电梯
- GB/T 12684-2006工业硼化物分析方法
- 定岗定编定员实施方案(一)
- 高血压患者用药的注意事项讲义课件
- 特种作业安全监护人员培训课件
- (完整)第15章-合成生物学ppt
- 太平洋战争课件
- 封条模板A4打印版
- T∕CGCC 7-2017 焙烤食品用糖浆
- 货代操作流程及规范
- 常暗之厢(7规则-简体修正)
评论
0/150
提交评论