1、 Java语言案例开发实验指导书 实验学时:24 序号 实验名称 内容要求 实验 学时 每组 人数 实验 属性 开出 要求 1 实验一JSP实验环境组建与JSP应用 JSP运行原理;JSP开发环境的搭配;创建第1个JSP程序并部署运行。 2 1 综合 必做 2 实验二 JSP语法 JSP脚本元素;掌握JSP注释方式;掌握JSP指令元素;掌握JSP动作元素的相关知识。 2 1 综合 必做 3 实验三JSP内置对象 内置对象的概念;请求对象request;响应对象response;会话对象session;多客户端共享对象appli
2、cation;页面对象page和页面上下文对象pageContext; 输出对象out、配置对象config、异常对象exception。 4 1 综合 必做 4 实验四JavaBean组件技术 JavaBean属性、作用域和应用实例分析 4 1 综合 必做 5 实验五 Servlet技术 获取运行环境信息的方法;Servlet会话设置和异常设置;Servlet过滤器和监听器的工作原理;Servlet过滤器和监听器的具体应用。 6 1 综合 必做 6 实验六JDBC技术 JDBC执行步骤;JDBC的常用接口及使用方法;如何应用JDBC事务;如何利用数据
3、库连接池技术访问数据库。 6 1 综合 必做 实验一 JSP实验环境组建与JSP应用(2学时) 一、实验目的 (1)通过运行程序,了解JSP的运行原理; (2)掌握JSP开发环境的配置和部署; (3)部署运行JSP程序。 二、实验内容 1.开发环境搭建 Step1:安装和设置JDK 以jdk1.6为例,安装位置C:\Program Files\Java\jdk1.6.0_12 创建环境变量:JAVA_HOME为C:\Program Files\Java\jdk1.6.0_12 在建环境变量PATH中添加:%JAVA_HOME%\bin; 创建环境变量CL
4、ASSPATH: %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; Step2:安装支持JSP的Web服务器 以Tomcat6.0.29为例,安装位置d:\Tomcat6 Step3:安装MyEclipse 安装MyEclipse9 Step4:设置Tomcat,可以从MyEclipse中直接启动Tomcat6 操作步骤:WindowàPreferencesàMyEclipse Enterprise Workbenchà MyEclipseàServersàTomcatàTomcat6.x l Tomcat Server选择E
5、nable l Tomcat home directory:d:\tomcat6 l 设置Tomcat运行使用的JDK:展开Tomcat6.x,单击JDK,单击tomcat JDK name:后的Add,在打开的页面中,单击JRE home后的Directory按钮,选择输入C:\Program Files\Java\jdk1.6.0_12 2.开发和运行JSP程序 n 创建Web项目 FileàNewàWeb Project(如:Myjsp) n 新建JSP文件(如firstJsp.jsp) n 编辑JSP文件 n 发布项目到Tomcat 右击项目名称MyjspàMyEcl
6、ipseàAdd and Remove Project Deployments Project:选择Myjsp项目,并单击Add,弹出Project Deployments对话框, 在对话框中,选择server为Tomcat 6.x,并单击Finish n 运行测试 n 启动Tomcat 6.x n 运行JSP文件 浏览器中输入:http://localhost:8080/Myjsp/firstJsp.jsp 3.练习 (1)编写一个JSP程序,在页面中输入系统时间,要求:输入的系统时间时判断当前时间是“上午”、“中午”还是“下午”,并给出友好的提示信息。例如,当前系统时间是上
7、午,在页面输出“早上好,新的一天即将开始,你准备好了吗?”;当前系统时间是中午,在页面输出“午休时间,正午好时光!”;当前系统时间是下午,在页面中输出“下午继续努力工作吧”。 参考代码: <%@ page language="java" import="java.util.*,java.text.*" pageEncoding="ISO-8859-1"%>
8、te();
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time=format.format(d);
out.println("Current time is "+time);%>
<%
//Excise1.5
int h=d.getHours();
if(h>=1 && h<=12)
out.println(h+"hour Good morning");
else if(h>=1
9、3 && h<=16) out.println(h+"hour Good aftermoon"); else out.println(h+"hour Good evening"); %> (2)编写一个电子商城的用户注册页面,要求该主页面中包含用户设置的用户名、密码、真实姓名、性别、年龄等表单,并使用Javascript编写函数,当用户点击“提交”按钮时,会检查用户名、密码、真实姓名等项是否为空。 三、复习和预习内容 眼过千遍不如手动一遍,所以一定要多动手写程序,才可能真正的理
10、解程序的逻辑和内涵。 复习JSP程序的结构、部署和运行过程;预习JSP语法的相关内容。希望大家能在实验中多思考,多给自己提问题,多设想几种可能。做实验时不要满足于验证书本知识。在以后的实验中,请读者自己设计具体的实验步骤,尽可能自己补充增加一些内容,以提高自己的实践能力。 实验二 JSP语法(2学时) 一、实验目的 (1)掌握JSP文件的组成、指令元素、动作元素等的使用。 (2)在实际应用中,灵活使用JSP中的各种元素。 二、实验内容 1、编写两个JSP页面,分别为inputName.jsp和
11、people.jsp。 (1)inputName.jsp:有一个表单,用户通过该表单输入自己的姓名并提交给people.jsp页面。 (2)people.jsp:名字为person、类型是StringBuffer以及名字是count、类型为int的成员变量。该页面有public void judge ()方法。该方法负责创建person对象,当count的值是0时,judge ()方法创建person对象。该页面有public void addPerson(String p)方法,该方法将参数p指定的字符串添加到成员变量person末尾,同时将count作自增运算。该页面在程序片中获取in
12、putName.jsp页面提交的姓名,然后调用judge()创建person对象、调用addPerson方法将用户的姓名添加到成员变量person末尾。如果inputName.jsp页面没有提交姓名,或姓名含有的字符个数大于10,就使用
13、"text/html;charset=GB2312" %>
people.jsp <%@ page contentType="text/html;ch14、arset=GB2312" %>
<%! int count; StringBuffer person; public void judge() { if(count==0) person=new StringBuffer(); } public void addPerson(String p) { if(count==0) { person.append(p);15、
}
else
{
person.append(","+p);
}
count++;
}
%>
<%
String name=request.getParameter("name");
byte bb[]=name.getBytes("iso-8859-1");
name=new String(bb);
if(name.length()==0||name.length()>10)
{
%>
目前共有<%=count%>人浏览了该页面,他们的名字是:
<%=person%>
17、t
package apple void back public
private throw class hello welcome
(1)first.jsp: 使用page指令设置contentType属性的值是text/plain,使用include指令静态插入hello.txt文件。
(2)second.jsp: 使用page指令设置contentType属性的值是application/vnd.ms-powerpoint,使用include指令静态插入hello.txt文件。
(3)third.jsp:使用page指令设置contentType属性的值是app
18、lication/msword,使用include指令静态插入hello.txt文件。 图3-3 contentType的值是text/plain first.jsp 图3-4 contentType的值是application/vnd.ms-powerpoint second.jsp 图3-5 contentType的值是application/msword third.jsp (3)参考代码 first.jsp <%@ page contentType="text/plain" %>
19、olor=blule> <%@include file="hello.txt" %>
second.jsp <%@ page contentType="application/vnd.ms-powerpoint" %> <%@include file="hello.txt" %> third.jsp <%@ page contentType="application20、/msword" %>
<%@include file="hello.txt" %> 3、JSP动作标记(选做) 编写四个JSP 页面:one.jsp 、two.jsp、three.jsp和error.jsp。one.jsp 、two.jsp和three.jsp页面都含有一个导航条,以便让用户方便地单击超链接访问这三个页面,要求这三个页面通过使用include动作标记动态加载导航条文件head.txt。 head.txt <21、@ page contentType="text/html;charset=GB2312" %>
| one.jsp页面 | two.jsp页面 | < 22、A href="three.jsp">three.jsp页面 |
23、sp页面。 (2)two.jsp、three.jsp和error.jsp: 要求two.jsp和three.jsp能输出one.jsp传递过来的值,并显示一幅图像,该图像的宽和高刚好是one.jsp页面传递过来的值。error.jsp页面能显示有关的错误信息和一幅图像。 图3-6 使用include动作标记加载导航条 one.jsp 图3-7 得到param子标记传递来的值 two.jsp 图3-8 得到param子标记传递来的值 three.jsp error.jsp(效果如图1-9所示) 图3-9 显示错误信息 (3) 参考代码 one.jsp
24、 <%@ page contentType="text/html;charset=GB2312" %>
25、
String num=request.getParameter("number");
if(num==null)
{ num="0";
}
try
{
int n=Integer.parseInt(num);
if(n>=1&&n<=50)
{
%>
26、 }
else if(n>50&&n<=100)
{
%>
This is two.jsp.
28、 <%
String s=request.getParameter("number");
out.println("
传递过来的值是"+s);
%>
29、D>
This is three.jsp.
<%
String s=request.getParameter("number");
out.println("
传递过来的值是"+s);
%>
30、 error.jsp <%@ page contentType="text/html;charset=GB2312" %>
This is error.jsp. <% String s=request.getParameter("mess"); out.p
31、rintln("
传递过来的错误信息"+s);
%>
三、复习和预习内容
眼过千遍不如手动一遍,所以一定要多动手写程序,才可能真正的理解程序的逻辑和内涵。
复习JSP语法;预习JSP内置对象的相关内容。希望大家能在实验中多思考,多给自己提问题,多设想几种可能。做实验时不要满足于验证书本知识。在以后的实验中,请读者自己设计具体的实验步骤,尽可能自己补充增加一些内容,以提高自己的实践能力。
32、 实验三 JSP内置对象(4学时) 一、实验目的 (1)掌握内置对象request、response、session、application、out和exception等的含义、用法和作用域范围。 (2)在实际应用中,根据不同的需求使用JSP不同作用域范围的内置对象。 二、实验内容 1、对实验二的内容进行扩展,必须实现以下4个jsp文件,采用jsp+JavaBean实现。 (1) login.jsp:登录页面,如图4-1所示。 图4-1 (2) doLogin.jsp(无界面):登录处理页面,假定正确的用户名为admin,口令为123。如果用户名和口令不正确
33、则显示登录错误信息,否则登录成功后,重定向到messageBoard.jsp(留言板页面),可以进行留言。 (3) messageBoard.jsp: 留言板页面,能实现如图4-2所示的留言。 图4-2 (4) showMessage.jsp:显示留言信息页面,如图4-3所示。该页面能显示留言者(必须为login.jsp页面中输入的用户名)、标题和内容,要求能正确显示图3-1所示的留言内容。提示:留言者的用session保存 图4-3 参考代码: login.jsp: <%@ page language="java" import="java.util.*" pageEn
34、coding="gb2312"%>
doLogin.j35、sp: <%@ page language="java" pageEncoding="gb2312"%> <% String userName=request.getParameter("username");//获取用户名 String passWord=request.getParameter("password");//获取口令 if(userName.equals("admin") && passWord.equals("123")){ //用户名和密码正确 session.setAttribute("name",userName
36、); //用户名写入session,显示留言时需要 response.sendRedirect("messageBoard.jsp"); //重定向到留言页面 } else{ response.sendError(500,"登陆错误,用户名或密码不正确!"); } %> messageBoard.jsp <%@ page contentType="text/html;charset=gb2312"%>
showMessage.jsp: <%@ page contentType="text/html; charset=GBK"%>39、
40、equest,session,application) 3、在工程中增加一个页面,在页面中实现加减乘除的运算页面,并实现运算结果的计算显示功能。(选做) 关键代码:
42、equest.getParameter("num1")!=null)num1=Double.parseDouble(request.getParameter("num1")); if(request.getParameter("num2")!=null)num2=Double.parseDouble(request.getParameter("num2")); String operation=request.getParameter("operation"); if(operation!=null) { if(opera
43、tion.trim().equals("+")) {result=num1+num2; } if(operation.trim().equals("-")) {result=num1-num2; } if(operation.trim().equals("*")) {result=num1*num2; } if(operation.trim().equals("/")) {result=num1/num2;
44、 } out.write("
45、 实验四 JavaBean组件技术(4学时) 一、实验目的 (1)理解 JavaBean 的作用; (2)能够定义 JavaBean; (3)能在 jsp 页面中使用 JavaBean。 二、实验内容 1、实现客户在一个登录页面form.jsp(如图5-1)输入登录信息并单击“确定”后,跳转到另一个页面doForm.jsp(如图2-2)输出“用户名”和“口令”信息。 图5-1 图5-2 要求:分别用下列三种方法实现。 (1)创建一个JavaBean----User类,该类含有两个属性use
46、rname和password,给每个属性增加相应的get和set方法。在doForm.jsp页面中用
47、写入request或session中,再使用
48、title>My JSP 'forward1.jsp' starting page
doform.jsp <%@ page language="java" import="java.util.*,bean.User" pageEncoding="ISO-8859-1"%>





