当前位置:  编程技术>java/j2ee

JSP技术生成动态web页面

    来源: 互联网  发布时间:2014-10-15

    本文导语:  随着WEB技术的发展,WEB内容从一些静态的页到内容丰富的动态页。对于广大WEB开发人员来讲动态页面的生成是一个挑战。有许多的方法来试图解决这个问题,如plug-in技术及基于服务器端的APIs等方法,但存在...


随着WEB技术的发展,WEB内容从一些静态的页到内容丰富的动态页。对于广大WEB开发人员来讲动态页面的生成是一个挑战。有许多的方法来试图解决这个问题,如plug-in技术及基于服务器端的APIs等方法,但存在的一个问题是这些方法是针对某个特定的web服务器,如Microsoft提供的ASP技术就只针对它的IIS及Personal web服务器。 
目前用于生成动态网页较为流行的方法有CGI、PHP及JavaServer Page(JSP)技术等。其中:CGI通过访问其它应用程序来获取信息并返回给浏览器,CGI程序通常用C或PERL语言来开发;Jsp则通过将Jsp组件编译成Java Servlet在服务器端运行来实现动态内容。下面从几个方面比较Jsp与传统CGI的特性: 
可移植性: 
大多WEB服务器支持CGI接口,但CGI程序自身并不能跨平台运行; Java Servlet程序则具有JAVA程序的优点,可运行在任何平台之上,大多数WEB及应用服务器都支持JAVA及servlet API。 
性能上: 
传统的CGI环境下,每一次client对CGI程序的请求,都使服务器产生一个新的进程来装载、执行CGI程序。大量的并行请求大大降低了其性能;JSP则没有这个局限,每个程序装载一次,并驻留在服务器内存为以后请求服务。另外JSP在多线程的编写与控制方面比CGI容易得多。 
开发及发布: 
由于Java Servelt具有JAVA的所有优点,开发起来也相对容易,java简化了对异常的处理;它的面向对象特性使开发人员的协作成为一件简单的事。JSP技术从如下几个方面加快动态网站开发: 
1) 将静态页面的开发和动态内容的生成分开 
JSP中通过使用HTML或XML标记来规划、设计WEB页的布局和风格;而用JSP标记来实现动态的内容,生成动态内容的部分被封装起来运行于服务器端;这样页面布局和风格可单独编辑与调试而不影响动态内容生成。 
2) 组件的重用 
多数JSP页通过重用无平台无关的组件—javaBeans来完成复杂的要求。这些组件可在开发人员中重复使用。 
3) 通过标记来简化页面开发 
通过JSP提供了标记,开发人员可以很容易使用beans组件,设置和访问它们的属性。同时JSP也允许用户自定义标记,还可接受第三方开发的标记,从而可以方便使用第三方提供的功能组件。 
在对JSP的特点有所了解之后,接下来就谈谈JSP的安装与开发实例。(操作系统以Nt4.0为例) 
为运行JSP page需要安装jdk及jswdk。首先安装jdk,在jdk安装完成后,要确保javac及java能正常工作。然后安装jswdk,实际上只需把jswdk解压到一个目录即可。为了使jswdk正常运行,还需要对环境变量CLASSPATH做如下修改: 
如果使用JDK1.1,则不需修改CLASSPATH;如果使用JDK1.2,则设置环境变量JAVA_HOME,使其指向JDK安装路径。 
完成上述工作后,就可以启动Java WebServer了。 
执行jswdk目录下的startserver.bat文件来启动Java Server,该Web server使用的默认端口为8080。如果Web server新动后,需要重新启动则需要先停止已启动的Web server,执行stopserver.bat可停止达到此目的。 
JavaServer启动后,如果正常则在浏览器的地址中输入:http://localhost:8080/ 就可显示介绍Java Webserver Page的页面。在jswdk目录下还有一个examples目录,这是jswdk中自带的一个web 应用, 一个web应用包含jsps, servlets,html files, images等资源。我们也可以创建一个新的web应用,从而把自己相关的文件放入其中。让我们来分析一下如何创建一个新的web 应用。 
要创建一个新的web 应用,需要在jswdk安装目录下新建一个目录,如创建一个名为myweb的web应用,其目录结构如下: 



jswdk_inatall myweb web-inf 
servlets 
jsp beans 
webapp.properties 
servlets.properties 
mime.properties 
mappings.properties 
其中:jswdk_install表示jswdk的安装目录;以properties为后缀的四个文件为属性文件,可从jswkd_install/web-inf下拷贝得到。修改jswdk_install目录下的webserver.xml文件,加入如下一行,其作用是把myapp作相应的映射:  
同时修改startserver.bat文件,把 myweb/web-info/jsp/beans目录加到相应的环境变量beanJars中;也可通过在CLASSPATH环境变量中加入该路径来实现。 
要加入jsp文件,可把文件放到myweb目录下或它的下一级目录中;要加入servlet,只需把编译正确的servlet放到servlets中;而把编译正确的java beans放到beans目录下。 
请注意在对beans或servlet修改后,要使修改生效,需要重新启动Web Server。 
了解这些规则之后,下面就创建第一个JSP文件 myfirst.jsp,其内容如下: 
 
 My first Jsp file 
 
 
 
 
 
将该文件放在jswkd_installmyweb目录下,如果Web server已启动,则在游览器地址中输入: 
http://localhost:8080/myweb/myfirst.jsp 
我们就可以看到执行的结果。在完成第一个简单的jsp文件后,我们可以编写一个java beans,并在jsp文件中调用该beans。 
java bean源程序HelloWorld.java内容如下: 
public class helloWorld { 
public String name ; 
public boolean setHello(String name){ 
this.name = new String(name); 

public String sayHello() 

return name; 





用JDK编译该文件: 
javac helloWorld.java 
在成功编译后,将生成的字节码文件HelloWorld.class放到myweb/web-inf/jsp/beans目录下; 
在下面jsp文件test.jsp中调用helloWorld,test.jsp内容如下: 
 
 
 Jsp and java bean  
 
 
 
 
 
 
将该jsp文件放到jswdk_installmyweb目录下 
重新启动web Server,在浏览器地地址中输入: 
http://localhost:8080/myweb/test.jsp 
就可以显示执行结果; 
注意到在test.jsp中 
 的scope = "session"表明该对象创建后可在同一会话(session)的其它页引用。如我们可以在aftertest.jsp中引用test.jsp中创建的对象,aftertest.jsp内容包含下面的代码: 
 
要注意的是要引用的对象必须已创建,否则会出现异常。 
下面看看在jsp中使用访问数据的java beans例子。我所使用的数据库是oracle8,通过SQL*Net创建的数据库连接串名为begpinter,数据库服务器运行在名为begpinterserver的机器上,下面是JspJdbc.java的内容: 
// You need to import the java.sql package to use JDBC 
import java.sql.*; 
import oracle.jdbc.driver.* ; 
public class JspJdbc 

Connection conn = null; 



Public ResultSet rset = null; 
public JdbcCheckup(){ 
// Load the Oracle JDBC driver 
try{ 
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 
}catch(SQLException e1) { 
System.err.println("executeQuery: " + e1.getMessage()); 





public ResultSet executeQuery(String sql) { 
rset = null; 
try { 
conn = DriverManager.getConnection 
("jdbc:oracle:thin:@bgpinterserver:1521:bgpinter","SCOTT", "TIGER"); 
Statement stmt = conn.createStatement(); 
rset = stmt.executeQuery(sql); 
}catch(SQLException e1) { 
System.err.println("error: " + e1.getMessage()); 

return rset; 


编译后将JspJdbc.class文件放入mywebweb-infjspbeans目录下。在下面的jsp文件中调用beans,jspdb.jsp内容如下: 
 
 
 
Database in Jsp 
 
 



 
 
 
 
 
其中用于显示异常的errorpage.jsp内容为: 
 
 
 
 The exception  
 
 
重新启动Web server使新创建的java beans生效,如果与数据服务器连接正常,则在浏览器地址中输入 
http://localhost:8080/myweb/jspdb.jsp 
将显示查询结果。 
通过上面的介绍,相信大家对Jsp有所了解。要进一步了解Jsp技术可访问下面的站点: 
http://java.sun.com/products/jsp 

    
 
 

您可能感兴趣的文章:

  • 需要从数据库中动态生成的页面是该在SERVLET输出生成,还是应该在JSP编码实现?
  • 高分求jsp中动态生成图片的相关资料、生成svg格式和pdf格式的资料,不够再加分
  • 求jsp树的原代码,一定要是jsp+js+xml 执行效率要高。(从数据库中动态生成的)
  • 怎样用JSP将从树状存储结构中读取的数据在JSP页面上生成一个树状目录
  • ?100分求jsp树的原代码 最好是jsp+js+xml 执行效率要高。(从数据库中动态生成的)(散分)
  • 100分求jsp树的原代码 最好是jsp+js+xml 执行效率要高。(从数据库中动态生成的)在线
  • ******"Servlet根据JSP视图的需求生成JavaBeans的实例并输出给JSP环境"如何实现上面这句话的效果??*******
  • ?? 将jsp生成的页面保存成html ??
  • 如何把JSP生成的HTML保存在服务器端
  • Tomcat4在WIN2000下配置后,可以在IE中用localhost:8080看到TOMCAT的画面,但JSP文件并不能被解释而生成网页文件,用IE打开JSP文件时进入了
  • 为什么动态生成的图片,JSP不能动态的获得
  • jsp生成文件的问题
  • JSP最大的特点是将内容的生成和显示进行分离?
  • 采用Jsp从数据库中取得数据,来生成XML文件,进行存储,应该如何做?
  • 在JSP里面怎样动态生成变量?
  • 有谁用过jfreechart在jsp/servlet里生成过图表吗?怎么用啊?谁能帮帮我?
  • jsp中怎么做自动生成网页
  • 请问JAVA程序里如何在服务器端保存JSP生成的HTML页面
  • JSP中如何动态生成SQL语言?
  • 请问<jsp:useBean id="Message" scope="page" class="aq.tt"/>tt的类是怎么生成的?请网上的大侠送点及时雨,小弟在线等待
  • [求助]如何将用jsp写成的动态页面(*.jsp), 转换成静态页面(*.html)???
  • 为何我使用javascript中location'****.jsp'跳到某一页面,jsp页面不重新编译执行
  • 让JSP页面过期, 保证每次JSP页面都是最新的.
  • 在jsp页面加载时自动调用某个特定的servlet,由servlet查询数据库输出WEB页面返回给jsp显示?
  • 在JSP中如何从一个页面转向另一个页面?
  • 输入http://localhost:8080显示欢迎页面但无法显示JSP页面
  • 一JSP网站,统一指定一个errorPage页面,统一处理异常,在指定的errorPage页面中,我想知道具体是哪个页面出错的,即想知道出错页面的具
  • JSP中如何在一页面执行后导入另一页面?
  • 想把一个jsp转到另一个jsp页面,要穿参数,中文的(jsp变量)。谁教教我?!
  • ?启动jsp页面时,让页面刷新(一次)?
  • JBuilder运行JSP的问题,一次只运行一个JSP页面
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 最近有jsp的一本书,好像叫《JSP开发动态网站》,请问确切名称、出版社、价格、作者(网上查不到)
  • JSP动态缓存 JimStoneCache
  • JSP下动态INCLUDE与静态INCLUDE的区别分析
  • 怎么用JSP动态查询EXCEL文件中的数据????????????????????
  • JSP中动态include与静态include的区别介绍
  • 如何在jsp中动态包含一个jsp文件?
  • 高分酬谢,如何动态的建立一个jsp页面???
  • JSP中如何动态的包含一个文件???100分在线分出!!!!!
  • JSP中如何实现动态select选项框?
  • JSP动态网页入门实务----请问哪里能够下载电子版。100分奉上。
  • JSP由浅入深(3)—— 通过表达式增加动态内容
  • 请问如何在jsp中使用JDBC动态更新数据库?
  • JSP页面的动态包含和静态包含示例及介绍
  • 我想用jsp为公司做一个动态网站!大家有何建议???
  • 高分:如何在JSP里显示树型VIEW,并且可以在树叶上实现右键的POPMENU(两层),对树的结构进行动态的改修?
  • jsp动态文件如何转换为*.shtml的静态页面呢?请教,急!!!!
  • 如何用不算很熟练的jsp,oracle,javascript,html,css等建设动态网站,要网页打开速度快、易于日常维护更新?
  • JSP XMLHttpRequest动态无刷新及其中文乱码处理
  • 用jsp如何动态显示时间!(菜鸟问题!)
  • 如何在jsp里实现数据动态更改?
  • JSP中清空cookie代码参考
  • 在JSP里面怎样动态生成变量? iis7站长之家
  • 一个框界网爷包含上下两个网页a1.jsp和a2.jsp,怎么实现a1.jsp自身不变且提交数据到下面的a2.jsp呢?不胜感激,急..
  • 请问jsp和serlet之间怎么通讯,jsp和jsp之间呢?
  • 请问<%@include file="abc.jsp"%>与<jsp:include page="abc.jsp"/>之间的差别
  • response.sendRedirect("index.jsp") 和 <jsp:forward page="index.jsp"/>的区别?
  • aaa.jsp有如下链接,当单击该链接时将id值传递给bbb.jsp,怎样在bbb.jsp中引用这个id值?
  • jsp+bean还是jsp+ejb还是jsp+servlet还是asp+activex好?
  • 谁能告诉我,怎么调试jsp程序呀!我在jsp中调用java,但是Tomcat这家伙只会给我报jsp文件出错。这可怎么办呀?
  • jsp中如何获得当前jsp文件所在的目录,用request.getServletPath()得到的路径含有jsp文件名,有没有办法得到目录(不含文件名)?
  • 初学jsp,一个html调用一个jsp,这个jsp调用一个javaBean,已编译成类,最后如何部署(用j2sdkee)?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3