《web软件技术》课程实验二.docx

上传人:b****3 文档编号:10241069 上传时间:2023-05-24 格式:DOCX 页数:18 大小:111.85KB
下载 相关 举报
《web软件技术》课程实验二.docx_第1页
第1页 / 共18页
《web软件技术》课程实验二.docx_第2页
第2页 / 共18页
《web软件技术》课程实验二.docx_第3页
第3页 / 共18页
《web软件技术》课程实验二.docx_第4页
第4页 / 共18页
《web软件技术》课程实验二.docx_第5页
第5页 / 共18页
《web软件技术》课程实验二.docx_第6页
第6页 / 共18页
《web软件技术》课程实验二.docx_第7页
第7页 / 共18页
《web软件技术》课程实验二.docx_第8页
第8页 / 共18页
《web软件技术》课程实验二.docx_第9页
第9页 / 共18页
《web软件技术》课程实验二.docx_第10页
第10页 / 共18页
《web软件技术》课程实验二.docx_第11页
第11页 / 共18页
《web软件技术》课程实验二.docx_第12页
第12页 / 共18页
《web软件技术》课程实验二.docx_第13页
第13页 / 共18页
《web软件技术》课程实验二.docx_第14页
第14页 / 共18页
《web软件技术》课程实验二.docx_第15页
第15页 / 共18页
《web软件技术》课程实验二.docx_第16页
第16页 / 共18页
《web软件技术》课程实验二.docx_第17页
第17页 / 共18页
《web软件技术》课程实验二.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《web软件技术》课程实验二.docx

《《web软件技术》课程实验二.docx》由会员分享,可在线阅读,更多相关《《web软件技术》课程实验二.docx(18页珍藏版)》请在冰点文库上搜索。

《web软件技术》课程实验二.docx

《web软件技术》课程实验二

 

《Web软件技术》课程

实验报告

 

题目HTTP请求对及数据处理

专业信息工程

班级信工143

学号10141463

姓名王钊健

指导教师签名范贵生

 

华东理工大学信息学院计算机系

2017年03月03日

实验二HTTP请求对及数据处理

姓名王钊健学号10141463专业班级信工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访问之。

http:

//localhost:

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】测试参数传递。

在浏览器的地址栏中输入:

http:

//localhost:

8080/helloapp/input.html。

输入数据,点击“确定”按钮,体会表单参数的传递。

问题1:

如何通过超链接的锚标签()传递请求参数?

(三)编写一个程序实现文件上传功能。

假设学生上传作业,需要执行学号和上传的文件。

as11.java:

importjava.io.*;

importjavax.servlet.*;

importjavax.servlet.http.*;

importjavax.servlet.annotation.*;

@WebServlet(name="as11",urlPatterns={"/fileUpload.do"})

@MultipartConfig(location="D:

\\",fileSizeThreshold=1024)

publicclassas11extendsHttpServlet{

publicvoiddoPost(HttpServletRequestrequest,

HttpServletResponseresponse)

throwsServletException,IOException{

//返回Web应用程序文档根目录

Stringpath=this.getServletContext().getRealPath("/");

Stringmnumber=request.getParameter("mnumber");

Partp=request.getPart("fileName");

Stringmessage="";

if(p.getSize()>1024*1024){//上传的文件不能超过1MB大小

p.delete();

message="文件太大,不能上传!

";

}else{

path=path+"\\member\\"+mnumber;

Filef=newFile(path);

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("/fileUpload.jsp");

rd.forward(request,response);

}

}

fileUpload.jsp:

<%@pagecontentType="text/html;charset=UTF-8"

pageEncoding="UTF-8"%>

上传文件

${message}

method="post">

文件上传

会员号:

文件名:

xml文件部分代码:

(四)简单的综合应用

xmlversion="1.0"encoding="UTF-8"?

>

xsi="http:

//www.w3.org/2001/XMLSchema-instance"xmlns="xsi:

schemaLocation="id="WebApp_ID"version="2.5">

ss

index.html

index.htm

index.jsp

default.html

default.htm

default.jsp

FirstServlet

FirstServlet

com.demo.FirstServlet

FirstServlet

/FirstServlet

SecondServlet

SecondServlet

com.demo.SecondServlet

SecondServlet

/SecondServlet

【步骤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>

LoginPage

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="http:

//www.w3.org/2001/XMLSchema-instance"xmlns="xsi:

schemaLocation="id="WebApp_ID"version="2.5">

ss

index.html

index.htm

index.jsp

default.html

default.htm

default.jsp

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2