当前位置:文档之家› web软件技术实验二

web软件技术实验二

web软件技术实验二
web软件技术实验二

《web软件技术》实验报告(2 )

学号:10123568 姓名:李智斌班级:计123 成绩:

实验名称:HTTP请求对象实验地点:E215

所使用的工具软件及环境:JCreator,windowsXP,tomcat7

一、实验目的:

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

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

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

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

二、实验内容:

(一)通过查询串传递请求参数,并在Servlet中检索请求参数

【步骤1】编写下面的Servlet。

package com.demo;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloUserServlet extends HttpServlet{

public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{

String userName = request.getParameter("userName");

PrintWriter pw = response.getWriter();

pw.println("");

pw.println("");

pw.println("");

pw.println("");

pw.println("

Hello, " + userName + "

");

pw.println("");

pw.println("");

}

}

【步骤2】编译该Servlet,然后修改web.xml文件,将下面代码添加到其中:

helloUserServlet

com.demo.HelloUserServlet

helloUserServlet

/hellouser

【步骤3】使用下面的URL访问之。

http://localhost:8080/helloapp/hellouser?userName=John

将userName的值改为你自己的名字,看输出结果。若不给出查询字符串,结果如何?参数值使用汉字如何?

不给出字符串userName=null,使用汉字不可以。

(二)通过表单传递请求参数,使用HttpServletRequest对象获得请求参数

【步骤1】首先编写一个input.html文件,存放在helloapp目录中。该页面在屏幕上显示一个表单,其中包括姓名和年龄域,点击“确定”按钮后,将表单参数传递给ParamServlet并显示出来。

input.html代码如下:

参数传递

从表单向Servlet传递参数

姓名:

年龄:

【步骤2】编写ParamServlet.java,其代码如下:

package com.demo;

import java.io.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class ParamServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException{

response.setCharacterEncoding("gb2312");

response.setContentType("text/html;charset=gb2312");

String name = request.getParameter("name");

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

String age = request.getParameter("age");

age = new String(age.getBytes("iso8859-1"),"gb2312");

PrintWriter pw = response.getWriter();

pw.println("");

pw.println("");

pw.println("");

pw.println("");

pw.println("

姓名:"+name+"

");

pw.println("

年龄:"+age+"

");

pw.println("");

pw.println("");

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException{

doGet(request, response);

}

}

【步骤3】修改web.xml文件,将下面代码添加到其中:

ParamServlet

com.demo.ParamServlet

ParamServlet

/paramtest

【步骤4】测试参数传递。在浏览器的地址栏中输入:http://localhost:8080/helloapp/input.html。输入数据,点击“确定”按钮,体会表单参数的传递。

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

答:在后面加上请求参数名和参数值对。

(三)编写一个Servlet,显示所有请求头

【步骤1】ShowHeadersServlet.java的Servlet能够检索所有的请求头,代码如下:

package com.demo;

import java.io.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class ShowHeadersServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException{

response.setContentType("text/html;charset=gb2312");

PrintWriter out = response.getWriter();

out.println("");

out.println("All Headers");

out.println("");

out.println("");

out.println("

All Request Headers

");

out.println("

\n"+

"

\n"+

"

Header NameHeader Value");

Enumeration headerNames = request.getHeaderNames();

while(headerNames.hasMoreElements()){

String headerName = (String)headerNames.nextElement();

out.println("

"+headerName);

out.println("

"+request.getHeader(headerName));

}

out.println("

\n");

}

public void doPost(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException{

doGet(request, response);

}

}

【步骤2】修改web.xml,加入下面内容:

ShowHeadersServlet

com.demo. ShowHeaderServlet

ShowHeadersServlet

/showheaders

【步骤3】在浏览器地址栏中输入下面URL访问该Servlet

http://localhost:8080/helloapp/showheaders

(四)简单的综合应用

【步骤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页面。

参数传递

从表单向Servlet传递参数

学号:

姓名:

package com.demo;

import java.io.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class Firstservlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException{

String location="/secondservlet";

RequestDispatcher dispatcher=request.getRequestDispatcher(location);

dispatcher.forward(request,response);

}

}

package com.demo;

import java.io.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class SecondServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

String sno=null;

String name=null;

sno=request.getParameter("sno");

name=request.getParameter("name");

response.setContentType("text/html;charset=GB2312");

PrintWriter pw = response.getWriter();

pw.println("");

pw.println("");

pw.println("");

pw.println("");

pw.println("

学号:" + sno + "


");

pw.println("

姓名:" + name + "


");

pw.println("重回初始页面click");

pw.println("");

pw.println("");

}

}

四、思考题

1. 在Servlet中如何获得请求参数?

答:用request.getParameter(arg)方法获得参数。

2.如何实现请求转发?如何在请求对象中共享数据?

答:使用ResquestDispatcher对象实现转发。用setAttribute方法存储数据,再用getAttribute方法来获得数据。

三、实验结果、收获与体会:

这次实验是HTTP请求对象,通过本次实验,我学会了如何在Servlet中获得请求参数,如何检索请求头,了解如何通过请求对象获得客户信息,如何实现请求转发和如何在对象中共享数据。同时也知道如何在Servlet中如何避免出现乱码,最后一题有很大的挑战性,需要自己编写全部的代码充分调动了同学们的积极性,同时也可以展示同学们自己所学的知识,我觉得很有意义,这次实验很有收获。

web前端开发技术实验报告 实验三

长春大学 20 15 —2016学年第二学期Web前端开发技术课程 实验报告 学院:计算机科学技术专业:软件工程 班级:软件15402

学号:041440210 姓名:王悦 任课教师:车娜 实验三 CSS网页布局 一、实验目的 1.掌握CSS盒子模型的概念,能够灵活运用盒子模型布局页面; 2.掌握盒子模型相关属性,能够使用它们熟练地控制网页元素; 3.理解块元素与行内元素的区别,能够对它们进行转换。 二、内容及要求 运用盒子模型的相关属性实现网页弹出框效果,满足如下要求: 1.网页弹出框由上面的标题和下面的宣传内容两部分组成; 2.标题通过h2定义; 3.在段落文本中内容部分由h3和p标记进行定义; 4.应用

标记、标记、边框属性、背景属性等设计页面结构效果。 三、实验原理 盒子模型:把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器。每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成。
标记:是一个区块容器标记,可以将网页分割为独立的、不同的部分,以实现网页的规划和布局。 边框属性:使用border-style、border-width、border-color等属性可以实现丰富的边框效果。 padding属性:设置内边距,即元素内容与边框之间的距离,也常常称为内填充。 margin属性:设置外边距,即元素边框与相邻元素之间的距离。 background-color:设置网页元素的背景颜色,默认值为transparent,即背景透明,这时子元素会显示其父元素的背景。 background-image属性:将图像作为网页元素的背景。 标记:行内元素。之间只能包含文本和各种行内标记,如加粗标记、倾斜标记等,中还可以嵌套多层

WEB开发技术实验报告

实验一JSP开发环境构建 实验目的:了解动态页面技术及B/S系统 掌握开发环境的构建 理解Eclipse开发WEB应用 实验内容: 实训项目一:安装JDK并配置环境变量 请阐述配置环境变量的方法: 实训项目二:安装TOMCAT并配置Server.xml修改端口号为8090 问题一:如何测试TOMCAT是否已经成功启动? 问题二:在浏览器地址栏输入什么地址可以访问到TOMCA T的测试页? 请阐述配置Server.xml修改端口号为8090基本实验步骤: 实训项目三:应用Eclipse建立项目并浏览一个JSP页面 请阐述应用Eclipse建立项目并浏览一个JSP页面基本实验步骤: 实验心得:(遇到了哪些问题,如何解决的,有那些体会) 实验二JSP语法 实验目的:了解JSP程序的组成元素 掌握JSP中使用JA V A程序片段的方法 实验内容: 实训项目一:编写一个JSP页面输出26个小写英文字母表 实训项目二:编写页面实现九九乘法表 实训项目三:利用成员变量被所有客户共享这一性质,实现一个简单的计数器 实训项目四:使用JA V A表达式输出系统当前时间 实训项目五:编写程序shijian2_9.jsp和computer.jsp两个页面,在第一个页面中使用include动作标记动态包含文件computer.jsp,并向它传递一个矩形的长和宽,computer.jsp 收到参数后,计算矩形的面积,并显示结果。 实训项目六:编写3个JSP页面:main.jsp,first.jsp和second.jsp,将3个JSP文件保存在同一个WEB工程中,main.jsp使用include动作标记加载first.jsp和second.jsp页面。First.jsp 页面可以画一张表格,second.jsp页面可以计算两个正整数的最大公约数。当first.jsp被加载时,获取main.jsp页面include动作标记的param子标记提供的表格行数和列数,当second.jsp 被加载时,获取main.jsp页面include动作标记的param子标记提供的两个正整数的值。 要求:上机编程完成上述实训项目,上机演示给教师检查,从中挑选三个程序的核心代码写在实训报告上 实验核心代码:

操作系统实验题目2

实验报告撰写要求实验报告要求具有以下内容: 一、实验目的 二、实验内容 三、实验要求 四、算法流程图 五、给出测试数据及运行结果 六、实验体会或对改进实验的建议

实验1 进程调度(2学时) 一、实验目的 通过实验加强对进程调度算法的理解和掌握。 二、实验内容 编写程序实现基于优先级的时间片轮转调度算法。 三、实验要求 1、假定系统有5个进程,每个进程用一个进程控制块PCB来代表,进程控制块的结构如下图1.1所示: 图1.1 其中: 进程名:作为进程的标识,假设五个进程的进程名分别为p1,p2,p3,

p4,p5。 指针:进程按顺序排成循环链表,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针指出第一个进程的进程控制块首地址。 要求运行时间:假设进程需要运行的单位时间数。 已运行时间:假设进程已经运行的单位时间数,初值为0。 状态:可假设有两种状态,就绪状态和结束状态。进程的初始状态都为就绪状态。 2、每次运行所设计的处理器调度程序调度进程之前,为每个进程随机确定它的要求运行时间。 3、此程序是模拟处理器调度,因此,被选中的进程并不实际启动运行,而是执行 已运行时间+1 来模拟进程的一次运行,表示进程已经运行过一个单位时间。 4、在所设计的程序中应有显示语句,能显示每次被选中的进程名以及运行一次后进程队列的变化。

实验2 银行家算法(2学时) 一、实验目的 理解银行家算法,掌握进程安全性检查的方法及资源分配的方法。 二、实验内容 编写程序实现银行家算法,并验证程序的正确性。 三、实验要求 编制模拟银行家算法的程序,并以下面给出的例子验证所编写的程序的正确性。 例子:某系统有A、B、C、D 4类资源共5个进程(P0、P1、P2、P3、P4)共享,各进程对资源的需求和分配情况如下表所示。 现在系统中A、B、C、D 4类资源分别还剩1、5、2、0个,请按

Web网页设计实验报告

WEB系统开发 综合实验报告 题目红尘客栈网上订房页面 专业计算机科学与技术(信息技术及应用) 班级计信2班 学生蒋波涛 重庆交通大学 2013年

目录 一、设计目的 (3) 二、设计题目 (3) 三、结构设计 (3) 四、技术分析 (4) 五、设计过程 (7) 六、实验心得 (10) 七、实验总结 (11)

一、设计目的 在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。因此网站建设在Internet 应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。我们当代大学生更是离不开网络给我们带来的好处与便利.但是,我们成天浏览的网站网页到底是如何制作的呢?我想这一点很多同学都没有去深究过.所以,这学期我选择了”web网页设计”这门课, 本课程的设计目的是通过实践使同学们经历网页制作的全过程. 通过设计达到掌握网页设计、制作的技巧。 了解和熟悉网页设计的基础知识和实现技巧。根据题目的要求,给出网页设计方案,可以按要求,利用合适图文素材设计制作符合要求的网页设计作品。 熟练掌握Photoshop cs3、Dreamweaver cs等软件的的操作和应用。增强动手实践能力,进一步加强自身综合素质。学会和团队配合,逐渐培养做一个完整项目的能力。 二、设计题目 《红尘客栈》 三、结构设计 选定主题,确定题目之后,在做整个网站之前对网站进行需求分析。首先,做好需求调研。调研方式主要是上网查阅资料,在图书馆里翻阅相关书籍。 然后,调研结束之后对整个网站进行功能描述,并对网站进行总体规划,接着逐步细化。 我们选做的主题是个人主页,并且选定题目为“红尘客栈”,其目的是做一个简单的网站,介绍酒店概况,提供一定的资讯信息。 四、技术分析 (一)建立布局 在这次的网页设计中用到大量的布局,所以怎么样建立布局是关键。Dreamweaver cs3是大多数人设计网页的称手兵器,也是众多入门者的捷径。特别是其在布局方面的出色表现,更受青睐。大家都知道,没有表格的帮助,很难组织出一个协调合理的页面。 1.点击“ALT+F6”键,进入布局模式,插入布局表格。建立一个大概的布局。 2.使用背景图片:选中该项,按浏览可以插入一幅准备好的图片作为表格的背景,因为图片是以平铺的形式作为表格背景,所以表格大小和图片尺寸都要控制好。 (二)网页中的图像

操作系统实验2

武汉工程大学计算机科学与工程学院 《操作系统》实验报告 专业班级13计工01班实验地点计工403机房学生学号1305120610 指导教师张立 学生姓名李敏实验时间2014-10-19 /2014- 10-26 实验项目实验二、创建线程及线程通信 实验类别操作性()验证性()设计性(√)综合性()其它实 验 目的及要求(1)熟悉Windows中的线程及进程的创建 (2)掌握利用Windows中的同步机制实现线程同步及通信。 成绩评定表 类别评分标准分值得分合计 上机表现积极出勤、遵守纪律 主动完成实验设计任务 30分 实验报告及时递交、填写规范 内容完整、体现收获 70分 说明: 评阅教师:张立 日期: 2015 年 11 月 1 日

实验内容 一、实验内容 要求:创建线程,利用互斥实现线程共享变量通信。 示例程序:Thread.exe 简要说明: 1、点“创建线程”按钮,创建两个线程,一个线程不断对一个变量加1, 结果显示在第一个文本框中。另一个线程不断对另一个变量减1,结果显示在第二个文本框中。这两个线程之间没有交互,仅用于演示线程的创建。 2、演示线程互斥,点“线程互斥”按钮,创建两个线程,一个线程不断循 环,每次循环对共享变量x做100次加1操作(这100次加1操作作为一个临界区CSa),另一个线程不断循环,每次循环对共享变量x做100次减1操作(这100次减1操作作为一个临界区CSb),结果显示在第三个文本框中。可以看到结果是从0到100,然后又从100回到0。可见CSa 和CSb两个临界区是互斥的。 3、除了没有互斥,其它同2,结果显示在第四个文本框中。可见CSa和CSb 两个临界区的执行是有交叉的,CSa的执行可能被CSb打断,CSb的执行也可能被CSa打断 二、源代码 UINT ThreadA(LPVOID pParam) { CThreadDlg * pParent=(CThreadDlg *)pParam; pParent->DoThreadA(); return 0; } UINT ThreadB(LPVOID pParam) { CThreadDlg * pParent=(CThreadDlg *)pParam; pParent->DoThreadB(); return 0; } UINT ThreadC(LPVOID pParam) { CThreadDlg * pParent=(CThreadDlg *)pParam; pParent->DoThreadC(); return 0; } UINT ThreadD(LPVOID pParam) { CThreadDlg * pParent=(CThreadDlg *)pParam; pParent->DoThreadD(); return 0;

web前端设计与开发-实验目的及要求 (2)

web前端设计与开发实验 实验须知: 1.本实验课程一共有6个实验,围绕“个人主页”的主题,(1)使用Axure制作网站 的页面原型;(2)使用HTML标签设计页面的结构;(3)使用CSS控制页面的表现;(4)使用JavaScript脚本实现网页的交互效果;(5)并使用PhotoShop完善网站的视觉设计(6)最终呈现一个完整的“个人主页”网站。 2.网站推荐使用“一页式”的“响应式设计”,但这不是必须的。 3.网站如果采用“一页式”设计,则必须有三屏内容;如果是多网页设计,则必须有 三个页面,包括首页。 实验1:网站页面原型设计 实验目的: 1.掌握Axure工具的使用; 2.领会网站设计的思想; 3.理解页面原型的作用。 实验要求: 1.网站主题:“个人主页”或“个人求职主页”; 2.网站推荐使用“一页式”的“响应式设计”,但这不是必须的; 3.网站如果采用“一页式”设计,则必须有三屏内容;如果是多网页设计,则必须有 三个页面,包括首页在内; 4.要求设计出网页的基本结构,并有一定的交互效果; 5.尽可能设计出高保真型原型。 实验2:网站页面HTML设计与实现 实验目的: 1.掌握HTML标签的使用; 2.理解HTML标签的语义; 3.合理使用HTML标签结构化页面元素。 实验要求: 1.要求使用HTML语言将实验一设计的网页原型实现; 2.要求语义化使用HTML标签,合理地结构化页面元素及内容; 3.要求可适当分析页面布局,加入控制布局的标签; 4.要求设计一个合适的前端框架,即能分类存放不同的文档。 实验3:使用DIV+CSS布局并美化网页 实验目的: 1.掌握CSS基本语法;

广州大学web实验_实验二

广州大学学生实验报告 一、实验目的 使用脚本语言进行网页设计 二、实验设备 Tomcat windows10 eclipse 三、实验内容 1.简易计算器的制作 在一个网页中,使用JavaScript编写程序实现的计算器功能,可以实现浮点数的加法,减法,乘法,除法运算功能。 2.控制网页字体的大小 在一个网页中,有三个按钮是小,中,大,使用JavaScript编写程序实现当点击一个按钮时,网页就按照相应的字体大小显示网页的文字。 四、实验程序 1.简易计算器的制作 简易计算器