W e b软件技术课程实验
二
公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-
《Web 软件技术》课程
实验报告
华东理工大学信息学院计算机系
2017年03月03日题目 HTTP 请求对及数据处理 专业 信息工程
班级 信工143
学号
姓名 王钊健
指导教师签名 范贵生
实验二 HTTP请求对及数据处理
姓名王钊健学号专业班级信工143 成绩_________
实验日期 2017/3/2 实验地点信息大楼 215 指导教师(签名) 一.实验目的
1. 掌握如何获得请求参数;
2. 掌握如何检索请求头;
3. 了解如何通过请求对象获得客户信息;
4. 重点掌握使用请求对象存储数据和请求转发。
二.实验工具与设备
三.实验内容
(一)通过查询串传递请求参数,并在Servlet中检索请求参数
【步骤1】编写下面的Servlet。
import .*;
import .*;
public class HelloUserServlet extends HttpServlet{
public void service(HttpServletRequest
request,HttpServletResponse response)
throws ServletException, IOException{
String userName = ("userName");
PrintWriter pw = ();
("");
("
");("");
("
");("
("");
("");
}
}
【步骤2】使用下面的URL访问之。
:8080/helloapp/hellouser userName=John
将userName的值改为你自己的名字,看输出结果。若不给出查询字符串,结果如何参数值使用汉字如何
(二)通过表单传递请求参数,使用HttpServletRequest对象获得请求参
数
【步骤1】首先编写一个文件,存放在helloapp目录中。该页面在屏幕上
显示一个表单,其中包括姓名和年龄域,点击“确定”按钮后,将表单参数传
递给ParamServlet并显示出来。
代码如下:
content="text/html;charset=gb2312">
【步骤2】编写,其代码如下:
import .*;
import .*;
import .*;
public class ParamServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
("gb2312");
("text/html;charset=gb2312");
String name = ("name");
name = new String("iso8859-1"),"gb2312");
String age = ("age");
age = new String("iso8859-1"),"gb2312");
PrintWriter pw = ();
("");
("
");("");
("
");("
");
("
");
("");
("");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
doGet(request, response);
}
}
【步骤3】helloapp/。输入数据,点击“确定”按钮,体会表单参数的传递。
问题1:如何通过超链接的锚标签()传递请求参数
(三)编写一个程序实现文件上传功能。假设学生上传作业,需要执行学号和
上传的文件。
:
import .*;
import .*;
import
import
@WebServlet(name="as11",urlPatterns={"/"})
@MultipartConfig(location="D:\\",fileSizeThreshold=1024) public class as11 extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException{ etRealPath("/");
String mnumber = ("mnumber");
Part p = ("fileName");
String message="";
if() >1024*1024){ ;
import .*;
import
import
import
@WebServlet(name="FirstServlet",urlPatterns="/first") public class FirstServlet extends HttpServlet { /**
*
*/
private static final long serialVersionUID = 1L; ServletContext context;
public void init(){
context = getServletContext();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
("gb2312");
String snumber = ("snumber");
String sname = ("sname");
Student stud = new Student(snumber,sname);
("stud",stud);
RequestDispatcher view =
("/SecondServlet");
(request, response);
}
}
:
package ;
import .*;
import .*;
import
import
public class SecondServlet extends HttpServlet { /**
*
*/
private static final long serialVersionUID = 1L; ServletContext context;
public void init(){
context = getServletContext();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
Student stud = (Student)("stud");
("text/html;charset=gb2312");
PrintWriter out = ();
("
");("
("学号:"+()+"
");
("姓名:"+()+"
");
("返回输入页面");
("
("");
}
}
:
四. 实验体会(包括收获、心得体会、存在的问题及解决问题的方法、建议等)通过本次实验,对HTTP请求对及数据处理有了一定的了解和掌握,对java web 编程更加熟悉。比较容易出现404的问题,通过学习与仔细观察,处理问题的能力得到了一定的增强。
五.思考题
1. 在Servlet中如何获得请求参数
答:web组件之间参数传递有3种方式:
(1)("name");
a、通过超链接
b、通过表单
c、通过servlet转发或重定向
d、通过隐藏域完成
(2)("key");如何实现请求转发如何在请求对象中共享数据
jsp: ("/*.jsp").forward(request,response);
servlet:sendRedirect()方法原理:?
1,客户端发送请求,Servlet1做出处理。?
2,Servlet1调用sendReadirect()方法,将客户端的请求重新定位到Servlet2。?
3,客户端访问Servlet2.?
4,Servlet2对客户端浏览器做出响应。
forward()方法原理:?
1,客户端发送请求,Servlet1做出处理。?
2,Servlet调用forward()方法,将请求转发给Servlet2来处理请求,为客户端服务.
3,Servlet2对客户端浏览器做出响应。
<:forward/>或
("").forward();
("").include();