Java Web编程技术实验指导书
更新时间:2023-11-28 05:18:01 阅读量: 教育文库 文档下载
- java是什么意思推荐度:
- 相关推荐
《Java Web编程技术》
实 验 指 导 书
2010年3月
目 录
实验一 简单的Servlet与JSP .................................................................................................................. 1 实验二 HTTP请求对象 ........................................................................................................................... 3 实验三 HTTP响应对象 ........................................................................................................................... 7 实验四 Servlet容器模型 .......................................................................................................................... 9 实验五 会话管理 .................................................................................................................................... 13 实验六 JSP基本语法与页面指令 ......................................................................................................... 16 实验七 JSP隐含对象与作用域 ............................................................................................................. 20 实验八 Web组件重用与JavaBeans ...................................................................................................... 24 实验九 JDBC访问数据库 ..................................................................................................................... 27 实验十 表达式语言的使用 .................................................................................................................... 35 实验十一 用户自定义标签 .................................................................................................................... 41 实验十二 JSTL与标签文件 .................................................................................................................. 44 实验十三 Servlet事件处理 .................................................................................................................... 50 实验十四 Servlet过滤器的使用 ............................................................................................................ 55 实验十五 Web应用的安全性 ................................................................................................................ 59
说明:
本实验指导书根据《Java Web编程技术》课程教学大纲编写,共包括15个实验,每个实验2学时,学生每周完成一个实验。
实验一 简单的Servlet与JSP
一、实验目的
1. 了解和掌握Servlet和JSP页面的编写和运行。
2. 比较Servlet与JSP的区别和联系,体会动态页面的含义。 二、实验原理
Servlet是运行在服务器端的Java程序,它主要是为了扩展服务器的功能。编写和运行Servlet一般要经过4个步骤:(1)编辑源文件,它是继承HttpServlet的Java类;(2)编译源文件;(3)在服务器中部署该Servlet,即将类文件存放到服务器的适当目录中,并修改web.xml部署描述文件;(4)使用浏览器访问该Servlet程序。
JSP是一种服务器端的动态页面技术,它的实质也是Servlet。它的编写较Servlet容易。二者的主要区别是:Servlet通常是实现业务逻辑,而JSP通常实现表示逻辑。
三、实验内容与步骤
(一)编写和运行一个简单的Servlet 【步骤1】在Tomcat安装目录的webapps下建立一个helloapp的目录,在其中再建立一个WEB-INF目录,在WEB-INF目录中建立一个classes目录。这样就建立了一个名为helloapp的Web应用程序。 【步骤2】编写下面Servlet类,编译并将类文件放入classes目录中 package com.demo; import java.io.*;
import javax.servlet.*; import javax.servlet.http.*;
public class HelloServlet extends HttpServlet{
public void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
PrintWriter out = response.getWriter(); out.println(\out.println(\ out.println(\out.println(\
out.println(\out.println(\out.println(\} }
【步骤3】在WEB-INF目录中建立一个名为web.xml的文件,该文件为Web应用程序的部署描述文件,简称DD。具体内容如下:
xmlns:xsi=\ xsi:schemaLocation=\http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd\ version=\
1
【步骤4】在浏览器的地址栏中输入下列地址访问该Servlet。
http://localhost:8080/helloapp/hello
在浏览器的窗口中应该显示Hello, World!内容。
(二)下面的Servlet可显示系统当前时间。请编译并部署该Servlet,然后使用浏览器访问。
package com.demo; import java.io.*;
import javax.servlet.*; import javax.servlet.http.*;
public class HelloWorldServlet extends HttpServlet{
public void service( )
throws ServletException,IOException{
PrintWriter out = ; out.println(\ out.println(\ out.println(\ out.println(\
out.println(\ out.println(\
out.println(\ out.println(\ out.println(\} }
(三)编写下面的JSP文件,将其用hello.jsp名保存到helloapp目录中
Hello,World!
The time now is:<%=new java.util.Date()%>
使用下面的URL访问该页面: http://localhost:8080/helloapp/hello.jsp (四)运行下面的JSP页面square.jsp
<%= i %><%= (i * i) %> <% } %>
(五)改写上述页面,使其运行后产生下列页面。
2
图1.1 square.jsp运行结果
四、思考题
1. 如何安装配置JDK和Tomcat?
2. 如何在Tomcat中运行Servlet和JSP页面?
实验二 HTTP请求对象
一、实验目的
1. 掌握如何获得请求参数; 2. 掌握如何检索请求头;
3. 了解如何通过请求对象获得客户信息;
4. 重点掌握使用请求对象存储数据和请求转发。 二、实验原理
对客户的请求,容器根据请求调用Servlet的相应doXxx()方法,该方法带有两个参数,一个是HttpServletRequest,一个是HttpServletResponse,它们分别表示请求对象和响应对象,它们是容器自动创建的两个对象。可以使用这两个接口定义的若干方法完成有关操作。
三、实验内容与步骤
(一)通过查询串传递请求参数,并在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(\PrintWriter pw = response.getWriter(); pw.println(\pw.println(\pw.println(\pw.println(\
pw.println(%userName + \pw.println(\
3
pw.println(\}
}
【步骤2】编译该Servlet,然后修改web.xml文件,将下面代码添加到其中:
【步骤3】使用下面的URL访问之。
http://localhost:8080/helloapp/hellouser?userName=John
将userName的值改为你自己的名字,看输出结果。若不给出查询字符串,结果如何?参数值使用汉字如何?
(二)通过表单传递请求参数,使用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(\
response.setContentType(\
String name = request.getParameter(\
name = new String(name.getBytes(\ String age = request.getParameter(\
age = new String(age.getBytes(\
4
PrintWriter pw = response.getWriter(); pw.println(\ pw.println(\ pw.println(\ pw.println(\
pw.println(\姓名:\ pw.println(\年龄:\ pw.println(\ pw.println(\ }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ doGet(request, response); } }
【步骤3】修改web.xml文件,将下面代码添加到其中:
【步骤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(\ PrintWriter out = response.getWriter();
out.println(\
out.println(\ out.println(\
out.println(\
out.println(\ out.println(\ \
\alue\ Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()){
String headerName = (String)headerNames.nextElement();
5
out.println(\
out.println(\ }
out.println(\ }
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{ doGet(request, response); } }
【步骤2】修改web.xml,加入下面内容:
【步骤3】在浏览器地址栏中输入下面URL访问该Servlet
(四)简单的综合应用
【步骤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.1 input.html页面显示结果 图2.2 SecondServlet显示结果
四、思考题
1. 在Servlet中如何获得请求参数?
2. 如何实现请求转发?如何在请求对象中共享数据?
6
实验三 HTTP响应对象
一、实验目的
1. 了解和掌握如何从响应对象获得输出流对象; 2. 掌握如何设置响应类型;
3. 掌握如何设置响应头和状态码; 4. 重点掌握如何实现响应重定向。 二、实验原理
对Servlet的请求目的是要获得响应消息。Servlet要向用户发送响应数据首先要获得输出流对象。另外,通过响应对象还可向客户端发送状态码,也可以设置有关响应头,还可以对响应重定向。
三、实验内容与步骤
(一) 通过设置响应内容类型构建Excel电子表格 package com.demo; import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*;
public class ExcelServlet extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
response.setHeader(\
response.setContentType(\ PrintWriter out = response.getWriter();
out.println(\ out.println(\学号\\t姓名\\t性别\\t年龄\\t所在系\ out.println(\李勇\\t男\\t20\\t信息\ out.println(\刘晨\\t女\\t19\\t数学\ } }
该程序的运行结果如下图所示:
图3.1 生成Excel电子表格
(二)向客户发送二进制文件 package com.demo; import java.io.*; import java.util.*;
7
import javax.servlet.*; import javax.servlet.http.*;
public class DownloadServlet extends HttpServlet{ public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException{
response.setContentType(\ File f = new File(\
FileInputStream is = new FileInputStream(f);
ServletOutputStream os = response.getOutputStream(); byte[] bytearray = new byte[1024]; int bytesread = 0;
while( (bytesread = is.read(bytearray) ) != -1 ){ os.write(bytearray, 0, bytesread); }
os.flush(); } }
注意:此Servlet正确运行,需要将servlet-api.jar文件复制到C盘根目录下。
(三)下面的ShowTimeServlet通过设置refresh响应头实现每2秒钟刷新一次页面。 package com.demo; import java.io.*; import java.util.*;
import java.text.SimpleDateFormat; import javax.servlet.*; import javax.servlet.http.*;
public class ShowTimeServlet extends HttpServlet{ public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException{
response.setContentType(\ response.setHeader(\
PrintWriter out = response.getWriter(); Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(\ String s = sdf.format(date);
out.println(\ out.println(\
out.println(\每5秒钟刷新一次页面
\ out.println(\现在的时间是:\
out.println(\ out.println(\ } }
(四)响应重定向
【步骤1】建立下面的login.html登录页面
8
正在阅读:
Java Web编程技术实验指导书11-28
在当代自觉学习马克思主义理论的必要性06-06
小学如何有效开展足球运动08-12
光学练习题11-27
家乡的果园作文500字07-15
2022年山西财经大学865经济计量学复试实战预测五套卷04-15
美丽的班级作文400字06-16
公积金个别调整表(2009.1.21)04-28
2019年中国半导体制造装备行业前景研究与市场分析预测报告(定制版)目录12-25
程序员笔试面试题05-09
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 指导书
- 编程
- 实验
- 技术
- Java
- Web
- 2019年秋部编版八年级语文上册《昆虫记》导读(推荐).doc
- 安徽芜湖市2012年中考物理实验操作考试试题、评分细则及器材清单
- 教你如何职场左右逢源--接待领导上级篇
- 英雄志结局
- 2019年浙江高中生物竞赛试卷(word版) - 图文
- 土地复垦方案2011修改
- 2019年高考生物考试大纲解读专题05实验
- 宝山区高考英语一模试题及答案
- 邵阳市城市商业网点规划(2004~2020)
- 练习册
- 江苏省扬州市2017年高二学业水平模拟测试(一)地理(必修)试卷
- 债券质押式回购业务操作规程
- 历史反思及案例
- 最新人教版八年级下册物理教案(全册 共84页)
- 学校落实安全工作台账的规定
- 所得税会计习题 -
- 我国企业公关危机管理问题浅析
- 人防施工组织设计滨河名郡
- 超星尔雅《现代自然地理学》王建课后习题答案2018.10
- 《数据库原理》1-2章作业(答案)