首页 > 图灵资讯 > 技术篇>正文

用JSP构建动态网站

2024-02-19 11:26:22

  一、 JSP是什么? JSP(JavaServer Pages)是由Sun Microsystems公司倡导,很多公司参与一起建设 动态网页技术标准,其网站为http://www.javasoft.com/products /jsp。HTML文件在传统网页上(*.htm,*.html)加入Java程序片段(Script let)还有JSP标记(tag),构成JSP网页(*.jsp)。遇到访问JSS的Web服务器 P网页请求时,首先执行程序片段,然后以HTML格式将执行结果返回给客户 户。程序片段可以操作数据库、重新定向网页和发送 email 等等,这就是建立 动态网站所需的功能。所有程序操作都在服务器端执行,并在网络上传输给客户端 只有结果,对客户浏览器的要求最低,才能实现无Plugin,无ActiveX, 无Java Applet,甚至没有Frame。 本文将介绍利用JSP技术开发动态网页的方法,并简要分析JSP技术和 Microso ft 公司的 ASP 技术的差异。

  二、 如何安装和启动 要实验JSP技术,首先要建立运行环境,这个过程相当简单:

  1、在 http://java.sun.com/jdk/下载JDK(Java 2 SDK、Standard Edi tion、v 1.2.2)。

  2、在http://java.sun.com/products/jsp/下载JSWDK(JavaServer We b Development Kit 1.0.1)。htttpp用户可以使用Linux://jakarta.apache.org /Tomcat在哪里下载 3.0。

  3、安装 Windows 以NT环境为例,JDK的安装是JDK1_2_2-win.exe,然 修改系统环境参数后,将其添加到PATH参数中[x:]jdk1.2.2bin和增加新的环境 参数 CLASSPATH=[x:]jdk1.2.2libtools.jar,其中[x:]是安装JDK的硬盘 符(c:、d: 等)。 JSWDK的安装只需要JSWDK1_0_1-win.zip带目录释放到硬盘 根目录下(c:、d: 等待),然后在硬盘上找到jswdk-1.0.1目录。 JSWDK的安装只需要JSWDK1_0_1-win.zip带目录释放到硬盘 根目录下(c:、d: 等待),然后在硬盘上找到jswdk-1.0.1目录。未来如此 如果您不想保留JSWDK,只需删除此目录,系统文件和注册表中没有遗留问题 。Solariss和Solaris更详细的安装过程/下一步Unix和LinuxJDK、可参考Tomcat的安装 文件包中的安装说明。

  4、启动 Windows 以NT环境为例,jswdk-1.0.Startserver在目录下执行.bat,就可启动 支持JSP网页技术的Web服务器是JSWDK中的一种。为了不与现有的Web服务器(如III) S、PWS等)冲突,JSWDKWeb服务器使用8080端口。在浏览器的地址栏中键入 http://localhost:8080或http://127.0.0.1:如果能看到8080后, J SWDK 欢迎页表明JSP实验环境已经建成,可以进入下一个实验。关闭Web服务 运行stopserver.bat。

  三、 简单的JSP示例 在缺省状态下,JSWDK中包含的Web服务器的文档目录为JSWDK-1.0.1webpages,主文 缺省状态下的index.html和index.jsp。也就是说,访问httpp://localhost :8080等于访问jswdk-1.000.webpagesindex.html。 Windows等文本编辑器中的记事本(Notepad),创建文本文件hi.jsp, jswdk-1.0.1webpages目录,内容如下: 〈html》 〈head》 〈title》Hi-JSP实验〈/title》 〈/head》 〈body》 〈% String Msg = "This JSP test."; out.print("Hello World!"); %》 〈h2》〈%=Msg%》〈/h2》 〈/body》 〈/html》 在浏览器的地址栏中键入http://localhost:8080/hi.jsp,Web服务在JSWDK中 JSP将由服务器执行 文件中用〈%Java程序语句,其中out.print是将军 文本输出到网页,句子〈%= 变量 表达式%的作用是将Java 变量或Scriptlet 表达值输出到网页. 将变量Msg赋值为中文字符串〈%= %》输出,或使用out.在print中输出文字符符 串,在英文版NT4和Redhat 6.1实验运行结果正常,中文NT 4.0和中文9 8下,反而会出现乱码。

  四、 网站界面统一 JSP支持服务器端的文件包括在JSP文件中插入多个其他文件 实现网站界面统一。修改上述hi.mypagee存在jsp并另存为jsp.jsp: 〈%@ include file="top.htm" %》 〈% String Msg = "This JSP test."; out.print("Hello World!"); %》 〈h2》〈%=Msg%》〈/h2》 〈%@ include file="bot.htm" %》 使用可视化HTML编辑器,如FrontPage、设计网站的框架结构,如Dreamweave,将设置 计算出的框架结构文件分为两部分,其中一半保存为top.htm, 保存下半部分 为bot.htm,代码如下: 〈html》 〈head》 〈meta http-equiv="Content-Type" content="text/html; charset=gb2312" 》 〈title》我的主页〈/title》 〈/head》 〈body》 〈table border="0" width="100%" cellpadding="4" cellspacing="0" align= "center"》 〈tr》 〈td width="100%" colspan="2" bgcolor="#837ED1" align="center"》〈font face="隶书" color="#FFFF00" size=5》主页标题〈/font》 〈/td》 〈/tr》 〈tr》 〈td bgcolor="#837ED1" width="15%" valign="top" align="center"》〈br》 〈font color="#FFFFFF"》选项〈/font》〈p》〈font color="#FFFFFF"》选项 〈/font》〈/p》 〈p》〈font color="#FFFFFF"》选项〈/font》〈/p》 〈p》〈font color="#FFFFFF"》...〈/font》〈/p》 〈p》 〈/p》 〈/td》 〈td width="85%" valign="top"》 ---------------------------------------------------------------------- ------------------------------------------ 〈/td》 〈/tr》 〈/table》 〈/body》 〈/html》 在浏览器的地址栏中键入http://localhost:8080/mypage.jsp. 这样网站的界面就可以统一起来,设计师可以专注于处理功能模块中的用户登录 记录、连接数据库、发送email等。每个JSP文件都有以下结构: 〈%@ include file="top.htm" %》 〈% // 实现某些功能 %》 〈%@ include file="bot.htm" %》 只要修改top,维护网站界面就相对容易。.htm和bot.htm,一切都会受到影响 网页。

  五、 设置服务器参数 jswdk-1.0保存JSWDKWeb服务器参数.webserver.在xml中,用Windows写字板打字 本文件可以通过打开和编辑来修改缺省设置值。 五、 设置服务器参数 jswdk-1.0保存JSWDKWeb服务器参数.1webserver.在xml中,用Windows写字板打字 本文件可以通过打开和编辑来修改缺省设置值。本节主要针对JSWDK和Linux。To mcat的设置方法略有不同。 JSWDK缺失的文档目录是jswdk-1.0.1webpages可以在此目录下建立子目录 例如jswdk-1.0.1webpagestest,可在浏览器中使用httpp://localhost/test访 问问这个目录,让这个子目录能够执行JSP程序,还必须在webserver中使用.xml中的 〈Service》〈/Service》节加入: 〈WebApplication id="test" mapping="/test" docBase="webpages/test" / 》 并且,jswdk-1.0.1webpagestestweb-INF目录,从jswdk-1.0.1 webpagesWEB-以下四个文件被复制到INF目录中:mappings.properties、mime.p roperties、servlets.properties,webapp.properties。只有完成这些过程,才能 通知JSWDKWeb服务器执行http://localhost/test JSP程序在中间。只有完成这些过程,才能 通知JSWDKWeb服务器执行http://localhost/test JSP程序。

  六、 JavaBean JSP网页的吸引力之一是结合JavaBean技术扩展网页中程序的功能。 JavaBean是Java类 (class),通过包装属性和方法,具有一定的功能或方法 处理一个业务对象。Javabean被组织成package(数据包)进行管理 其实就是把一组Javabean放在某个目录里,在定义每个类别之前加上package。 ,本例为test。在系统环境CLASSPATH包含的目录下,必须将目录test放置在系统中 找到JavaBean。Jswdk-1.0.WebpagesWEB-INFjspbe ans 加入CLASSPATH。在建立自己的Javabean和package时,不要把它们放在这个目录中 失去是一种简单的方法。 下面介绍一个简单的JavaBean框架。使用文本编辑器创建一个文本文件helloworld .java,jswdk-1.0.1webpagesweb-INFjspbeanstest目录,其内容如下 : package test; public class helloWorld { public String name = "My first bean"; public String getHi() { return "Hello from " + name; } } helloWorld.编辑java后,进入目录jswdk-1.0的DOS状态.WEBEB1webpages-I NFjspbeans,helloworld,用JDK的javac命令编译.java如下: javac helloWorld.java 请注意,Java区分大小写。在程序中,编译命令行中字母的大小写不能写错 。成功的编译意味着建立了JavaBean。编译成功意味着建立了JavaBean。下面这个JavaBean是如何在JSP中使用的。 用文本编辑器创建文本文件-bean.jsp,jswdk-1.0.webpagestest st目录下,内容如下: 〈html》 〈head》 〈title》JavaBean 试验〈/title》 〈/head》 〈body》 〈jsp:useBean id="helloBean" scope="session" class="test.helloWorld" /》 〈%= helloBean.getHi() %》 〈hr》 〈% helloBean.name = "JSP"; out.print(helloBean.getHi()); %》 〈/body》 〈/html》 在JSP网页中,使用 〈jsp:useBean ... /》创建JavaBean对象的语法,并命名 为hellloBean。读者可以从这个简单的例子中看到设置,获得JavaBean属性,以及调整。 采用JavaBean方法。读者可以从这个简单的例子中看到设置,获得JavaBean属性,以及调整。 使用JavaBean方法。在浏览器的地址栏中键入httpp://localhost:8080/ test/hi-bean.jsp,结果如图3所示。请注意,如果JavaBe被修改和重新编译 An程序需要关闭和重新启动JSWDK的Web服务器才能有效地修改结果。如 如果只修改JSP文件,则无需重新启动JSWDKWeb服务器。 虽然这只完成了一个非常简单的Javabean框架,但遵循这个框架可以设计 各种Javabean。例如,通常通过JavaBean来访问JSP中的数据 。

  七、 数据库连接 数据库连接是动态网站最重要的部分。JDBC是Java中连接数据库的技术 (Java Database Connectivity)。许多数据库系统都有JDBC驱动程序,Java程序 通过JDBC驱动程序连接到数据库,执行查询、提取数据等操作。Sun公司还 JDBC的开发-ODBC bridge,使用此技术,Java程序可以访问ODBC驱动程序的数量 目前,大多数数据库系统都有ODBC驱动程序,因此Java程序可以访问OrBC驱动程序 acle、Sybase、MS SQL Server和MS Access等数据库。下面介绍如何使用Access? 现在是一个动态FAQ(常见问题及答案)网站。首先,建立Access数据库faq.mdb, 表faqs有字段id(自动增量型,并设置为主关键字)、subject(文字型,长 度200)、answers(备注型)。一些常见的编程知识问题和答案可以存储在这个表中 案, 然后在Control PanelODBC(控制面板) 将Systeme添加到Datasource模块中 DSN ,命名faq并指向faq.mdb。 创建一个名为faq的JavaBean.java,并且保存在jsw中 dk-1.0.1webpagesweb-INFjspbeanstest目录下。faq.java 内容如下: package test; import java.sql.*; public class faq { String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; String sConnStr = "jdbc:odbc:faq"; Connection conn = null; ResultSet rs = null; public faq() { try { Class.forName(sDBDriver); } catch(java.lang.ClassNotFoundException e) { System.err.println("faq(): " + e.getMessage()); } } public ResultSet executeQuery(String sql) { rs = null; try { conn = DriverManager.getConnection(sConnStr); Statement stmt = conn.createStatement(); rs = stmt.executeQuery(sql); } catch(SQLException ex) { System.err.println("aq.executeQuery: " + ex.getMessage()); } return rs; } } 用上一节介绍的方法编译faq.java之后,jswdk-1.0.创建webpagestest目录 faqJSP文件.jsp,内容如下: 〈html》 〈head》 〈meta http-equiv="Content-Type" content="text/html; charset=gb2312" 》 〈title》我的FAQ !〈/title》 〈/head》 〈body》 〈p》〈b》这是我的FAQ!〈/b》〈/p》 〈%@ page language="java" import="java.sql.*" %》 〈jsp:useBean id="workM" scope="page" class="test.faq" /》 〈% ResultSet RS = workM.executeQuery("SELECT * FROM faqs"); String tt; while (RS.next()) { tt = RS.getString("Answer"); out.print("〈LI》" + RS.getString("Subject") + "〈/LI》"); out.print("〈pre》" + tt + "〈/pre》"); } RS.close(); %》 在浏览器的地址栏中键入http://localhost:8080/test/faq.jsp,faq.js P调用JavaBean,从数据库中读取内容并输出. 由于篇幅有限,本文不能列出JSP-JavaBean-JDBC/ODBC-读者可以使用数据库的复杂例子 从本文最后推荐的网站中找到并下载到数据库连接示例。 八、 技术分析 Microsoft 公司的 ASP 技术也是动态网页开发技术。

  八、 技术分析 Microsoft 公司的 ASP 技术也是动态网页开发技术。JSP和ASP在形式上非常相似 ,ASP程序员一眼就能认出来〈% %》以及〈%= %》。但是,如果你深入探索,你会发现它们 许多差异,其中最重要的有以下三点: 1、 JSP的效率和安全性更高 ASP以源码的形式存储,并以解释的形式运行。每次ASP网页调用时,都需要解释源码 ,运行效率低。此外,IIS的漏洞暴露了许多网站源程序,包括作者以前 用ASP开发的网站,ASP程序全部下载。 JSP在执行之前被编译成字节码 (byte code),Java虚拟机的字节码(Java Virtual Machine)解释执行效率高于源代码解释;Cac,服务器上有字节码 he机制可以提高字节码的访问效率。JSP网页的第一次调用可能有点慢,因为它被编译了 成为Cache,以后会快得多。同时,JSP源程序不太可能下载,尤其是JavaBean 程序可以放在非外部目录中。 2、 JSP组件 (Component) 方式更方便 ASP通过COM扩展复杂的功能,如文件上载、email发送、业务处理或复杂 计算分离成为一个独立且可重复使用的模块。JSP通过JavaBean实现了相同的功能扩展 充。 在开发方面,COM的开发远比JavaBean复杂繁琐,学习ASP并不难,但学会开发COM M不简单。Javabean要简单得多。从本文的上述示例可以看出,Javabean的开发非常简单 方便。 在维修方面,COM必须在服务器上注册,如果COM程序被修改,则必须重新注册, 它甚至必须关闭并重新启动。在CLASSPATH中包含的目录中,JavaBean不需要注册 就行了。如果Javabean被修改,JSWDK和Tomcat仍需关闭和重新运行 (但不是关机),但开发者已经承诺在未来版本中不需要关闭服务器。 此外,Javabean是一个完整的OOP,可以方便地为不同的业务处理功能建立一套完整的可重量 复用对象库,如用户权限控制、email自动回复等。 3、 JSP的适应平台更广 目前ASP只适用于NT和IIS。虽然Unix下有ChiliSoft插件支持ASP,但ASP本 身体的功能有限,必须通过ASP+COM的组合来扩展。Unix下的COM很难实现 。 JSP则不同,几乎所有平台都支持Java,JSP+JavaBean可以在所有平台下无阻通行 。NT下IIS通过一个插件,如JRUN(http://www3.allaire.com/products/ jrun/)或者说Servletexecececececece(http://www.newatlanta.com/),支持JSP 。著名的Web服务器Apache已能够支持JSP。由于Apache在NTAPache中的广泛应用、Unix和 在Linux上,JSP有更广泛的运行平台。虽然NT操作系统现在占据了很大的市场份额 然而,Unix在服务器方面的优势仍然很大,而新兴的Linux则来势不小。 JSP和JavaBean甚至不需要从一个平台移植到另一个平台,因为Java字 与平台无关的节码是标准的。作者将在NT下实验JSP网页原封不动地获得Lin ux运行起来,感觉很满意。

  九、 结论 综上所述,JSP是构建动态网站的利器,所以推荐给读者。祝你掌握J SP,开发出优秀的网站。请尝试ASP程序员。JSP中也有session、request、 response/out等对象,亲自试试怎么样。

上一篇 实 现JAVA 的 动 态 类 载 入 机 制
下一篇 java的优点再谈!

文章素材均来源于网络,如有侵权,请联系管理员删除。