亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP技術生成動態web頁面

2020-07-27 21:48:46
字體:
來源:轉載
供稿:網友

隨著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作相應的映射: <WebApplication id="mybase1" mapping="/myweb" docBase="myweb"/> 
同時修改startserver.bat文件,把 myweb/web-info/jsp/beans目錄加到相應的環境變量beanJars中;也可通過在CLASSPATH環境變量中加入該路徑來實現。 
要加入jsp文件,可把文件放到myweb目錄下或它的下一級目錄中;要加入servlet,只需把編譯正確的servlet放到servlets中;而把編譯正確的java beans放到beans目錄下。 
請注意在對beans或servlet修改后,要使修改生效,需要重新啟動Web Server。 
了解這些規則之后,下面就創建第一個JSP文件 myfirst.jsp,其內容如下: 
<html> 
<head><title> My first Jsp file<titile> 
</head> 
<body> 
<% out.println("this is my first jsp file"); %> 
</body> 
</html> 
將該文件放在jswkd_install/myweb目錄下,如果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內容如下: 
<html> 
<head> 
<title> Jsp and java bean </title> 
</head> 
<body> 
<jsp:useBean id="helloBean" scope="session" class="HelloWorld" /> 
<% 
String hello = "this is a bean test"; 
helloBean.setHello(hello); 
out.println(helloBean.sayHello() + "<br>"); 
%> 
</body> 
</html> 
將該jsp文件放到jswdk_install/myweb/目錄下 
重新啟動web Server,在瀏覽器地地址中輸入: 
http://localhost:8080/myweb/test.jsp 
就可以顯示執行結果; 
注意到在test.jsp中 
<jsp:useBean id="helloBean" scope="session" class="HelloWorld" /> 的scope = "session"表明該對象創建后可在同一會話(session)的其它頁引用。如我們可以在aftertest.jsp中引用test.jsp中創建的對象,aftertest.jsp內容包含下面的代碼: 
<% 
helloWorld rebean = (helloWorld)session.getValue("helloBean"); 
out.println("bean used in aftertest.jsp"+rebean.sayHello()); 
%> 
要注意的是要引用的對象必須已創建,否則會出現異常。 
下面看看在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文件放入myweb/web-inf/jsp/beans目錄下。在下面的jsp文件中調用beans,jspdb.jsp內容如下: 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<title>Database in Jsp</title> 
</head> 
<body> 



<%@ page language="java" import="java.sql.*,oracle.jdbc.driver.*" errorPage="errorpage.jsp" %> 
<jsp:useBean id="jspdatabase" scope="page" class="JspJdbc" /> 
<% 
ResultSet rset = jspdatabase.executeQuery("SELECT * FROM emp"); 
out.println("<table><tr><th>number</th><th>name</th></tr>"); 
while (reset.next()) { 
out.println("<tr><td>"+rset.getInt("eptno")+"</td>"); 
out.println("<td>"+rset.getString("enameeptno")+"</td></tr>"); 

rest.close(); 
out.println("</table>"); 
%> 
</body> 
</html> 
其中用于顯示異常的errorpage.jsp內容為: 
<html> 
<body bgcolor="red"> 
<%@ page isErrorPage="true" %> 
<h1> The exception <%= exception.getMessage() %> 
</body> 
</html> 
重新啟動Web server使新創建的java beans生效,如果與數據服務器連接正常,則在瀏覽器地址中輸入 
http://localhost:8080/myweb/jspdb.jsp 
將顯示查詢結果。 
通過上面的介紹,相信大家對Jsp有所了解。要進一步了解Jsp技術可訪問下面的站點: 
http://java.sun.com/products/jsp 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品 欧美在线| 国产精品热视频| 国产精品视频永久免费播放| 欧美午夜影院在线视频| 中日韩美女免费视频网站在线观看| 国产综合在线观看视频| 国产精品国产自产拍高清av水多| 国产成人福利视频| 午夜精品久久久久久99热软件| 国产精品美女久久久久久免费| 午夜精品久久久久久久99热| 黑人极品videos精品欧美裸| 日韩电影中文字幕在线| 精品国产乱码久久久久酒店| 亚洲精品456在线播放狼人| 欧美成人精品不卡视频在线观看| 国产视频在线观看一区二区| 中文字幕一区二区三区电影| 不卡毛片在线看| 日韩av大片免费看| 午夜欧美大片免费观看| 亚洲一级片在线看| 国产精品女视频| 亚洲精品视频免费| 国产999视频| 色偷偷综合社区| 国产精品视频在线观看| 精品国产户外野外| 中文字幕久久精品| 久久久免费av| 欧美日韩一区二区在线播放| 亚洲大胆人体av| 亚洲精品永久免费精品| 一区二区在线免费视频| 亚洲欧美日韩在线高清直播| 久久久国产一区二区| 影音先锋欧美在线资源| 欧美日韩亚洲精品一区二区三区| 日产精品久久久一区二区福利| 精品视频—区二区三区免费| 日韩影视在线观看| 精品视频中文字幕| 国产精品久久久久久久天堂| 亚洲最新在线视频| 在线看国产精品| 欧美视频精品一区| 国产精品女主播视频| 一夜七次郎国产精品亚洲| 欧洲美女7788成人免费视频| 成人精品福利视频| 久久精品亚洲国产| 久久久噜噜噜久久| 九九精品在线视频| 成人欧美在线观看| 成人国内精品久久久久一区| 91在线直播亚洲| 国产精品视频公开费视频| 国产99久久精品一区二区永久免费| 国产欧美日韩免费| 欧美成人精品h版在线观看| 日韩欧美高清在线视频| 欧美日韩国产中文精品字幕自在自线| 亚洲一区二区中文字幕| 中文字幕日韩高清| 欧美激情xxxxx| 中文字幕在线成人| 精品国产91乱高清在线观看| 日韩免费观看高清| 国产免费一区二区三区在线能观看| 91精品国产综合久久香蕉| 欧美日韩第一视频| 国产精品综合不卡av| 91免费看片在线| 久久久www成人免费精品张筱雨| 欧美久久精品一级黑人c片| 91视频88av| 欧美在线视频观看免费网站| 国产精品第一视频| 日韩网站在线观看| 色yeye香蕉凹凸一区二区av| 亚洲高清av在线| 亚洲美女福利视频网站| 亚洲成人网在线| 亚洲欧美国产va在线影院| 国产精品爽爽ⅴa在线观看| 国产91精品久久久久| 欧美成人精品h版在线观看| 亚洲欧美日韩在线一区| 国产成人精品网站| 欧美日韩国产丝袜另类| 亚洲人成欧美中文字幕| 欧美激情高清视频| 中文综合在线观看| 国产ts人妖一区二区三区| 欧美视频在线观看免费| 另类专区欧美制服同性| 久久最新资源网| 欧美激情中文字幕在线| 国产精品久久久久久网站| 91九色蝌蚪国产| 亚洲自拍偷拍视频| 亚洲理论电影网| 欧美一性一乱一交一视频| 欧美一二三视频| 精品久久久视频| 亚洲aa在线观看| 国产精品日韩在线观看| 欧美主播福利视频| 亚洲跨种族黑人xxx| 亚洲最大av网| 亚洲激情小视频| 最近2019免费中文字幕视频三| 91福利视频在线观看| 成人在线视频福利| 国产精品96久久久久久又黄又硬| 热草久综合在线| 成人免费看片视频| 欧美激情极品视频| 日韩在线播放一区| 国产成人精品在线| 91九色精品视频| 97在线看免费观看视频在线观看| 国产综合香蕉五月婷在线| 欧美激情第6页| 久久噜噜噜精品国产亚洲综合| 欧美性xxxx在线播放| 国产精品日本精品| 成人高h视频在线| 亚洲国产成人精品电影| 亚洲r级在线观看| 91av在线精品| 久久欧美在线电影| 国产精品极品尤物在线观看| 亚洲香蕉成人av网站在线观看| 2019中文字幕在线免费观看| 亚洲色图在线观看| 国产在线拍揄自揄视频不卡99| 亚洲国产成人av在线| 成人免费激情视频| 欧美日韩国产成人高清视频| 国产成人欧美在线观看| 午夜剧场成人观在线视频免费观看| 日韩视频―中文字幕| 97视频在线看| 亚洲国产日韩精品在线| 日韩在线免费av| 亚洲国产精品久久91精品| 免费91麻豆精品国产自产在线观看| 插插插亚洲综合网| 永久免费精品影视网站| 国产精品旅馆在线| 91麻豆国产精品| 国产一区玩具在线观看| 91精品国产91久久久久久吃药| 欧美在线播放视频| 久久婷婷国产麻豆91天堂| 久久久久久尹人网香蕉| 欧美性猛交xxxx免费看久久久| 色偷偷噜噜噜亚洲男人的天堂| 热久久视久久精品18亚洲精品| 中文字幕精品—区二区| 国产精品久久精品| 日韩精品在线看| 中文欧美在线视频|