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.创建一个 代码如下:
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,它们分
别表示请求对象和响应对象,它们是容器自动创建的两个对象。可以使用这两个接口定义的若
干方法完成有关操作,来获得请求参数。
发布评论