资源描述
JSP动态网页开发
试验(训)指导书
王振铎 编
西安思源学院
电子信息工程学院
说 明
《JSP动态网页开发实训指导书》是和《JSP动态网页开发》理论教学相配套实训教材,培养学生在动态网页程序开发方面技能,使学生含有处理实际问题能力。
试验教学内容能够依据教学具体情况进行合理调整。
目 录
试验一 JSP开发环境配置和测试 1
试验二 Jsp基础(1) 11
试验三Jsp基础(2) 15
试验四J S P 基础(3) 19
试验五 J S P 内置对象(1) 22
试验六J S P 内置对象(2) 29
试验七Java bean (1) 33
试验八 JSP 中文件操作 39
试验九Java bean (2) 46
试验十 jsp 操作xml文件 48
试验十一 java servlet 58
试验十二用户注册程序 62
试验十三 留言板 66
试验十四JSP Servlet用户登录程序 93
试验十五MVC开发模式 96
试验一 JSP开发环境配置和测试
一、试验目标
1、了解JSP开发环境安装和配置;
2、了解JSP开发通常步骤。
二、试验要求
掌握简单程序编写和运行。
三、试验内容
1 JSP开发环境配置
JSP编程使用Java语言,所以运行JSP程序必需要有JVM支持,还必需要有Java程序编辑、编译程序(JDK)支持。现在企业流行集成开发环境是Eclipse或MyEclipse。大多数应用程序全部需要连接数据库,所以需要DBMS支持。JSP应用程序是运行在服务器上,所以需要Web服务器支持,在此以Java 1.6 Update21、Tomcat、MySQL、MyEclipse6.5为例,安装配置JSP开发环境。
1、安装JDK
从Java企业官方网站()下载JDK,现在最新是Java SE6 Update22,我们采取JDK1.6 Update 21,只需要双击中下载到EXE文件,点下一步即可安装。JDK安装好后,需要配置Java环境变量,步骤以下:
(1)我电脑->属性->高级选项卡->环境变量,打开“环境变量”对话框,在系统变量中新建以下环境变量:
①JAVA_HOME:表示Java SDK安装目录,其值为: D:\Program Files\Java\jdk1.6.0_21(依据自己实际安装位置进行调整)。
②CLASSPATH:表示Java要访问jar文件所在目录,其值为:%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib。
③并修改Path环境变量,在其中增加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
注意:
² 对于Path环境变量是添加,而不要删除原来内容,不然很多Windows功效不能使用;若有其它程序要用到自己Java环境变量,请将第③步内容添加到Path环境变量最终,以免影响其它程序运行。
² 字母不区分大小写,大写字母是遵照Java环境变量配置习惯。
(2)测试
打开Windows命令行窗口(开始->运行,在弹出窗口中输入cmd回车),输入javac然后回车,若能显示javac帮助信息,说明JDK安装成功,以下图所表示。
2、安装Tomcat
在Tomcat官方网站()上下载Tomcat,现在最新版本是7.x,但还没有Eclipse插件,所以不能集成到MyEclipse集成开发环境中,这里使用6.028这个版本。安装时只需要一路next即可,安装完成后,也不需要设置环境变量,只要在IE浏览器地址栏中输入:http://localhost:8080回车,若能出现Tomcat界面说明安装成功,以下图所表示。
3、安装MyEclipse
只需要一路Next即可,关键是进行相关配置。经过Window->Preferences…菜单打开配置对话框。说明:每设置一项关键点“Apply”按钮,保留所做更改。
(1) 在General下找到workspace,将字符编码方法(Text file encoding)设置为Other utf-8。图1-1所表示。
图1-1 设置工作区字符编码方法
(2) 设置常见文件字符编码方法
找到“MyEclipse Enterprise workbench”->Files and Editors,将其下常见文件字符编码方法统一设置为utf-8,图1-2所表示。
图1-2 设置常见文件字符编码方法
(3) 设置常见Web服务器
找到“MyEclipse Enterprise workbench”->Servers,找到Tomcat->Tomcat6.x,将其设置为启用,并指定Tomcat安装目录,点“OK”按钮保留设置即可。
4、安装MySQL
下载MySQL安装文件,一路Next安装即可,并按下图进行设置,图1-3至1-10所表示。
图1-3 选择具体配置
图1-4 选择开发模式
图1-5 选择多用途数据库
图1-6 选择决议支持
图1-7 设置MySQL访问端口,并添加防火墙例外
图1-8 设置MySQL字符编码方法,以处理汉字
图1-9 将MySQL设置为Windows服务
图1-10 设置MySQL访问密码,并能够远程访问
说明:以上设置是针对试验开发环境下设置,若为实际应用,可依据需要进行对应设置。
2 JSP程序开发步骤
1、开发步骤
打开MyEclipse开发环境,选择File->New->Web Project,或在Package Explorer中右击选择New->Web Project,在打开对话框中,输入项目名Demo,并选定Java EE 5.0规范支持,点击Finish。图1-11所表示。
图1-11 MyEclipse新建Web项目
(1) 第一个JSP页面
右单击Demo项目标WebRoot目录,New->JSP新建JSP页面。图1-12所表示。
图1-12 新建JSP页面
图1-13 设置JSP模板和文件名
输入文件名HelloWorld.jsp,并选择“Default JSP template”,点击确定。
在页面<body>标签中,输入以下代码:
<%
out.println("<h1>Hello World!</h1>");
%>
并保留。
(2) 布署Demo
点击布署按钮,选择Demo项目,点“Add”按钮,在弹出窗口中,选择Tomcat6.x服务器,点Finish。
(3) 运行Demo项目
按按钮开启Tomcat服务器,在IE或其它浏览器地址栏中输入:http://localhost:8080/Demo/HelloWorld.jsp,出现以下界面。
注意:假如机房没有安装myeclipse能够安装jcreator编写jsp程序
比如:
test.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY BGCOLOR=cyan>
<FONT Size=1>
<P>这是一个简单JSP页面
<% int i, sum=0;
for(i=1;i<=100;i++)
{ sum=sum+i;
}
%>
<P> 1到100连续和是:
<BR>
<%=sum %>
</FONT>
</BODY>
<HTML>
在浏览器中输入http://localhost:8080/test.jsp
假如页面出现 5050,则说明tomcat工作正常
说明:test.jsp保留在tomcat5.0/webapps/root目录下即可
试验二 Jsp基础(1)
一、试验目标
掌握JSP基础编程方法,了解JSP页面基础结构、变量和方法、类申明、程序片、表示式等。能够使用JSP完成简单程序设计,编写出能够正确运行JSP页面。
二、试验内容
1.使用变量和方法申明编写一个简单页面计数器,用户每刷新一次浏览器,计数器值自加1。
2.使用类申明编写一个求圆面积和周长页面,用户在前台文本框中输入半径值,经过点击按钮求得圆面积和周长。
3.利用程序片求1到100连续和。
三、试验内容及步骤
1. 页面计数器程序编写:
在ROOT文件夹中新建一名为jishuqi.jsp文件,并写入代码:
<%@page contentType="text/html;charset=gbk" %>
<%!
int number=0;
synchronized void countPeople() //synchronized同时
{number++;}
%>
<%
countPeople();
%>
你是第<%=number%>个访问本站用户!
运行结果:经过点击刷新按钮,计数器自动加1:
2. 圆类编写,页面yuan.jsp:
<%@page contentType="text/html;charset=gbk" %>
<p>请输入圆半径:</p>
<form id="form1" name="form1" method="post" action="">
<label>
<input name="r" type="text" id="r" />
</label>
<label>
<input type="submit" name="Submit" value="送出" />
</label>
</form>
<%!
public class Circle
{
double r;
Circle(double r)
{ this.r=r; }
double area()
{ return Math.PI*r*r; }
double zhouchang()
{ return Math.PI*2*r; }
}
%>
<%
String str=request.getParameter("r");
double r;
if(str!=null)
{ r=Double.parseDouble(str); }
else
{r=1;}
Circle circle=new Circle(r); //创建对象
%>
<p>
圆面积是:
<%=circle.area()%>
<p>
圆周长是:
<%=circle.zhouchang()%>
3. 1-100连续和程序片编写:
<%@page contentType="text/html;charset=gbk" %>
<%!
long continueSum(int n)
{
int sum=0;
for(int i=1;i<=n;i++)
{
sum=sum+i;
}
return sum;
}
%>
<p>1到100连续和:
<%
long sum;
sum=continueSum(100);
out.print(""+sum);
%>
试验结果:1到100连续和: 5050
试验三Jsp基础(2)
一、试验目标
1、掌握注释使用方法;
2、掌握JSP指令语法格式及使用方法;
二、试验要求
1、掌握变量申明及使用
2、利用page指令设置contentType属性
3.利用 include指令在JSP页面中静态插入一个文件内容
三、试验内容和步骤
编写三个JSP 页面:first.jsp 、second.jsp和third.jsp。另外,要求用“记事本”编写一个txt文件hello.txt。hello.txt每行有若干个英文单词,单词之间用空格分隔,每行之间用“<BR>”分隔,以下所表示:
Hello123.txt
package apple void back public
<BR>
private throw class hello welcome
1. first.jsp具体要求
first.jsp使用page指令设置contentType属性值是"text/html",使用include指令静态插入hello.txt文件。
程序代码:
<%@ page contentType="text/html; charset=GB2312"%>
<%@ include file="hello.txt" %>
<html>
<head></head>
<body> <p>上面英语信息是从hello.txt文件中加载!</p></body>
</html>
调试结果:
2. second.jsp具体要求,second.jsp使用page指令设置contentType属性值是"application/vnd.ms-powerpoint",使用include指令静态插入hello.txt文件。
程序代码:
<%@ page contentType="application/vnd.ms-powerpoint; charset=GB2312"%>
<html>
<head></head>
<body>
<jsp:include page="hello.txt"/>
</body>
</html>
调试结果:
3. third.jsp具体要求,third.jsp使用page指令设置contentType属性值是"application/msword",使用include指令静态插入hello.txt文件。
程序代码:
<%@ page contentType="application/msword; charset=GB2312"%>
<html>
<head></head>
<body>
<jsp:include page="hello.txt"/>
</body>
</html>
调试结果:
试验四J S P 基础(3)
一、试验目标
掌握常见动作指令使用方法;。
二、试验要求
会利用使用forward实现页面转向。
三、试验内容和步骤
编写3个JSP页面:giveFileName.jsp、readFile.jsp和error.jsp。
1、giveFileName.jsp具体要求
要求giveFileName.jsp页面使用include动作标识动态加载readFile.jsp页面,并将一个文件名字比如ok.txt传输给被加载readFile.jsp页面。
2、readFile.jsp具体要求
要求readFile.jsp负责依据giveFileName.jsp页面传输过来文件名字进行文件
读取操作,假如该文件不存在就使用Forward动作标识将用户转向error.jsp页面。
3、error.jsp具体要求负责显示错误信息。
giveFileName.jsp文件源代码:
<%@ page contentType="text/html;charset=GB2312" %>
<HTMLl>
<BODY>
这是giveFileName.jsp页面
<jsp:include page="readFile.jsp">
<jsp:param name="file" value="D:\Tomcat 6.0\webapps\ROOT\ok.txt"/>
</jsp:include>
</BODY>
</HTML>
readFile.jsp文件源代码:
<%@ page contentType="text/html; charset=GB2312"%>
<%@ page import="java.io.*" %>
<html>
<head></head>
<body>
<%
String s=request.getParameter("file");
File f=new File(s);
if(f.exists())
{
out.println("<br>文件"+s+"内容:");
FileReader in=new FileReader(f);
BufferedReader bIn=new BufferedReader(in);
String line=null;
while((line=bIn.readLine())!=null)
{
out.println("<br>"+line);
}
}
else
{
%>
<jsp:forward page="error.jsp"/>
<%
}
%>
</body>
</html>
error.jsp文件源代码:
<%@ page contentType="text/html; charset=GB2312"%>
<html>
<head></head>
<body>
<p><h1>你要读取文件不存在!</h1></p>
</body>
</html>
调试结果:
当ok.txt文件存在时
当ok.txt文件找不到时
试验五 J S P 内置对象(1)
一、试验目标
了解request对象、response对象和out对象基础使用方法。
二、试验要求
1. 掌握request获取表单数据方法。
2. 掌握response对象页面跳转。
3. 掌握out对象输出。
三、试验内容和步骤
1.设计一个圆面积输出网页,要求利用表单输入圆半径。
程序代码:
<%@ page contentType="text/html;charset=gb2312" %>
<HTML>
<BODY>
<%
//取得输入框中内容
String textContent=request.getParameter("girl");
double r=0,area=0,zhouchang=0;
//强制将取得字符串转换为Double类型
if(textContent!=null)
{
r=Double.parseDouble(textContent);
if(r>=0)
{
area=Math.PI*r*r;
zhouchang=Math.PI*r*2;
}
}
%>
<FORM action="" method=post name=form>
请输入半径!<br>
<INPUT type="text" name="girl" value="<%=r%>">
<INPUT TYPE="submit" value="计算" name="submit"><p>
面积: <INPUT type="text" name="a" value="<%=area%>"> <br>
周长: <INPUT type="text" name="z" value="<%=zhouchang%>">
</FORM>
</BODY>
</HTML>
调试结果:
2. 设计一个用户登录网页,判定用户名是“admin”、密码是“1234”时,转向正确页面“ok.jsp”,不然转向错误页面(err.jsp)
程序代码:
登陆页面源代码
<%@ page contentType="text/html; charset=GB2312"%>
<%@ page import="java.util.*" %>
<html>
<head></head>
<body>
<%! String user1="admin";
String password1="1234";
%>
<%
//取得输入用户名和密码
String User=request.getParameter("user");
String Password=request.getParameter("password");
if(User==null&&Password==null)
{}
else
{
if(user1.equals(User) && password1.equals(Password))
{
response.sendRedirect("ok.jsp");
}
else
{
response.sendRedirect("err.jsp");
}
}
%>
<FORM action="" method=post name=form>
用户名:<INPUT type="text" name="user" > <br>
密  码:<INPUT type="text" name="password" >
<p>           
<INPUT TYPE="submit" value="登陆" name="submit" >
</FORM>
</body>
</html>
ok.jsp页面源代码
<%@ page contentType="text/html; charset=GB2312"%>
<html>
<head></head>
<body>
<p><h1>登陆成功!</h1></p>
<br><h3>欢迎admin到来!</h3>
</body>
</html>
err.jsp页面源代码
<%@ page contentType="text/html; charset=GB2312"%>
<html>
<head></head>
<body>
<p><h1>登陆失败!</h1></p>
<br>你用户名或密码不正确!
</body>
</html>
调试结果:
3. 设计一个会员注册页面,依据用户输入信息,利用程序输出该会员信息到网页。
程序代码:
<%@ page contentType="text/html; charset=GB2312"%>
<html>
<head></head>
<body>
<form id="form1" name="form1" method="post" action="">
<table width="300" border="0" align="center">
<tr>
<td width="100">用户名:</td>
<td width="200"> <input type="text" name="name" /></td>
</tr>
<tr>
<td>密 码:</td>
<td width="200"><input type="text" name="password" /></td>
</tr>
<tr>
<td>确定密码:</td>
<td width="200"><input type="text" name="password1" /></td>
</tr>
<tr>
<td>手机:</td>
<td width="200"><input type="text" name="phone" /></td>
</tr>
<tr>
<td>邮箱:</td>
<td width="200"><input type="text" name="email" /></td>
</tr>
<tr >
<td width="300" align="center"">
<input type="submit" value="注册" /></td>
</tr>
</table>
<p> </p>
<table width="300" border="0" align="center">
<tr>
<td>显示注册信息:</td>
</tr>
<tr>
<td height="158">
<% //取得输入用户信息
String Name=request.getParameter("name");
String Password=request.getParameter("password");
String Password1=request.getParameter("password1");
String Phone=request.getParameter("phone");
String Email=request.getParameter("email");
if(Name==null&&Password==null&&Password1==null&&Phone==null&&Email==null)
{out.println("请将用户信息填写完整!"); }
else
{ out.println("用户名为:"+Name+"<br>");
out.println("密码为: "+Password+"<br>");
out.println("手机为: "+Phone+"<br>");
out.println("邮箱为: "+Email+"<br>");
}
%>
</td>
</tr>
</table>
</form>
</body>
</html>
调试结果:
试验六J S P 内置对象(2)
一、试验目标
了解session对象、applicaiton对象基础使用方法。
二、试验要求
1. 掌握session对象使用和编程。
2.掌握application对象使用和编程。
三、试验内容和步骤
1.利用session和application和其它内置对象,制作一个简易聊天室程序或留言板程序
程序代码:
Submit.jsp页面源代码,用于编辑聊天信息。
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY>
<FORM action="messagePane.jsp" method="post" name="form">
输入您名字:<BR><INPUT type="text" name="peopleName">
<BR>输入您留言标题:<BR><INPUT type="text" name="Title">
<BR>输入您留言:<BR> <TEXTAREA name="messages" ROWs="10" COLS=36 WRAP="physical"></TEXTAREA>
<BR><INPUT type="submit" value="提交信息" name="submit">
</FORM>
<FORM action="showMessage.jsp" method="post" name="form1">
<INPUT type="submit" value="查看留言板" name="look">
</FORM>
</BODY></HTML>
messagePane.jsp页面源代码,获取留言板填写信息,再将这些信息保留到application对象当中,方便用于查看。
<%@ page contentType="text/html;Charset= gb2312" %>
<%@ page import="java.util.*" %>
<HTML><BODY>
<%! Vector v=new Vector();
int i=0; ServletContext application;
synchronized void sendMessage(String s)
{ application=getServletContext();;
i++;
v.add("No."+i+",<br>"+s);
application.setAttribute("Mess",v);
}
%>
<% String name=request.getParameter("peopleName");
String title=request.getParameter("Title");
String messages=request.getParameter("messages");
if(name==null)
{name="guest"+(int)(Math.random()*10000);
}
if(title==null)
{title="无标题";
}
if(messages==null)
{messages="无信息";
}
String s="姓名:"+name+"#"+"标题:"+title+"#"+"内容:"+"<BR>"+messages;
sendMessage(s);
String info="您信息已经提交!";
info=new String(info.getBytes("iso8859-1"));
out.println(info);
%>
<A HREF="submit.jsp" >back
</BODY></HTML>
showMessage.jsp页面源代码,用于显示留言信息。
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.util.*" %>
<HTML><BODY>
<% Vector v=(Vector)application.getAttribute("Mess");
for(int i=0;i<v.size();i++)
{ String message=(String)v.elementAt(i);
StringTokenizer fenxi=new StringTokenizer(message,"#");
while(fenxi.hasMoreTokens())
{ String str=fenxi.nextToken();
byte a[]=str.getBytes("ISO-8859-1");
str=new String(a);
out.print("<BR>"+str);
}
}
%>
</BODY></HTML>
调试结果:
试验七Java bean (1)
一、试验目标
掌握JAVABEAN编写方法及使用。
二、试验要求
1. 会编写bean。
2.会调用编好bean。
三、试验内容和步骤
1. 圆javabean编写及调用
1. 编写一个JavaBean,名为Circle.java,该类有一个半径属性,名为radius,依据JavaBean格式完成SET和GET方法,并写出计算圆面积和圆周长方法;
2. 将该类编译后.class文件存放于tomcat安装路径下Tomcat5.0/webapps/root/web-inf/classes;
3. 编写一个useBean.jsp页面,在该页面中调用Circle.class,完成对半径设置和读取,并计算面积和周长。
程序代码:
Circle.java文件
package sd;
import java.io.*;
public class Circle
{ int radius;
double area,length;
public Circle()
{
}
public int getRadius()
{ return radius;
}
public void setRadius(int newRadius)
{radius=newRadius;
}
public double circleArea()
{return Math.PI*radius*radius;
}
public double circlLength()
{return 2.0*Math.PI*radius;
}
}
useBean.jsp文件:
<%@ page contentType="text/ht
展开阅读全文