Java Web编程技术实验指导书.docx
- 文档编号:29886721
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:125
- 大小:990.84KB
Java Web编程技术实验指导书.docx
《Java Web编程技术实验指导书.docx》由会员分享,可在线阅读,更多相关《Java Web编程技术实验指导书.docx(125页珍藏版)》请在冰豆网上搜索。
JavaWeb编程技术实验指导书
《JavaWeb编程技术》
实验指导书
2010年3月
目录
实验一简单的Servlet与JSP1
实验二HTTP请求对象3
实验三HTTP响应对象7
实验四Servlet容器模型9
实验五会话管理13
实验六JSP基本语法与页面指令16
实验七JSP隐含对象与作用域20
实验八Web组件重用与JavaBeans24
实验九JDBC访问数据库27
实验十表达式语言的使用35
实验十一用户自定义标签41
实验十二JSTL与标签文件44
实验十三Servlet事件处理50
实验十四Servlet过滤器的使用55
实验十五Web应用的安全性59
说明:
本实验指导书根据《JavaWeb编程技术》课程教学大纲编写,共包括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目录中
packagecom.demo;
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclassHelloServletextendsHttpServlet{
publicvoidservice(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
PrintWriterout=response.getWriter();
out.println("");
out.println("
");out.println("");
out.println("
");out.println("
HelloWorld!
");
out.println("");
out.println("");
}
}
【步骤3】在WEB-INF目录中建立一个名为web.xml的文件,该文件为Web应用程序的部署描述文件,简称DD。
具体内容如下:
xmlversion="1.0"encoding="ISO-8859-1"?
>
xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation=" version="2.5"> 【步骤4】在浏览器的地址栏中输入下列地址访问该Servlet。 http: //localhost: 8080/helloapp/hello 在浏览器的窗口中应该显示Hello,World! 内容。 (二)下面的Servlet可显示系统当前时间。 请编译并部署该Servlet,然后使用浏览器访问。 packagecom.demo; importjava.io.*; importjavax.servlet.*; importjavax.servlet.http.*; publicclassHelloWorldServletextendsHttpServlet{ publicvoidservice() throwsServletException,IOException{ PrintWriterout=; out.println(""); out.println("
out.println("");
out.println("
");out.println("
out.println("
Hello,World!
");
out.println("Thetimenowis:
"+newjava.util.Date());
out.println("");
out.println("");
}
}
(三)编写下面的JSP文件,将其用hello.jsp名保存到helloapp目录中
Hello,World!
Thetimenowis:
<%=newjava.util.Date()%>
使用下面的URL访问该页面:
http:
//localhost:
8080/helloapp/hello.jsp
(四)运行下面的JSP页面square.jsp
<%for(inti=0;i<10;i++){%>
<%}%>
(五)改写上述页面,使其运行后产生下列页面。
图1.1square.jsp运行结果
四、思考题
1.如何安装配置JDK和Tomcat?
2.如何在Tomcat中运行Servlet和JSP页面?
实验二HTTP请求对象
一、实验目的
1.掌握如何获得请求参数;
2.掌握如何检索请求头;
3.了解如何通过请求对象获得客户信息;
4.重点掌握使用请求对象存储数据和请求转发。
二、实验原理
对客户的请求,容器根据请求调用Servlet的相应doXxx()方法,该方法带有两个参数,一个是HttpServletRequest,一个是HttpServletResponse,它们分别表示请求对象和响应对象,它们是容器自动创建的两个对象。
可以使用这两个接口定义的若干方法完成有关操作。
三、实验内容与步骤
(一)通过查询串传递请求参数,并在Servlet中检索请求参数
【步骤1】编写下面的Servlet。
packagecom.demo;
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】编译该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,其代码如下:
packagecom.demo;
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】修改web.xml文件,将下面代码添加到其中:
【步骤4】测试参数传递。
在浏览器的地址栏中输入:
http:
//localhost:
8080/helloapp/input.html。
输入数据,点击“确定”按钮,体会表单参数的传递。
问题1:
如何通过超链接的锚标签(
(三)编写一个Servlet,显示所有请求头
【步骤1】ShowHeadersServlet.java的Servlet能够检索所有的请求头,代码如下:
packagecom.demo;
importjava.io.*;
importjava.util.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclassShowHeadersServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html;charset=gb2312");
PrintWriterout=response.getWriter();
out.println("");
out.println("
out.println("");
out.println("
out.println("
out.println("
"
"
EnumerationheaderNames=request.getHeaderNames();
while(headerNames.hasMoreElements()){
StringheaderName=(String)headerNames.nextElement();
out.println("
out.println("
}
out.println("\n