Servlets & Jsp 实验2:HTTP请求对象的使用.doc

上传人:1595****071 文档编号:33830145 上传时间:2022-08-12 格式:DOC 页数:18 大小:332.61KB
返回 下载 相关 举报
Servlets & Jsp 实验2:HTTP请求对象的使用.doc_第1页
第1页 / 共18页
Servlets & Jsp 实验2:HTTP请求对象的使用.doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《Servlets & Jsp 实验2:HTTP请求对象的使用.doc》由会员分享,可在线阅读,更多相关《Servlets & Jsp 实验2:HTTP请求对象的使用.doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2 实验二 HTTP请求对象的使用一 实验目的1. 掌握如何获得请求参数;2. 掌握如何检索请求头;3. 了解如何通过请求对象获得客户信息;4. 重点掌握使用请求对象存储数据和请求转发。 二 实验内容1. 通过查询串传递请求参数,并在Servlet中检索请求参数步骤1:编写下面的Servlet。package com.demo;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HelloUserServlet extends HttpServletpublic void servic

2、e(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOExceptionString userName = request.getParameter(userName);PrintWriter out = response.getWriter();out.println();out.println();out.println();out.println();out.println(Hello, + userName + );out.println();out.println();

3、步骤2:编译该Servlet,然后修改web.xml文件,将下面代码添加到其中: helloUserServlet com.demo.HelloUserServlet helloUser 步骤3:使用下面的URL访问之。http:/localhost:8080/helloapp/hellouser.do?userName=John将userName的值改为你自己的名字,看输出结果。若不给出查询字符串,结果如何?参数值使用汉字如何?2. 通过表单传递请求参数,使用HttpServletRequest对象获得请求参数步骤1:首先编写一个input.html文件,存放在helloapp目录中。该页面

4、在屏幕上显示一个表单,其中包括姓名和年龄域,点击“确定”按钮后,将表单参数传递给ParamServlet并显示出来。input.html代码如下:参数传递 从表单向Servlet传递参数 姓名: 年龄: 【步骤2】编写ParamServlet.java,其代码如下:package com.demo;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;public class ParamServlet extends HttpServlet public void doGet

5、(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setCharacterEncoding(gb2312); response.setContentType(text/html;charset=gb2312); String name = request.getParameter(name);name = new String(name.getBytes(iso8859-1),gb2312); String age = request.

6、getParameter(age);age = new String(age.getBytes(iso8859-1),gb2312); PrintWriter out = response.getWriter(); out.println(); out.println(); out.println(); out.println(); out.println(姓名:+name+); out.println(年龄:+age+); out.println(); out.println(); public void doPost(HttpServletRequest request, HttpServ

7、letResponse response) throws ServletException, IOException doGet(request, response); 【步骤3】修改web.xml文件,将下面代码添加到其中: ParamServlet com.demo.ParamServlet ParamServlet /paramtest 【步骤4】在浏览器的地址栏中输入:http:/localhost:8080/helloapp/input.html。输入数据,点击“确定”按钮,体会表单参数的传递。问题1:如何通过超链接的锚标签()传递请求参数?3. 编写一个Servlet,显示所有请求

8、头【步骤1】ShowHeadersServlet.java的Servlet能够检索所有的请求头,代码如下:package com.demo;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;public class ShowHeadersServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletE

9、xception, IOException response.setContentType(text/html;charset=gb2312); PrintWriter out = response.getWriter(); out.println(); out.println(All Headers); out.println(); out.println(); out.println(All Request Headers); out.println(n+ n+ Header NameHeader Value); Enumeration headerNames = request.getH

10、eaderNames(); while(headerNames.hasMoreElements() String headerName = (String)headerNames.nextElement(); out.println(+headerName); out.println(+request.getHeader(headerName); out.println(n); public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExcep

11、tion doGet(request, response); 【步骤2】修改web.xml,加入下面内容: ShowHeadersServlet com.dom.ShowHeadersServlet ShowHeadersServlet /showheaders【步骤3】在浏览器地址栏中输入下面URL访问该Servlethttp:/localhost:8080/helloapp/showheaders4. 简单的综合应用【步骤1】创建一个名为input.html的HTML页面,其中包括一个表单,表单中包含两个文本域,分别供用户输入学号和姓名,该页面也包含提交和取消按钮。图2.1 input.h

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

13、vlet。【步骤4】在SecondServlet中取出请求对象上存储的Student对象,并显示输出该学生的学号和姓名。【步骤5】在SecondServlet的输出中应该包含一个链接,点击连接返回到input.html页面。 图2.2 SecondServlet显示结果input.html的代码如下: Login Page 学号: 姓名:   / FirstServlet.java的代码如下:package com.demo;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import com.m

14、odel.Student;public class FirstServlet extends HttpServlet ServletContext context; public void init() context = getServletContext(); public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(gb2312); String snumber

15、= request.getParameter(snumber); String sname = request.getParameter(sname); Student stud = new Student(snumber,sname); request.setAttribute(stud,stud); RequestDispatcher view = request.getRequestDispatcher(/secondservlet); view.forward(request, response); / SecondServlet.java的代码如下:package com.demo;

16、import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import com.model.Student;public class SecondServlet extends HttpServlet ServletContext context; public void init() context = getServletContext(); public void doPost(HttpServletRequest request, HttpServletResponse response) throws Se

17、rvletException, IOException Student stud = (Student)request.getAttribute(stud); response.setContentType(text/html;charset=gb2312); PrintWriter out = response.getWriter(); out.println(); out.println(); out.println(学号:+stud.getSnumber()+); out.println(姓名:+stud.getSname()+); out.println(返回输入页面); out.pr

18、intln(); out.println(); web.xml文件对两个Servlet的配置代码如下: firstServlet /firstservlet secondServlet com.demo.SecondServlet secondServlet /secondservlet实验代码:package com.demo;public class Student private String sno;private String name;public Student(String sno,String name)super();this.sno=sno;this.name=name;

19、public Student()super();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;Web.xml: web-app version=2.5 xmlns= xmlns:xsi=http:/www.w3.org/2001/XMLSchema-instance xsi:schemaLocation= ParamServle

20、t com.demo.ParamServlet ShowHeadersServlet com.demo.ShowHeadersServlet FirstServlet com.demo.FirstServlet FirstServlet /firstservlet SecondServlet com.demo.SecondServlet SecondServlet /secondservlet ParamServlet /paramtest ShowHeadersServlet /showheaders.do index.jsp 三 思考题1. 在Servlet中如何获得请求参数? 答:web

21、组件之间参数传递有3种方式:(1)request.getParameter(name);a、通过超链接b、通过表单c、通过servlet转发或重定向d、通过隐藏域完成(2)pageContext.getAttribute(key);/页面范围request.getAttribute(key);/请求转发范围只能通过来转发请求session.getAttribute(key);/浏览器范围/直接在任何jsp或这servlet中通过session来获取application.getAttribute(key);/容器范围/直接在任何jsp或这servlet中通过application或者servl

22、etContext来获取(3)Cookie2. 如何实现请求转发?如何使用请求对象中共享数据?jsp: request.getRequestDispatcher(/*.jsp).forward(request,response);servlet:sendRedirect()方法原理: 1,客户端发送请求,Servlet1做出处理。 2,Servlet1调用sendReadirect()方法,将客户端的请求 重新定位 到Servlet2。3,客户端浏览器访问Servlet2.4,Servlet2对客户端浏览器做出响应。forward()方法原理:1,客户端发送请求,Servlet1做出处理。2,

23、Servlet调用forward()方法,将请求转发给Servlet2来处理请求,为客户端服务. 3,Servlet2对客户端浏览器做出响应。或request.getRequstDispatcher().forward();request.getRequstDispatcher().include();3. 计算贷款的月支付额公式如下:编写一个JSP页面,通过表单输入贷款总额(50000)、年利率(5.75)和年数(5),然后通过servlet计算月还款额(960.84),总还款额(5765.30)。 loan.jsp!-计算贷款的月支付贷款总额:年利率:年数: web-app ve

24、rsion=2.5 xmlns= xmlns:xsi=http:/www.w3.org/2001/XMLSchema-instance xsi:schemaLocation= DK com.kaxi.DK DK /DK package com.kaxi;import java.util.Scanner;import java.io.IOException;import java.io.PrintWriter;import java.text.DecimalFormat;import javax.servlet.ServletException;import javax.servlet.http

25、.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class DK extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOExceptionresponse.setCharacterEncoding(gb2312);response.se

26、tContentType(text/html;charset=gb2312);String total = request.getParameter(total);total = new String(total.getBytes(iso8859-1),gb2312);String tax = request.getParameter(tax);tax = new String(tax.getBytes(iso8859-1),gb2312);String year = request.getParameter(year);year = new String(year.getBytes(iso8

27、859-1),gb2312); double Total=Double.parseDouble(total); double Tax=Double.parseDouble(tax); double Year=Double.parseDouble(year); double month_tax=Tax/12/100; double a=Total*month_tax; double b=1/Math.pow(1+month_tax, Year*12); double month_pay=a/(1-b); PrintWriter out = response.getWriter(); out.println(); out.println(); out.println(); out.println(); out.println(月还款额:+month_pay+); out.println(总还款额:+month_pay*12*Year+); out.println();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁