您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > Java > 实验二HTTP请求对象
开课实验室:学院应用技术学院年级、专业、班计应1301姓名焦强成绩课程名称JavaWeb从入门到精通实验项目名称HTTP请求对象指导教师段琦一、实验目的1.掌握如何获得请求参数;2.掌握如何检索请求头;3.了解如何通过请求对象获得客户信息;4.重点掌握使用请求对象存储数据和请求转发。二、实验环境安装Eclipse的电脑,需要配置好TomCat服务器,以及配置好相应的环境三、实验原理容器根据请求调用Servlet的相应doget()方法,该方法带有两个参数,一个是HttpServletRequest,一个是HttpServletResponse,它们分别表示请求对象和响应对象,它们是容器自动创建的两个对象。可以使用这两个接口定义的若干方法完成有关操作四、实验步骤1.通过查询串传递请求参数,并在Servlet中检索请求参数,通过表单传递请求参数,使用HttpServletRequest对象获得请求参数创建一个Servlet如下:packagecom.demo;…@WebServlet(/HelloUserServlet)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.建立一个名为input.jsp的页面,该页面中包含一个表单,其中包括姓名和年龄域,点击“确定”按钮后,将表单参数传递给ParamServlet并显示出来。input.jsp的主要代码如下:h3从表单向Servlet传递参数/h3formmethod=GETaction=ParamServlet姓名:inputtype=textname=namebr年龄:inputtype=textname=agebrinputtype=submitvalue=确定inputtype=resetvalue=重置/form3.编写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);}}4.创建一个input.html代码如下:formaction=firstservletmethod=posttablewidth=298border=0align=centercellpading=2cellspacing=1trtdalign=right学号:/tdtdalign=leftinputtype=textname=snumbersize=15/td/trtrtdalign=right姓名:/tdtdinputtype=textname=snamesize=15/td/trtrtdcolspan=2align=centerinputtype=submitvalue=登录 inputtype=resetvalue=取消/td/tr/table/form5.编写一个Servlet,保存在com.demo包中,要求当用户在input.html中输入信息后点击“提交”按钮,请求FirstServlet对其处理。在Servlet中使用表单传递的参数(学号和姓名)创建一个Student对象并将其作为属性存储在请求对象中,然后通过请求对象的getRequestDispatcher()方法获得RequestDispatcher()对象,将请求转发到Servlet。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);Stringsname=request.getParameter(sname);Studentstud=newStudent(snumber,sname);request.setAttribute(stud,stud);RequestDispatcherview=request.getRequestDispatcher(/secondservlet);view.forward(request,response);}}6.在SecondServlet中取出请求对象上存储的Student对象,并显示输出该学生的学号和姓名。在SecondServlet的输出中应该包含一个链接,点击连接返回到input.html页面。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.在编译input.jsp时,运行出现问题,由于编码的问题,页面显示字符是乱码,最后通过修改字符显示才算正常。2.Servlet通过相应doget()方法的两个参数,HttpServletRequest和HttpServletResponse,它们分别表示请求对象和响应对象,它们是容器自动创建的两个对象。可以使用这两个接口定义的若干方法完成有关操作,来获得请求参数。
本文标题:实验二HTTP请求对象
链接地址:https://www.777doc.com/doc-2458534 .html