1、执行JSP代码需要在服务器上安装JSP引擎。此处我们使用的是Sun的JavaServerWebDevelopmentKit(JSWDK)。为便于学习,这个软件包提供了大量可供修改的示例。安装JSWDK之后,只需执行startserver命令即可启动服务器。在默认配置下服务器在端口8080监听,使用http:/localhost:8080即可打开缺省页面。在运行JSP示例页面之前,请注意一下安装JSWDK的目录,特别是“work”子目录下的内容。执行示例页面时,可以在这里看到JSP页面如何被转换成Java源文件,然后又被编译成class文件(即Servlet)。JSWDK软件包中的示例页面分为两
2、类,它们或者是JSP文件,或者是包含一个表单的HTML文件,这些表单均由JSP代码处理。与ASP一样,JSP中的Java代码均在服务器端执行。因此,在浏览器中使用“查看源文件”菜单是无法看到JSP源代码的,只能看到结果HTML代码。所有示例的源代码均通过一个单独的“examples”页面提供。JSP页面示例下面我们分析一个简单的JSP页面。您可以在JSWDK的examples目录下创建另外一个目录存放此文件,文件名字可以任意,但扩展名必须为.jsp。从下面的代码清单中可以看到,JSP页面除了比普通HTML页面多一些Java代码外,两者具有基本相同的结构。Java代码是通过符号加入到HTML代码
3、中间的,它的主要功能是生成并显示一个从0到9的字符串。在这个字符串的前面和后面都是一些通过HTML代码输出的文本。HEADTITLEJSP页面/HEADBODY%pagelanguage=java%!Stringstr=0;%for(inti=1;i10;i+)str=+i;%JSP输出之前。P%=str%JSP输出之后。/BODY/HTML这个JSP页面可以分成几个部分来分析。首先是JSP指令。它描述的是页面的基本信息,如所使用的语言、是否维持会话状态、是否使用缓冲等。JSP指令由结束。在本例中,指令“”只简单地定义了本例使用的是Java语言(当前,在JSP规范中Java是唯一被支持的语言)
4、。接下来的是JSP声明。JSP声明可以看成是定义类这一层次的变量和方法的地方。JSP声明由如本例中的“”定义了一个字符串变量。在每一项声明的后面都必须有一个分号,就象在普通Java类中声明成员变量一样。位于之间的代码块是描述JSP页面处理逻辑的Java代码,如本例中的for循环所示。最后,位于之间的代码称为JSP表达式,如本例中的“请输入您的姓名:INPUTTYPE=TEXTNAME=thenameTYPE=SUBMITVALUE=SUBMIT/FORM第二个页面是一个JSP页面(q2.jsp),它通过request对象提取q1.html表单中的thename值,将它存储为name变量,然后将
5、这个name值保存到session对象中。session对象是一个名字/值对的集合,在这里,名字/值对中的名字为“thename”,值即为name变量的值。由于session对象在会话期间是一直有效的,因此这里保存的变量对后继的页面也有效。q2.jsp的另外一个任务是询问第二个问题。下面是它的代码:name=%namerequest.getParameter();session.putValue(,name);您的姓名是:name%pq3.jsp您喜欢吃什么?food第三个页面也是一个JSP页面(q3.jsp),主要任务是显示问答结果。它从session对象提取thename的值并显示它,以此
6、证明虽然该值在第一个页面输入,但通过session对象得以保留。q3.jsp的另外一个任务是提取在第二个页面中的用户输入并显示它:food=food(String)session.getValue(您喜欢吃:food%三、引用JavaBean组件JavaBean是一种基于Java的软件组件。JSP对于在Web应用中集成JavaBean组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为JSP应用带来了更多的可伸缩性。JavaBean组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。如果我们有三个JavaBean,它们分
7、别具有显示新闻、股票价格、天气情况的功能,则创建包含所有这三种功能的Web页面只需要实例化这三个Bean,使用HTML表格将它们依次定位就可以了。为说明在JSP环境下JavaBean的应用,我们创建了一个名为TaxRate的Bean。它有两个属性,即Product(产品)和Rate(税率)。两个set方法分别用来设置这两个属性,两个get方法则用于提取这两个属性。在实际应用中,这种Bean一般应当从数据库提取税率值,此处我们简化了这个过程,允许任意设定税率。下面是这个Bean的代码清单:packagetax;publicclassTaxRateProduct;doubleRate;TaxRat
8、e()this.ProductA001this.Rate=5;voidsetProduct(StringProductName)ProductName;getProduct()return(this.Product);setRate(doublerateValue)rateValue;getRate()(this.Rate);在JSP页面中应用上述Bean要用到标记。依赖于具体使用的JSP引擎的不同,在何处配置以及如何配置Bean的方法也可能略有不同。本文将这个Bean的.class文件放在c:jswdk-1.0examplesWEB-INFjsp?eansax目录下,这里的tax是一个专门存放该Bean的目录。下面是一个应用上述Bean的示例页面:useBeanid=taxbeanscope=applicationclass=tax.TaxRate/%taxbean.setProduct(A002taxbean.setRate(17);使用方法1:产品:taxbean.getProduct()%br税率:taxbean.getRate()%A003taxbean.setRate(3);b使用方法2:/bgetProperty
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1