欢迎光临
我们一直在努力

用JSP构建动态网站 (3)-JSP教程,Jsp/Servlet

建站超值云服务器,限时71元/月

  六、 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" />
<%= 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(备注型)。这个表中可以存放一些编程知识的常见问题及答案。

  然后,在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 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.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");
out.print("<li>" + rs.getstring("subject") + "</li>");
out.print("<pre>" + tt + "</pre>");
}
rs.close();
%>

  在浏览器的地址栏中键入http://localhost:8080/test/faq.jsp,faq.jsp调用javabean,从数据库中读出内容并输出。

  限于篇幅,本文不能列举jsp-javabean-jdbc/odbc-数据库的复杂例子,读者可以从本文最后所推荐的网址中找到并下载到数据库连接范例。 

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 用JSP构建动态网站 (3)-JSP教程,Jsp/Servlet
分享到: 更多 (0)

相关推荐

  • 暂无文章