《Web软件专业技术》课程实验二.docx
- 文档编号:4339102
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:15
- 大小:111.71KB
《Web软件专业技术》课程实验二.docx
《《Web软件专业技术》课程实验二.docx》由会员分享,可在线阅读,更多相关《《Web软件专业技术》课程实验二.docx(15页珍藏版)》请在冰豆网上搜索。
《Web软件专业技术》课程实验二
《Web软件技术》课程实验二
————————————————————————————————作者:
————————————————————————————————日期:
《Web软件技术》课程
实验报告
题目HTTP请求对及数据处理
专业信息工程
班级信工143
学号10141463
姓名王钊健
指导教师签名范贵生
华东理工大学信息学院计算机系
2017年03月03日
实验二HTTP请求对及数据处理
姓名王钊健学号专业班级信工143成绩_________
实验日期2017/3/2实验地点信息大楼215指导教师(签名)
一.实验目的
1.掌握如何获得请求参数;
2.掌握如何检索请求头;
3.了解如何通过请求对象获得客户信息;
4.重点掌握使用请求对象存储数据和请求转发。
二.实验工具与设备
三.实验内容
(一)通过查询串传递请求参数,并在Servlet中检索请求参数
【步骤1】编写下面的Servlet。
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclassHelloUserServletextendsHttpServlet{
publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
StringuserName=request.getParameter("userName");
PrintWriterpw=response.getWriter();
pw.println("");
pw.println("
");pw.println("");
pw.println("
");pw.println("
Hello,"+userName+"
");pw.println("");
pw.println("");
}
}
【步骤2】使用下面的URL访问之。
:
8080/helloapp/hellouser?
userName=John
将userName的值改为你自己的名字,看输出结果。
若不给出查询字符串,结果如何?
参数值使用汉字如何?
(二)通过表单传递请求参数,使用HttpServletRequest对象获得请求参数
【步骤1】首先编写一个input.html文件,存放在helloapp目录中。
该页面在屏幕上显示一个表单,其中包括姓名和年龄域,点击“确定”按钮后,将表单参数传递给ParamServlet并显示出来。
input.html代码如下:
从表单向Servlet传递参数
姓名:
年龄:
【步骤2】编写ParamServlet.java,其代码如下:
importjava.io.*;
importjava.util.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
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");
age=newString(age.getBytes("iso8859-1"),"gb2312");
PrintWriterpw=response.getWriter();
pw.println("");
pw.println("
");pw.println("");
pw.println("
");pw.println("
姓名:
"+name+"
");
pw.println("
年龄:
"+age+"
");
pw.println("");
pw.println("");
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doGet(request,response);
}
}
【步骤3】测试参数传递。
在浏览器的地址栏中输入:
helloapp/input.html。
输入数据,点击“确定”按钮,体会表单参数的传递。
问题1:
如何通过超链接的锚标签(
(三)编写一个程序实现文件上传功能。
假设学生上传作业,需要执行学号和上传的文件。
as11.java:
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
importjavax.servlet.annotation.*;
@WebServlet(name="as11",urlPatterns={"/"})
@MultipartConfig(location="D:
\\",)
publicclassas11extendsHttpServlet{
publicvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
//返回Web应用程序文档根目录
Stringpath=this.getServletContext().getRealPath("/");
Stringmnumber=request.getParameter("mnumber");
Partp=request.getPart("");
Stringmessage="";
if(p.getSize()>1024*1024){//上传的文件不能超过1MB大小
p.delete();
message="文件太大,不能上传!
";
}else{
path=path+"\\member\\"+mnumber;
Filef=new);
if(!
f.exists()){//若目录不存在,则创建目录
f.mkdirs();
}
Stringh=p.getHeader("content-disposition");
//得到文件名
Stringfname=h.substring(h.lastIndexOf("\\")+1,h.length()-1);
p.write(path+"\\"+fname);
message="文件上传成功!
";
}
request.setAttribute("message",message);
RequestDispatcherrd=request.getRequestDispatcher("/");
rd.forward(request,response);
}
}
:
<%@pagecontentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
${message}
method="post">会员号: 文件名:
xml文件部分代码:
(四)简单的综合应用
xmlversion="1.0"encoding="UTF-8"?
>
xsi=""xmlns=""xsi: schemaLocation=""id="WebApp_ID"version="2.5"> 【步骤1】创建一个名为input.html的HTML页面,其中包括一个表单,表单中包含两个文本域,分别供用户输入学号和姓名,该页面也包含提交和重置按钮。 【步骤2】定义一个名为com.demo.Student类,其中包括学号sno和姓名name两个private的成员变量,定义访问和修改sno和name的方法。 【步骤3】编写名为FirstServlet的Servlet,要求当用户在input.html中输入信息后点击“提交”按钮,请求FirstServlet对其处理。 在FirstServlet中使用表单传递的参数(学号和姓名)创建一个Student对象并将其作为属性存储在请求对象中,然后获得通过请求对象的getRequestDispatcher()方法获得RequestDispatcher()对象,将请求转发到SecondServlet。 【步骤4】在SecondServlet中取出请求对象上存储的Student对象,并显示输出该学生的学号和姓名。 在SecondServlet的输出中应该包含一个超链接,点击该连接可以返回input.html页面。 图2.1input.html页面显示结果图2.2SecondServlet显示结果 Input.html: DOCTYPEhtml>
cellpading="2"cellspacing="1">
Student.java:
packagecom.demo;
publicclassStudent{
privateStringsno;
privateStringname;
publicStudent(Stringsno,Stringname){
super();
this.sno=sno;
this.name=name;
}
publicStudent(){
super();
}
publicStringgetSno(){
returnsno;
}
publicvoidsetSno(Stringsno){
this.sno=sno;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
}
FirstServlet.java:
packagecom.demo;
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.*;
importcom.demo.Student;
@WebServlet(name="FirstServlet",urlPatterns="/first")
publicclassFirstServletextendsHttpServlet{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
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);
}
}
SecondServlet.java:
packagecom.demo;
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
importcom.demo.Student;
publicclassSecondServletextendsHttpServlet{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
ServletContextcontext;
publicvoidinit(){
context=getServletContext();
}
publicvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
Studentstud=(Student)request.getAttribute("stud");
response.setContentType("text/html;charset=gb2312");
PrintWriterout=response.getWriter();
out.println("
");out.println("
out.println("学号:
"+stud.getSno()+"
");
out.println("姓名:
"+stud.getName()+"
");
out.println("
out.println("
out.println("");
}
}
Web.xml:
xmlversion="1.0"encoding="UTF-8"?
>
xsi=""xmlns=""xsi: schemaLocation=""id="WebApp_ID"version="2.5"> 四.实验体会(包括收获、心得体会、存在的问题及解决问题的方法、建议等)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Web软件专业技术 Web 软件 专业技术 课程 实验