2024年6月13日发(作者:)

开课实验室:

学院 应用技术学院 年级、专业、班 计应1301 姓名 焦强 成绩

指导教师 段琦

课程 Java Web从入门到精实验项目

名称

一、实验目的

通 名 称

HTTP请求对象

1. 掌握如何获得请求参数;

2. 掌握如何检索请求头;

3. 了解如何通过请求对象获得客户信息;

4. 重点掌握使用请求对象存储数据和请求转发。

二、实验环境

安装Eclipse的电脑,需要配置好TomCat服务器,以及配置好相应的环境

三、实验原理

容器根据请求调用Servlet的相应doget()方法,该方法带有两个参数,一个是

HttpServletRequest,一个是HttpServletResponse,它们分别表示请求对象和响应对象,它们是容

器自动创建的两个对象。可以使用这两个接口定义的若干方法完成有关操作

四、实验步骤

1.通过查询串传递请求参数,并在Servlet中检索请求参数,通过表单传递请求参数,使用

HttpServletRequest对象获得请求参数

创建一个Servlet如下:

package ;

@WebServlet("/HelloUserServlet")

public class HelloUserServlet extends HttpServlet{

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException{

String userName = ameter("userName");

PrintWriter out = ter();

n("");

n("");

n("");

n("");

n("

Hello, " + userName + "

");

n("");

n("");

2.建立一个名为的页面,该页面中包含一个表单,其中包括姓名和年龄域,点击“确

定”按钮后,将表单参数传递给ParamServlet并显示出来。的主要代码如下:

从表单向Servlet传递参数

姓名:

年龄:

3.编写,其代码如下:

package ;

public class ParamServlet extends HttpServlet {

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException{

racterEncoding("gb2312");

tentType("text/html;charset=gb2312");

String name = ameter("name");

name = new String(es("iso8859-1"),"gb2312");

String age = ameter("age");

PrintWriter out = ter();

n("");

n("");

n("");

n("");

n("

姓名:"+name+"

");

n("

年龄:"+age+"

");

n("");

n("");

}

public void doPost(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException{

doGet(request, response);

}

}

4.创建一个 代码如下:

cellpading="2" cellspacing="1">

学号:
姓名:

 

5.编写一个Servlet,保存在包中,要求当用户在中输入信息后点击“提

交”按钮,请求FirstServlet对其处理。在Servlet中使用表单传递的参数(学号和姓名)创建一

个Student对象并将其作为属性存储在请求对象中,然后通过请求对象的getRequestDispatcher()

方法获得RequestDispatcher()对象,将请求转发到Servlet。

的代码如下:

package ;

import .*;

import t.*;

import .*;

import t;

public class FirstServlet extends HttpServlet {

ServletContext context;

public void init(){

context = getServletContext();

}

public void doPost(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException{

racterEncoding("gb2312");

String snumber = ameter("snumber");

String sname = ameter("sname");

Student stud = new Student(snumber,sname);

ribute("stud",stud);

RequestDispatcher view =

uestDispatcher("/secondservlet");

d(request, response);

}

}

6.在SecondServlet中取出请求对象上存储的Student对象,并显示输出该学生的学号和姓名。

在SecondServlet的输出中应该包含一个链接,点击连接返回到页面。

package ;

public class SecondServlet extends HttpServlet {

public void doPost(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException{

Student stud = (Student)ribute("stud");

tentType("text/html;charset=gb2312");

PrintWriter out = ter();

n("");

n("

");

n("学号:"+()+"

");

n("姓名:"+e()+"

");

n("返回输入页面");

n("

");

n("");

}

}

五、实验结果及总结

1.在编译时,运行出现问题,由于编码的问题,页面显示字符是乱码,最后通过修改

字符显示才算正常。

2. Servlet通过相应doget()方法的两个参数,HttpServletRequest 和HttpServletResponse,它们分

别表示请求对象和响应对象,它们是容器自动创建的两个对象。可以使用这两个接口定义的若

干方法完成有关操作,来获得请求参数。