荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: gary (★有所属), 信区: Homepage
标  题: 如何建立jsp服务器(2)
发信站: BBS 荔园晨风站 (Tue Oct 17 15:56:05 2000), 转信

在浏览器的地址栏中键入http://localhost:8080/mypage.jsp,得到结果如图2。
在浏览器的地址栏中键入http://localhost:8080/mypage.jsp,得到结果如图2。
 图2 这样网站的界面就能统一起来,而设计者可以集中精力在功能模块上处理用
户登录、连接数据库、发送email等等。每个JSP文件都有如下结构:


<%@ include file="top.htm" %>
<%
// 实现某些功能
%>
<%@ include file="bot.htm" %>

维护网站的界面也相对比较容易,只要修改top.htm和bot.htm,就能影响到所有网
页。

五、 服务器参数设置
JSWDK的Web服务器参数保存在\jswdk-1.0.1\webserver.xml中,用Windows写字板
打开并编辑这个文件就可以修改缺省设置值。本节内容主要针对JSWDK,Linux下
Tomcat的设置方法略有不同。
JSWDK缺省的文档目录是\jswdk-1.0.1\webpages,在此目录下可以建立子目录,例
如\jswdk-1.0.1\webpages\test,就能在浏览器中用http://localhost/test访问
这个目录,为了使得这个子目录能执行JSP程序,还必须在webserver.xml中的
<Service></Service>节加入:
<WebApplication id="test" mapping="/test" docBase="webpages/test" />
<WebApplication id="test" mapping="/test" docBase="webpages/test" />
并且,还必须建立\jswdk-1.0.1\webpages\test\WEB-INF目录,并从\jswdk-1.0.
1\webpages\WEB-INF目录中复制过来以下四个文件:mappings.properties、
mime.properties、servlets.properties以及webapp.properties。完成这些过程
,才能通知JSWDK的Web服务器执行http://localhost/test 中的JSP程序。

六、 JavaBean
JSP网页吸引人的地方之一就是能结合JavaBean技术来扩充网页中程序的功能。
JavaBean是一种Java类 (class),通过封装属性和方法成为具有某种功能或者处理
某个业务的对象。JavaBean被组织成为package(数据包)以便进行管理,实际上
就是把一组JavaBean一起放在某某目录中,每个类的定义前加上package某某,本
例中为test。目录test必须放在系统环境CLASSPATH包含的目录下,系统才能找到
其中的JavaBean。JSWDK在缺省状态下将\jswdk-1.0.
1\webpages\WEB-INF\jsp\beans\ 加入CLASSPATH。建立自己的JavaBean和
package时,就放在这个目录中也不失为一种简易的方法。
下面介绍一个简单的JavaBean框架。用文本编辑器创建一个文本文件helloWorld.
java,并保存在\jswdk-1.0.1\webpages\WEB-INF\jsp\beans\test目录下,其内容
如下:
package test;
public class helloWorld {
public String name = "My first bean";
public String getHi()
{
{
return "Hello from " + name;
}
}

helloWorld.java编辑好后,在DOS状态下,进入目录\jswdk-1.0.
1\webpages\WEB-INF\jsp\beans\,用JDK的javac命令编译helloWorld.java如下:


javac helloWorld.java

注意,Java是区分大小写的,在程序中,编译命令行中字母的大小写都不能写错。

编译成功就表示建立了一个JavaBean。下面看如何在JSP中使用这个JavaBean。用
文本编辑器创建一个文本文件hi-bean.jsp,并保存在\jswdk-1.0.
1\webpages\test目录下,其内容如下:

<html>
<head>
<title>JavaBean 试验</title>
</head>
<body>
<jsp:useBean id="helloBean" scope="session" class="test.helloWorld" />
<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对象,并命名为
helloBean。读者可从这个简单的例子中看出设置、获取JavaBean属性,以及调用
JavaBean方法的做法。在浏览器的地址栏中键入http://localhost:
8080/test/hi-bean.jsp,得到结果如图3所示。
注意,如果修改和重新编译了JavaBean程序,则需要关闭和重新启动JSWDK的Web服
务器以后修改的结果才会有效。如果仅仅修改JSP文件,则不用重新启动JSWDK的
Web服务器.

虽然,这仅仅完成了一个非常简单的JavaBean框架,但是遵循这个框架可以设计出
多种多样的JavaBean。例如,从JSP中访问数据通常就是通过JavaBean来实现的。


七、 数据库连接
<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对象,并命名为
helloBean。读者可从这个简单的例子中看出设置、获取JavaBean属性,以及调用
JavaBean方法的做法。在浏览器的地址栏中键入http://localhost:
8080/test/hi-bean.jsp,得到结果如图3所示。
注意,如果修改和重新编译了JavaBean程序,则需要关闭和重新启动JSWDK的Web服
务器以后修改的结果才会有效。如果仅仅修改JSP文件,则不用重新启动JSWDK的
Web服务器.

虽然,这仅仅完成了一个非常简单的JavaBean框架,但是遵循这个框架可以设计出
多种多样的JavaBean。例如,从JSP中访问数据通常就是通过JavaBean来实现的。


七、 数据库连接
七、 数据库连接
数据库连接对动态网站来说是最为重要的部分,Java中连接数据库的技术是
JDBC(Java Database Connectivity)。很多数据库系统带有JDBC驱动程序,Java程
序就通过JDBC驱动程序与数据库相连,执行查询、提取数据等等操作。Sun公司还
开发了JDBC-ODBC bridge,用此技术Java程序就可以访问带有ODBC驱动程序的数据
库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如
Oracle、Sybase、MS SQL Server和MS Access等数据库。下面介绍如何用Access实
现一个动态FAQ(常见问题及答案)网站。
首先建立一个Access数据库faq.mdb,其中的表faqs有字段id(自动增量型,并设
为主关键字)、subject(文字型,长度200)、answers(备注型)。这个表中可
以存放一些编程知识的常见问题及答案,如图4。
图 4

然后,在Control Panel(控制面板)的ODBC Datasource模块中加入System DSN,
取名faq,并指向faq.mdb。
创建一个JavaBean,名为faq.java,并保存在\jswdk-1.0.
1\webpages\WEB-INF\jsp\beans\test目录下。faq.java 的内容如下:

package test;
import java.sql.*;

public class faq {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
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) {
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
return rs;
}
}
用上一节介绍的方法编译faq.java以后,在\jswdk-1.0.1\webpages\test目录下创
建JSP文件faq.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");
Virtual Machine)解释执行,比源码解释的效率高;服务器上还有字节码的Cache
机制,能提高字节码的访问效率。第一次调用JSP网页可能稍慢,因为它被编译成
Cache,以后就快得多了。同时,JSP源程序不大可能被下载,特别是JavaBean程序
完全可以放到不对外的目录中。
2、 JSP的组件 (Component) 方式更方便
ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或者复杂
计算分离出来成为独立可重复利用的模块。JSP通过JavaBean实现了同样的功能扩
充。
在开发方面,COM的开发远比JavaBean复杂和繁琐,学会ASP不难,但学会开发COM
可不简单。而JavaBean就简单多了,从本文上述示例中可以看出开发JavaBean很方
便。
在维护方面,COM必须在服务器上注册,如果修改了COM程序,就必须重新注册,甚
至必须关机和重新启动。JavaBean则不需要注册,放在CLASSPATH包含的目录中就
行了。如果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/)
但不是关机),但开发者已经许诺将在以后的版本中做到不需要关闭服务器。
或者ServletExec(http://www.newatlanta.com/),就能支持JSP。著名的Web服务
器Apache已经能够支持JSP。由于Apache广泛应用在NT、Unix和Linux上,因此JSP
有更广泛的运行平台。虽然现在NT操作系统占了很大的市场份额,但是在服务器方
面Unix的优势仍然很大,而新崛起的Linux更是来势不小。
从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字
节码都是标准的与平台无关的。笔者将在NT下实验的JSP网页原封不动地拿到
Linux下就运行起来了,感觉非常满意。
九、 结论
综上所述,JSP可谓是构建动态网站的一个利器,故推荐给读者,祝愿你们掌握
JSP,开发出优秀的网站。ASP程序员也请试一下,JSP里也有session、request、
response/out等对象,亲自试试看如何。

--
   I Believe I Can ...
_____________________________________________________
欢迎光临我的主页          Netdreams!

※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.28.74]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店