您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > Java > java-web实验2
13.2实验二HTTP请求对象一.实验目的1.掌握如何获得请求参数;2.掌握如何检索请求头;3.了解如何通过请求对象获得客户信息;4.重点掌握使用请求对象存储数据和请求转发。二.实验内容任务1:通过查询串传递请求参数,并在Servlet中检索请求参数步骤1:在helloweb项目中创建一个Servlet,主要代码如下。packagecom.demo;…@WebServlet(/HelloUserServlet)——使用tomcat7.0版本时才显示此内容publicclassHelloUserServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{StringuserName=request.getParameter(userName);PrintWriterout=response.getWriter();out.println(html);out.println(head);out.println(/head);out.println(body);out.println(h3Hello,+userName+/h3);out.println(/body);out.println(/html);}}步骤2:在Eclipse中直接执行该Servlet,结果如何?如何使用URL为该Servlet传递请求参数?步骤3:使用下面的URL访问之。=John将userName的值改为你自己的名字(使用中文),看输出结果如何?步骤4:编写一个简单的HTML页面,在该页面中定义一个超链接(ahref)来访问前面的Servlet,并通过链接的URL传递请求参数?任务2:通过表单传递请求参数,使用HttpServletRequest对象获得请求参数步骤1:在helloweb项目中建立一个名为input.jsp的页面,该页面中包含一个表单,其中包括姓名和年龄域,点击“确定”按钮后,将表单参数传递给ParamServlet并显示出来。input.jsp的主要代码如下:h3从表单向Servlet传递参数/h3formmethod=GETaction=ParamServlet姓名:inputtype=textname=namebr年龄:inputtype=textname=agebrinputtype=submitvalue=确定inputtype=resetvalue=重置/form2步骤2:编写ParamServlet.java,其主要代码如下:packagecom.demo;…publicclassParamServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setCharacterEncoding(gb2312);response.setContentType(text/html;charset=gb2312);Stringname=request.getParameter(name);name=newString(name.getBytes(iso8859-1),gb2312);Stringage=request.getParameter(age);PrintWriterout=response.getWriter();out.println(html);out.println(head);out.println(/head);out.println(body);out.println(h3姓名:+name+/h3p);out.println(h3年龄:+age+/h3p);out.println(/body);out.println(/html);}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}}步骤3:访问input.jsp页面。输入数据,点击“确定”按钮,体会表单参数的传递。任务3:简单的综合应用,请求转发以及使用请求对象存储数据。步骤1:创建一个名为input.html的HTML页面,其中包括一个表单,表单中包含两个文本域,分别供用户输入学号和姓名,该页面也包含提交和取消按钮。图2.1input.html页面显示结果input.html的主要代码如下:formaction=firstservletmethod=posttablewidth=298border=0align=centercellpading=2cellspacing=1trtdalign=right学号:/tdtdalign=leftinputtype=textname=snumbersize=15/td3/trtrtdalign=right姓名:/tdtdinputtype=textname=snamesize=15/td/trtrtdcolspan=2align=centerinputtype=submitvalue=登录 inputtype=resetvalue=取消/td/tr/table/form步骤2:定义一个名为Student类,保存在com.demo包中,其中包括学号sno和姓名name两个private的成员变量,定义访问和修改sno和name的方法。packagecom.demo;publicclassStudent{privateStringsno;privateStringname;publicvoidsetSno(Stringsno){this.sno=sno;}publicStringgetSno(){returnthis.sno;}publicvoidsetSname(Stringsname){this.sname=sname;}publicStringgetSname(){returnthis.sname;}}步骤3:编写名为FirstServlet的Servlet,保存在com.demo包中,要求当用户在input.html中输入信息后点击“提交”按钮,请求FirstServlet对其处理。在FirstServlet中使用表单传递的参数(学号和姓名)创建一个Student对象并将其作为属性存储在请求对象中,然后通过请求对象的getRequestDispatcher()方法获得RequestDispatcher()对象,将请求转发到SecondServlet。FirstServlet.java的代码如下:packagecom.demo;importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;importcom.model.Student;publicclassFirstServletextendsHttpServlet{ServletContextcontext;publicvoidinit(){context=getServletContext();}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding(gb2312);Stringsnumber=request.getParameter(snumber);4Stringsname=request.getParameter(sname);Studentstud=newStudent(snumber,sname);request.setAttribute(stud,stud);RequestDispatcherview=request.getRequestDispatcher(/secondservlet);view.forward(request,response);}}步骤4:在SecondServlet中取出请求对象上存储的Student对象,并显示输出该学生的学号和姓名。在SecondServlet的输出中应该包含一个链接,点击连接返回到input.html页面。图2.2SecondServlet显示结果SecondServlet.java的主要代码如下:packagecom.demo;…publicclassSecondServletextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Studentstud=(Student)request.getAttribute(stud);response.setContentType(text/html;charset=gb2312);PrintWriterout=response.getWriter();out.println(htmlbody);out.println(center);out.println(学号:+stud.getSno()+br);out.println(姓名:+stud.getName()+br);out.println(ahref=\/helloweb/input.html\返回输入页面/a);out.println(/center);out.println(/body/html);}}三.思考题1.在Servlet中如何获得请求参数?2.如何实现请求转发?如何使用请求对象中存储数据?
本文标题:java-web实验2
链接地址:https://www.777doc.com/doc-4561549 .html