JSP程序设计指导书
- 格式:pdf
- 大小:419.28 KB
- 文档页数:53
软件工程系《JSP程序设计》实验指导书专业班级:电商10指导教师:朱亚玲实验一熟悉Java运行环境一、实验目的1.熟悉java的运行环境,并配置环境变量;2.熟悉java程序的编译、解释执行过程;3.初步了解编译过程中的出错信息,改正错误;4.初步掌握Java的编程规则;5.了解并熟悉java的基本数据类型及其操作;6.初步掌握编程结构的特点;了解并熟悉循环结构的设计方法。
二、实验环境与地点PC机一台:JDK6.0+Tomcat6.0+编辑器三、实验内容与步骤1.查看JDK的安装路径、系统变量path的值,并进行记录。
(1)JDK的安装目录是:(2)path的值:2.利用写字板编写一个java源文件,输出以下信息。
中国科学院院士北京大学计算机科学技术系教授杨芙清把源程序保存到目录D:\dianshang10下,并进行编译和运行,得到正确结果。
(1)源程序:public class First { public static void main (String args[]) {System.out.println("中国科学院院士");System.out.println("北京大学计算机科学技术系教授");System.out.println("杨芙清");(2)} }(3)运行步骤及结果:3.在D:\dianshang10目录下有一个Java源文件Area.java,用来求圆的面积。
源文件内容如下:public class area{ //main():程序入口public static void main(String[] args){ //定义常量π,并用标识符VALUE_PAI表示final double VALUE_PAI=3.14;//设置半径double radius=2.5;//进行计算double area=VALUE_PAI*radius*radius;//显示结果System.out.println("The radius is: "+radius);System.out.println("The area of thiscircle is:"+" "+area);}}编译情况如右图所示:根据错误提示,找出错误原因并改正,运行出正确结果并记录。
实验一:JSP页面与JSP标记指导手册实验目的:1、掌握怎样在JSP页面中使用成员变量,掌握使用Java程序片、Java表达式。
2、掌握怎样在JSP页面中使用page指令设置contentType的值,使用include指令在JSP页面中静态插入一个文本的内容。
3、让学生掌握怎样在JSP页面中使用include标记动态加载文件,使用forward动作标记实现页面的转向。
实验要求:1、编写两个JSP页面,名字分别是inputName.jsp和people.jsp。
1)inputName.jsp中输入自己的姓名并提交给people.jsp页面(提示:inputName.jsp中需要用到表单)。
相关知识点:Web页面设计中表单参考代码:<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY bgcolor=cyan><FONT size=3><FORM action="people.jsp" method=get name=form>请输入姓名:<INPUT type="text" name="name"><BR> <INPUT TYPE="submit" value="送出" name=submit></FORM></BODY></HTML>2)people.jsp页面中显示所有提交者的姓名(提示:people.jsp中需要用到成员变量和成员方法的声明)。
相关知识点:成员变量的声明。
思考:成员变量与局部变量的差别。
参考代码:<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY BGCOLOR=yellow><FONT Size=3><%! int count;StringBuffer personList;public void judge(){if(count==0)personList=new StringBuffer();}public void addPerson(String p){if(count==0)personList.append(p);elsepersonList.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){%> <jsp:forward page="inputName.jsp" /><% }judge();addPerson(name);%><BR> 目前共有<%=count%>人浏览了该页面,他们的名字是:<BR> <%=personList%></FONT></BODY></HTML>2、编写三个JSP页面:first.jsp、second.jsp和third.jsp。
jsp课程设计参考书一、课程目标知识目标:1. 让学生掌握JSP(Java Server Pages)的基本概念,理解其工作原理和运行机制。
2. 学会使用JSP的内置对象和指令,能够运用JSP进行动态网页设计。
3. 了解JSP与JavaBean、Servlet的关系,掌握三者结合进行Web开发的方法。
技能目标:1. 培养学生运用JSP技术开发简单Web应用程序的能力。
2. 培养学生通过查阅资料、分析问题、解决问题的实际操作能力。
3. 提高学生的团队协作能力,学会共同分析和解决项目问题。
情感态度价值观目标:1. 激发学生对Web开发技术的兴趣,培养其主动学习和探索的精神。
2. 培养学生严谨、踏实的编程态度,养成良好的编程习惯。
3. 强调诚信、合作、尊重他人成果的价值观,树立正确的网络道德观念。
课程性质:本课程为信息技术学科,旨在让学生掌握JSP技术,培养Web开发能力。
学生特点:本课程面向高年级学生,他们已具备一定的编程基础,具有较强的自学能力和合作意识。
教学要求:课程应注重理论与实践相结合,强调实际操作和项目实践,提高学生的实际应用能力。
同时,关注学生的个性化发展,充分调动学生的积极性和主动性。
通过分解课程目标为具体的学习成果,便于教学设计和评估。
二、教学内容1. JSP基本概念:介绍JSP的定义、作用及与其他Web技术的区别。
- 章节关联:课本第1章JSP概述2. JSP运行环境与配置:讲解JSP运行所需的环境和配置方法。
- 章节关联:课本第2章JSP运行环境与配置3. JSP基本语法与内置对象:学习JSP的基本语法、指令、脚本语言及内置对象的使用。
- 章节关联:课本第3章JSP基本语法与内置对象4. JSP与JavaBean、Servlet的联合应用:探讨JSP与JavaBean、Servlet之间的关系,学习如何结合使用进行Web开发。
- 章节关联:课本第4章JSP与JavaBean、Servlet的联合应用5. JSP数据库操作:介绍如何在JSP中连接数据库,实现数据的增删改查等功能。
《Javascript程序设计》实验指导书一、课程性质和教学目的JavaScrip是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。
它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
学习Javascript必须理论联系实际,多做上机练习。
只有在上机实验过程中才能真正学会程序设计。
本实验报告主要包括学期内各个实验的实验目的、实验内容、实验记录、实验总结等,供学生学习记录,以提高学习效率。
参加实验的学生应参照本报告手册的要求,认真实验,如实填写实验数据,并对实验结果进行分析,阐述实验中所遇到的问题,提出解决问题的方法。
二、实验目的上机实验的目的不仅是为了验证教材和讲课的内容,或者验证自己所编写的程序正确与否。
学习程序设计上机实验的目的是:1.加深对讲授内容的理解,尤其是一些语法规定,课堂讲授既枯燥无味又难以记忆,但它们都很重要。
能过多次上机就能自然地、熟练地掌握。
通过上机掌握语法是行之有效的方法。
2.学会上机调试程序。
即善于发现程序中的错误,并且能很快排除这些错误,使程序能正确运行。
要真正掌握这门课程,不仅应当了解和熟悉有关理论和方法,还要求自己动手实现即会编程并上机调试通过。
故应给予充分重视。
调试程序固然可以借鉴他人的现成经验,但更重要的是通过自己的直接实践来累积经验,而且有些经验是只能意会难以言传。
调试程序的能力是每个程序设计人员应当掌握的一项基本功。
3.做实验时不要在程序通过后就认为搞定、完成任务了,而应当在己通过的程序甚而上作一些改动(例如修改一些参数、增加程序一些功能、改变输入数据的方法等),以观察和分析所出现的情况。
三、上机实验前的准备工作实验前应做好准备工作,以充分利用有限的上机时间。
准备工作至少包括:1.复习和掌握本实验有关的教学内容。
软件工程系《JSP程序设计》实验指导书专业班级:电商10指导教师:朱亚玲实验一熟悉Java运行环境一、实验目的1.熟悉java的运行环境,并配置环境变量;2.熟悉java程序的编译、解释执行过程;3.初步了解编译过程中的出错信息,改正错误;4.初步掌握Java的编程规则;5.了解并熟悉java的基本数据类型及其操作;6.初步掌握编程结构的特点;了解并熟悉循环结构的设计方法。
二、实验环境与地点PC机一台:JDK6.0+Tomcat6.0+编辑器三、实验内容与步骤1.查看JDK的安装路径、系统变量path的值,并进行记录。
(1)JDK的安装目录是:(2)path的值:2.利用写字板编写一个java源文件,输出以下信息。
中国科学院院士北京大学计算机科学技术系教授杨芙清把源程序保存到目录D:\dianshang10下,并进行编译和运行,得到正确结果。
(1)源程序:public class First { public static void main (String args[]) {System.out.println("中国科学院院士");System.out.println("北京大学计算机科学技术系教授");System.out.println("杨芙清");(2)} }(3)运行步骤及结果:3.在D:\dianshang10目录下有一个Java源文件Area.java,用来求圆的面积。
源文件内容如下:public class area{ //main():程序入口public static void main(String[] args){ //定义常量π,并用标识符VALUE_PAI表示final double VALUE_PAI=3.14;//设置半径double radius=2.5;//进行计算double area=VALUE_PAI*radius*radius;//显示结果System.out.println("The radius is: "+radius);System.out.println("The area of thiscircle is:"+" "+area);}}编译情况如右图所示:根据错误提示,找出错误原因并改正,运行出正确结果并记录。
JSP程序设计实验指导书适用专业:计算机科学与技术制定人:梁晟教研室:计算机专业教研室贵阳学院计算机科学系2007年9月实验一 Netbeans下 Jsp编程【实验目的】(1)熟悉Jsp的语法(2)掌握Jsp开发步骤(3)熟练掌握Netbeans开发环境(4)开发简单的登录模块【实验内容:】实现简单的用户登陆功能,不要求连接数据库。
【参考代码:】输入以下代码:Index.jsp<%@page contentType="text/html; charset=GBK"%><html><head><title>login</title></head><body bgcolor="#ffffff"><form action="check.jsp" method="POST"><table><tr><td>用户名:</td><td><input type="text" name="name"/></td></tr><tr><td>密码:</td><td><input type="password" name="pass"/></td></tr><tr><td> </td><td><input type="submit" value="Submit"/></td></tr></table></form></body>Check.jsp<%@ page contentType="text/html; charset=GBK" %> <html><head><title>check</title></head><body bgcolor="#ffffff"><%String name=request.getParameter("name");String pass=request.getParameter("pass");if(name==null)name="";if(pass==null)pass="";if(name.equals("jkx")&&pass.equals("jkx")){%><jsp:forward page="welcome.jsp"/><%}else{%><jsp:forward page="error.jsp"/><%}%></body></html>Welcome.jsp<%@ page contentType="text/html; charset=GBK" %> <html><head><title>welcome</title></head><body bgcolor="#ffffff"><h1>Welcome to China!</body></html>Error.jsp<%@ page contentType="text/html; charset=GBK" %><html><head><title>error</title></head><body bgcolor="#ffffff"><h1>name or password error! <a href="login.jsp">Return to login</a> </h1></body></html>实验二 JDBC 编程【实验目的】(1)熟悉Sqlserver2000常见操作(2)熟悉使用JDBC操作数据库【实验要求】进行JDBC编程,实现数据查询功能。
《JSP编程》教学及实验大纲《JSP编程》课程实验指导书说明与约定一、编写原则编写本指导书的指导原则是:以适应市场经济对计算机专业人才的需要和学生就业需求为宗旨,以学生的实践动手能力培养为重点,突出学生学习的主体地位,给定题目及要求,以学生为主,独立或小组协作完成;鼓励学生创新;实验过程中和课余的其他时间,教师应以辅导、指导、引导为主要教学手段;加强考核,以实践能力考核为指挥棒,促使学生重视程序设计能力的提高。
二、总体要求实验课之前要写出实验预习报告(重点:实验名称、源代码)。
体现Java编程风格(源代码缩进Tab4,块花括号在类、方法名同行,等等),每个类、每个方法都要有功能说明,其说明用文档注释方式表示/*……*/。
实验一JSP页面与JSP标记(4学时)一、实验目的1.掌握JDK的安装配置2.熟悉Tomcat的配置3.测试JSP的运行环境4.掌握JSP的页面的基本结构5.掌握JSP的指令标记和动作标记二、实验要求1.实验课之前,下载最新版本的JDK和Tomcat,并在自备微机上安装配置。
2.实践内容:根据实验任务1~任务3要求,编写程序,调试运行。
3.该实验共有3个任务。
要求在webapps目录下新建一个Web服务目录:test1。
除特别要求外,本章实验中涉及的JSP页面均保存在test1中。
任务1JSP页面的基本结构1.相关知识点一个JSP页面可由普通的HTML标记、JSP标记、成员变量和方法的声明、Java 程序片以及Java表达式组成。
JSP引擎把JSP页面中的HTML标记交给用户的浏览器执行显示;JSP引擎负责处理JSP标记、变量和方法声明;JSP引擎负责运行Java程序片、计算Java 表达式,并将需要显示的结果发送给用户的浏览器。
JSP页面中的成员变量是被所有用户共享的变量。
Java 程序片可以操作成员变量,任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。
如果多个用户访问一个JSP页面,那么该页面中的Java程序片就会被执行多次,分别运行在不同的线程中,即运行在不同的时间片内。
实验一: JSP开发环境的配置一.实验目的1.掌握Tomcat5.0的安装2.熟悉Tomcat5.0的设置3.熟悉第一个JSP文件的编写、发布二.实验内容1.安装Tomcat5.02.发布第一个JSP页面三.实验软件JDK5.0、Tomcat5.0四.实验步骤1.将JDK5.0和Tocmat5.0拷贝到本机2.安装JDK5.03.安装Tomcat5.0注:采用默认安装设置,端口号为80804.测试Tomcat5.0(1)启动Tomcat5.0(2)在IE浏览器中输入如果出现欢迎界面,则表示Tomcat安装成功。
5.编写发布第一个JSP文件(1)在Tomcat的安装目录下webapps/Root新建1.jsp文件<%@ page langugage=”java” import=”java.util.*” %> <HTML><BODY>当前时间为:<%= new Date()%></BODY></HTML>(2)测试1.jsp文件在IE浏览器中输入 http://127.0.0.1:8080/1.jsp实验二: 静态注册页面的编写一.实验目的1.掌握HTML常见标记2.熟悉JavaScript脚本二.实验内容1.编写一个含有文本输入框、密码框、下拉框、单选框、多选框、提交按钮的用户注册页面2.当提交的时候,进行数据检测,如果用户名为空,则提示错误。
三.实验软件JDK5.0、Tomcat5.0四.实验步骤1.在Tomcat的Webapps/root下新建如下reg.html文件<html><head><title>表单输入验证示例</title><script type="text/javascript">function validate(){var userName=document.forms[0].userName.value;if(userName.length<=0) alert("用户名不能为空!");else{alert("验证通过,表单可以提交!");document.forms[0].submit();}}</script></head><body><form action="" method="post">用户名:<input type="text" name="userName"></input><br>密码:<input type="password" name="password"></input><br> 重新输入密码:<input type="password" name="rePassword"></input><br>性别:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br>出生日期:<select name="birth"><option value="0">-请选择-</option><option value="1981">1981</option><option value="1982">1982</option><option value="1983">1983</option><option value="1984">1984</option><option value="1985">1985</option><option value="1986">1986</option></select>年<br>兴趣:<input name="habit" type="checkbox" value="1">音乐</input><input name="habit" type="checkbox" value="2">动漫</input> <input name="habit" type="checkbox" value="3">电影</input><br><input type="button" value="提交" onClick="validate()"/> <input type="reset" value="取消" /></form></body></html>2.测试reg.htm文件在IE浏览器中输入 http://127.0.0.1:8080/reg.html实验三: JSP语法基础一.实验目的1.掌握表单的提交2.掌握JSP内置对象request、response、out的使用二.实验内容1.编写一个含有文本输入框、密码框的登陆页面login.html2.编写一个登陆验证页面logincheck.jsp,如果用户输入的用户名为admin,密码为123,则转到index.jsp文件,否则,提示登陆失败。
第1章JSP概述1.4 实验:编写、保存、运行JSP页面number.jsp<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY BGCOLOR=yellow><FONT Size=3>如果一个正整数刚好等于它的真因子之和,这样的正整数为完数,<br> 例如,6=1+2+3,因此6就是一个完数。
<br> 1到1000内的完数有:<% int i,j,sum;for(i=1,sum=0;i<=1000;i++){for(j=1;j<i;j++){if(i%j==0)sum=sum+j;}if(sum==i)out.print(" "+i);}%></FONT></BODY></HTML>习题一解答1.答:确保Tomcat服务器使用的是Java_home环境变量设置的JDK2.答:见1.3.2中的新建Web服务目录。
3.答:在浏览器的地址栏中键入:http://IP:端口号/Web服务目录/子目录/JSP页面。
4.答:修改Tomcat服务器安装目录中conf文件夹中的主配置文件:server.xml,只要没有其他应用程序正在占用80,就可以将端口号设置为80。
第2章JSP页面与JSP标记实验1:JSP页面的基本结构inputName.jsp<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY bgcolor=cyan><FONT size=3><FORM action="people.jsp" method=get name=form>请输入姓名:<INPUT type="text" name="name"> <BR> <INPUT TYPE="submit" value="送出" name=submit></FORM></BODY></HTML>people.jsp<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY BGCOLOR=yellow><FONT Size=3><%! int count;StringBuffer personList;public void judge(){if(count==0)personList=new StringBuffer();}public void addPerson(String p){if(count==0)personList.append(p);elsepersonList.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){%> <jsp:forward page="inputName.jsp" /><% }judge();addPerson(name);%><BR> 目前共有<%=count%>人浏览了该页面,他们的名字是:<BR> <%=personList%></FONT></BODY></HTML>实验2:JSP指令标记first.jsp<%@ page contentType="text/plain" %><HTML> <BODY > <FONT size=4 color=blule><%@include file="hello.txt" %></FONT> </BODY></HTML>second.jsp<%@ page contentType="application/vnd.ms-powerpoint" %><HTML> <BODY > <FONT size=2 color=blule><%@include file="hello.txt" %></FONT> </BODY></HTML>third.jsp<%@ page contentType="application/msword" %><HTML> <BODY > <FONT size=4 color=blule><%@include file="hello.txt" %></FONT> </BODY></HTML>习题二解答1.答:“<%!”和“%>”之间声明的变量在整个JSP页面内都有效,称为JSP页面的成员变量,成员变量的有效范围与标记符号<%!、%>所在的位置无关。
所有用户共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。
“<%”和“%>”之间声明的变量称为局部变量,局部变量在JSP页面后继的所有程序片以及表达式部分内都有效。
运行在不同线程中的Java程序片的局部变量互不干扰,即一个用户改变Java程序片中的局部变量的值不会影响其他用户的Java程序片中的局部变量。
当一个线程将Java程序片执行完毕,运行在该线程中的Java程序片的局部变量释放所占的内存。
2.答:两次。
3.答:不允许。
允许。
4.答:第一个用户看到的sum的值是610,第二个用户看到的sum的值是12105.答:<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY><%for(char c='A';c<='Z';c++){out.print(" "+c);}%></BODY></HTML>6.答:include指令标记的作用是在JSP页面出现该指令的位置处,静态插入一个文件,即JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。
因此,插入文件后,必须保证新合并成的JSP页面符合JSP语法规则,即能够成为一个JSP页面文件。
include动作标记告诉JSP页面动态加载一个文件,不把JSP页面中动作指令include所指定的文件与原JSP页面合并一个新的JSP页面,而是告诉Java解释器,这个文件在JSP运行时(Java文件的字节码文件被加载执行)才被处理。
如果包含的文件是普通的文本文件,就将文件的内容发送到客户端,由客户端负责显示;如果包含的文件是JSP文件,JSP引擎就执行这个文件,然后将执行的结果发送到客户端,并由客户端负责显示这些结果。
7.答:main.jsp:<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY><jsp:include page="lader.jsp"><jsp:param name="a" value="5" /><jsp:param name="b" value="6" /><jsp:param name="h" value="10" /></jsp:include></BODY></HTML>lader.jsp:<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY><%String strA=request.getParameter("a");String strB=request.getParameter("b");String strH=request.getParameter("h");double a=Double.parseDouble(strA);double b=Double.parseDouble(strB);double h=Double.parseDouble(strH);double area=(a+b)*h/2;%><P> 梯形面积:<%=area%></BODY></HTML>第3章Tag文件与Tag标记实验1:使用标记体putImage.jsp<%@ page contentType="text/html;Charset=GB2312" %><%@ taglib tagdir="/WEB-INF/tags" prefix="pic"%><html> <body><Font size=2 color=blue>表格每行重复显示一幅图像</font><table border=2><pic:Image><image src="a.jpg" width=80 height=60/></pic:Image><pic:Image><image src="b.jpg" width=80 height=60/></pic:Image><pic:Image><image src="c.jpg" width=80 height=60/></pic:Image></table></body></html>●Tag文件参考代码Image.Tag<tr><td> <jsp:doBody/> </td><td> <jsp:doBody/> </td><td> <jsp:doBody/> </td></tr>实验2:使用attribute和variable指令●JSP页面参考代码inputAndShow.jsp<%@ page contentType="text/html;Charset=GB2312" %><%@ taglib tagdir="/WEB-INF/tags" prefix="computer"%><HTML>输入的三个数值a,b,c(代表三角形的三边或梯形的上底、下底和高):<BODY color=cyan><FORM action="" method=get name=form><table><tr> <td>输入数值a:</td><td><INPUT type="text" name="a"></td></tr><tr> <td>输入数值b:</td><td><INPUT type="text" name="b"></td></tr><tr> <td>输入数值c:</td><td><INPUT type="text" name="c"></td></tr></table><INPUT type="radio" name="R" value="triangle" >代表三角形<INPUT type="radio" name="R" value="lader">代表梯形<br> <INPUT TYPE="submit" value="提交" name=submit></FORM><% String a=request.getParameter("a");String b=request.getParameter("b");String c=request.getParameter("c");String cd=request.getParameter("R");if(a==null||b==null||c==null){a="0";b="0";c="0";cd="0";}if(a.length()>0&&b.length()>0&&c.length()>0){%> <computer:GetArea numberA="<%=a%>" numberB="<%=b%>"numberC="<%=c%>" condition="<%=cd%>"/><br> <%=message%><br> <%=area %><% }%></BODY></HTML>Tag文件参考代码GetArea.Tag<%@ attribute name="numberA" required="true" %><%@ attribute name="numberB" required="true" %><%@ attribute name="numberC" required="true" %><%@ attribute name="condition" required="true" %><%@ variable name-given="area" variable-class="ng.Double" scope="AT_END" %> <%@ variable name-given="message" scope="AT_END" %><%!public double getTriangleArea(double a,double b,double c){if(a+b>c&&a+c>b&&c+b>a){double p=(a+b+c)/2.0;double area=Math.sqrt(p*(p-a)*(p-b)*(p-c)) ;return area;}elsereturn -1;}public double getLaderArea(double above,double bottom,double h){double area=(above+bottom)*h/2.0 ;return area;}%><% try{ double a=Double.parseDouble(numberA);double b=Double.parseDouble(numberB);double c=Double.parseDouble(numberC);double result=0;if(condition.equals("triangle")){result=getTriangleArea(a,b,c);jspContext.setAttribute("area",new Double(result));jspContext.setAttribute("message","三角形的面积");}else if(condition.equals("lader")){result=getLaderArea(a,b,c);jspContext.setAttribute("area",new Double(result));jspContext.setAttribute("message","梯形的面积");}}catch(Exception e){jspContext.setAttribute("area",new Double(-1.0));jspContext.setAttribute("message",""+e.toString());}%>习题三解答1.不可以2.如果某个Web服务目录下的JSP页面准备调用一个Tag文件,那么必须在该Web服务目录下,建立目录:Web服务目录\WEB-INF\tags,其中,WEB-INF和tags都是固定的子目录名称,而tags下的子目录名字可由用户给定。