资源描述
.
JSP动态网页开发
实验〔训〕指导书
王振铎编
思源学院
电子信息工程学院
94 / 97
说 明
《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 servlet58
实验十二用户注册程序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公司官方〔.oracle./technetwork/java/index.html〕下载JDK,现在最新的是Java SE6 Update22,我们采用的JDK1.6 Update 21,只需要双击中下载到的EXE文件,点下一步即可安装。JDK安装好后,需要配置Java的环境变量,步骤如下:
〔1〕我的电脑->属性->高级选项卡->环境变量,翻开“环境变量〞对话框,在系统变量中新建以下环境变量:
①JAVA_HOME:表示Java SDK的安装目录,其值为: D:\Program Files\Java\jdk_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浏览器地址栏中输入: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或其他浏览器的地址栏中输入: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>
在浏览器中输入localhost:8080/test.jsp
如果页面出现 5050,那么说明tomcat工作正常
说明:
实验二 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页面中静态插入一个文件的容
三、实验容与步骤
“记事本〞编写一个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/html;charset=GB2312" %>
<% page import="sd.Circle"%>
<HTML><BODY bgcolor=cyan><Fo
展开阅读全文