




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、JSP實習報告JSP實習報告實習內容:JSP實習目的:通過JSP的學習,可以獨立的編寫留言板、上傳規(guī)格、考試系統(tǒng)、 連接SQLServer數(shù)據(jù)庫、以及怎么樣配置運行jsp服務器實習要求:懂得什么是JSP,運行原理,它的基本語法,內置對象,服務端的 輸出緩沖區(qū),文件流的讀取,jsp數(shù)據(jù)庫如:jdbc、odbc、mysql、oracle等, jsp 與 javaBeans , java Servlet 等JSP是Java Server Pages的縮寫,是由Sun公司倡導、許多公 司參與,于1999年推出的一種動態(tài)頁技術標準。JSP是一個建立安全的、夸平 臺的先進動態(tài)頁技術。一、JSP工作原理在一
2、個JSP文件第一次被請求時,JSP引擎把該JSP文件轉換 成為一個servlet。而這個引擎本身也是一個 servlet,在JSWDKE WEBLOGIC 中,它就是JspServlet。JSP引擎先把該JSP文件轉換成一個Java源文件,在轉換時如果發(fā)現(xiàn)jsp文件有任何語法錯誤,轉換過程將中斷,并向服務端和客 戶端輸出出錯信息;如果轉換成功,JSP引擎用javac把該Java源文件編譯成相應的class文件。然后創(chuàng)建一個該SERVLET實例,該SERVLET jspInit() 方法被執(zhí)行,jspInit() 方法在servlet的生命周期中只被執(zhí)行一次。然后 jspService()方法被
3、調用來處理客戶端的請求。對每一個請求,JSP引擎創(chuàng)建一個新的線程來處理該請求。如果有多個客戶端同時請求該 JSP文件,則JSP引擎 會創(chuàng)建多個線程。每個客戶端請求對應一個線程。以多線程方式執(zhí)行可大大降低 對系統(tǒng)的資源需求,提高系統(tǒng)的并發(fā)量及響應時間.但應該注意多線程的編程限 制,由于該servlet始終駐于內存,所以響應是非??斓?。如果.jsp文件被修改了,服務器將根據(jù)設置決定是否對該文件重新編譯,如果需要重新編譯, 則將編譯結果取代內存中的servlet,并繼續(xù)上述處理過程。雖然JSP效率很高,但在第一次調用時由于需要轉換和編譯而有一些輕微的延遲。止匕外,如果在任何時候如果由于系統(tǒng)資源不足的
4、原因,JSP引擎將以某種不確定的方式 將servlet從內存中移去。當這種情況發(fā)生時jspDestroy()方法首先被調 用, 然后servlet實例便被標記加入"垃圾收集”處理。 jspInit() 及 jspDestory()格式如下:可在jspInit()中進行一些初始化工作,如建立與數(shù)據(jù)庫的連接,或建立絡連接,從配置文件中取一些參數(shù)等,在 jspDestory()中釋放相應的資源二、服務端的輸出緩沖區(qū)缺省情況下:服務端要輸出到客戶端的內容,不直接寫到客戶端,而是先寫到 一個輸出緩沖區(qū)中.只有在下面三中情況下,才會把該緩沖區(qū)的內容輸出到客戶 端上:該JSP頁已完成信息的輸出輸出
5、緩沖區(qū)已滿JSP中調用了()或()輸出緩沖區(qū)的大小可以用:或()設置,如下:設置輸出緩沖區(qū)的大小為1KR或(1);設置輸出緩沖區(qū)的大小為0,即不緩沖。或(0);用()或()可取的輸出緩沖區(qū)的大小,單位為字節(jié). 用()可檢查看服務端是否 已將數(shù)據(jù)輸出到客戶端.如果返回值是TRUEU已將數(shù)據(jù)輸出到客戶端,是FALSEST沒有.三、服務端輸出重定向有以下3種方法可以做到輸出重定向:(“URL ) 該方法通過修改HTTPB議的HEADERB分,對瀏覽器下達重定向 指令的,使瀏覽器顯示重定向頁的內容.(”:s:/localhost:7001/” );下面的方法也能改變HTTPHEADER!性,它的原理和
6、 1 是一樣的.采用該方法是利用服務器端先將數(shù)據(jù)輸出到緩沖區(qū)的機制 ,在把緩沖區(qū)的內容發(fā)送到客戶端之前,原來的不發(fā)送,改為發(fā)送該頁面的內容,如果在之前有很 多輸出,前面的輸出已使緩沖區(qū)滿,將自動輸出到客戶端,那么該語句將不起作用這一點應該特別注意.如下面的例子中(1)會輸出的內容,2不會輸出的內容,而是輸出(”并且在服務端會拋出二 Response already mitted異常,但客戶端沒有任何錯誤輸說明:1. 方法(1),(2)可以使用變量表示重定向的;方法(3)不能使用變量表示重 定向的。Stringadd= "./ " ;無法重定向到中去Stringadd=:s:
7、/localhost:7001/(add);可以重定向到:s:/localhost:7001/ 中去。2. 采用方法(1),(2)request 中的變量(通過()保存到request中的值)不能在新的頁面中采用,采用方法 能.綜上,我們應該采用 ,(2)重定向比較好.四、JSP基本配置:第一步:下載j2sdk和tomcat:到sun官方站點(:s:/j2se)下載j2sdk ,注意下載版本為 Windows Offline Installation 的SDK同時最好下載 J2SE Documentation ,然后至U tomcat 官方站點(:s:/dist/jakarta/tomcat-
8、4/)下載 tomcat (下載最新版本的 tomcat);第二步:安裝和配置你的j2sdk和tomcat:執(zhí)行j2sdk和tomcat的安裝程序, 然后按默認設置進行安裝即可。1 .安裝j2sdk以后,需要配置一下環(huán)境變量,在我的電腦 ,屬性,高級,環(huán)境 變量-> 系統(tǒng)變量中添加以下環(huán)境變量(假定彳的j2sdk安裝在 ): JAVA_HOME=c:classpath=.;%JAVA_HOME%lib;%JAVA_HOME%lib;(.; 一定不能少,因為它 代表當前路徑)path=%JAVA_HOME%bin接著可以寫一個簡單的java程序來測試J2SDKg否已安裝成功:publicc
9、lassTestpublicstaticvoidmain(Stringargs)("Thisisatestprogram. " ); 將上面的這段程序保存為文件名為的文件。 然后打開命令提示符窗口, cd到你的所在目錄,然后鍵入下面的命令javac java Test此時如果看到打印出來This is a test program.的話說明安裝成功了, 如果沒有打印出這句話,你需要仔細檢查一下你的配置情況。2 .安裝Tomcat后,在我的電腦-屬性-高級-環(huán)境變量-系統(tǒng)變量中添加以下 環(huán)境變量(假定彳的tomcat安裝在c:tomcat ): CATALINA_HOME=c
10、:tomcat;CATALINA_BASE=c:tomcat;然后修改環(huán)境變量中的classpath ,把tomat安裝目錄下的monlib下的追加 到classpath 中去,修改后的 classpath 如下:classpath=.;%JAVA_HOME%lib;%JAVA_HOME%lib;%CATALINA_HOME%monlib ;接著可以啟動tomcat,在IE中訪問:s:/localhost:8080 如果看到tomcat的歡迎頁面的話說明安裝成功了。五、JSP與SQLB調試JSP用Jdbc與SQL數(shù)據(jù)庫連接 安裝JSP訪問SQL Server 20XX的驅動程序:從微軟的站上下
11、載驅動程序:SQL Server 20XX For JDBC驅動程序, 在百度中隨便搜索就有。然后將它安裝好。(比如安裝目錄是 D:SQLDriverForJDBC。)然后必須將安裝目錄中的lib目錄下三個jar文件:,拷貝到Tomcat目錄下monlib目錄下,之后,修改環(huán)境變量中的CLASSPATH巴SQL Server 20XX For JDBC驅動程序安裝目錄下的 D:SQLDriverForJDBClib;D:SQLDriverForJDBClib;D:SQLDriverForJDBC ;追力口至ij CLASSPATH去。必須重新啟動Tomcat!這樣做的目的是,jsp頁面在編譯過
12、程中不會 出現(xiàn)找不到sql server driver類庫的問題。寫一個簡單的用來測試連接SQL Server 20XX的JSP代碼您的第一個字段內容為:您的第二個字段內容為:將上面的JSP代碼保存為sql_ ,放在/Root目錄下。Servlet/JSP配置詳解 首先下載驅動程序:然后就是安裝JDK我是把它裝到從c:JDK目錄下面。然后設置CLASSPATH問題了:正如操作系統(tǒng)利用PATHfB搜索可執(zhí)行程序一樣,Java運行環(huán)境也會遍歷 CLASSPATH查找類,即便是HelloWorld這樣簡單的程序,JVM也會遍歷 CLASSPATH義的每一個路徑,直到找到相應的文件為止。相信大家用的系
13、統(tǒng)不是2k就是XP,然后就應當如下設置Path:我的電腦- 屬性- 高級- 環(huán)境變量然后在環(huán)境變量的Path后面追加:C:JDKbin;.;C:JDKlib也可以這樣配置:C:JDKbin;.;C:JDKlib;C:JDKlib記住:環(huán)境變量中的.切記不能少,它表示當前路徑,如果少掉出現(xiàn) 的錯誤等會就說!是關于運行環(huán)境的類庫,是關于一些工具的類庫如果沒有配置:C:JDKbin ,則會出現(xiàn)“ javac不是內部或外部命令,也不是可運行的程序或批處理文件?!边@樣的錯誤。下面我們就寫一個示例程序:打開Editplus ,新建一個Java文件,請照著如下輸入,要一字不漏,并 且分清大小寫:public
14、 class HelloWorldpublic static void main(String口 args)("Hello,World! ” );然后把這個文件保存(ctrl+ s)到Java是分大小寫的,所以大小寫一定要分清,是不是或者其他。運行:開始- > 運行-> cmd在控制臺中把目錄切換到當前目錄:javacjava HelloWorld你就會在控制臺上看見輸出的 Hello,World!javac是編譯命令,它把編譯成java就是解釋命令,JVM把解釋執(zhí)行.在這個時候:1、如果出現(xiàn) Exceptioninthread" main”:HelloWorl
15、d那就是你在環(huán)境變量中沒有加上那個.(dot)2、如果出現(xiàn) Exceptioninthread" main”:main或者:1: Public class helloworld must be defined in a file cal led那就是你沒有分清大小寫的寫入這個 HelloWorld ,或者保存得時候沒有保 存為。這個名字一定要跟public class的名字一樣對于環(huán)境變量的問題就說到這里,下面我先所說怎么在Editplus里面編譯 和運行,在Tools >參數(shù)設置- >配置用戶工具1 .添加工具(添加應用程序)菜單文字:Compile Java Prog
16、ram程序:C:JDKbin參數(shù):文件名稱初始目錄:文件目錄2 .添加工具(添加應用程序)菜單文字:Run Java Program程序:C:JDKbin參數(shù):文件名稱(不含擴展名)初始目錄:文件目錄工具組名稱可以隨便添,比如 Debug Java Program。然后在Tools的下拉菜單中,你就會看見Compile Java Program以及Run Java Program這兩個選項,以后你就可以利用 ctrl + 1編譯和ctrl+ 2運行程序了下面我們討論Servlet的運行環(huán)境:要運行 Servlet ,則需要 JSP/Servlet container ,我用 Tomcat。:s
17、:/builds/jakarta-tomcat-5/nightly/然后把這個壓縮包解壓到:C:Tomcat然后再配置環(huán)境變量;添加三個系統(tǒng)變量:JAVA_HOME: C:JDK TOMCAT_HOMEC:Tomcat CLASSPATH: %JAVA_HOME%lib;%TOMCAT_HOME%libTomcat的環(huán)境變量就配置完畢了,下面檢驗 Tomcat是否能夠運行:在控制臺中轉到C:Tomcatbin 這個目錄,運行startup ,然后回出現(xiàn)一 個窗口,連跳一大串東西,最后表示Server已經(jīng)運行。在瀏覽器中輸入:s:/localhost:8080,出現(xiàn)歡迎界面,則表示 Tomcat
18、沒問題了。然后和上面一樣,寫入你的第一個Servlet。import *;import *;import *;public class HelloWorld extends HttpServlet public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException ("text/html " );PrintWriter out =();(“< html >< head>< title >&
19、quot; );("This is my first Servlet " );(“/title></head >< body>" );(“< h1>Hello,World! </h1 >" );(“</body ></html >" ); 然后照樣用javac來編譯這個文件,如果出現(xiàn)無法import *那么就是應該把C:Tomcatmonlib 里面的文件拷貝到C:JDKjrelibext 中,再次編譯,就沒有問題了!然后在Tomcat目錄里面的C:Tomcatweb
20、appsROOT里面按如下的文件結 構:ROOTROOT(如果你的servlet 的.class打成了 .jar文件,則放在lib 下面)ROOTWEB-INFclasses(把上面生成的文件放在這個里面)然后在瀏覽器中輸入:s:/localhost:8080/servlet/HelloWorld,于是Server 眾望所歸白報錯了 :Error404-Not Found出不來,然后繼續(xù)弄下面的Servlet 必須使用 C:TomcatwebappsROOTWEB-INFa個目錄下面的文件 進行注冊,用EP打開這個文件,在里面加入: < servlet > < servlet
21、-name >HelloWorld </servlet-name > < servlet-class >HelloWorld </servlet-class > </servlet >< servlet-mapping >< servlet-name >HelloWorld </servlet-name >< url-pattern >/servlet/helloworld < /url-pattern >< /servlet-mapping >這樣的結構< se
22、rvlet >< servlet-name >HelloWorld </servlet-name >< servlet-class >HelloWorld </servlet-class >< /servlet >表示指定包含的servlet類。而以下的結構:< servlet-mapping >< servlet-name >HelloWorld </servlet-name >< url-pattern >/servlet/HelloWorld < /url-patter
23、n >< /servlet-mapping >表示指定HelloServlet應當映射到哪一種URL模式在修改完畢過后,重新啟動Server ,然后再輸入:s:/localhost:8080/servlet/HelloWorld ,那么偌大一個 Hello,World!等 著你呢。六、JSP和Servlet的區(qū)另hSUN1先發(fā)展出SERVLET其功能比較強勁,體系設計也很先進,只是,它輸 出HTMLS句還是采用了老的CGI方式,是一句一句輸出,所以,編寫和修改HTML 非常不方便。后來SUN隹出了類似于ASP的JSP,把JAVA代碼嵌套到HTML語句中,這樣,就大大簡化和方便
24、了頁的設計和修改。ASP PHP JSP都是嵌套型的SCRIP T語言。一個分布式系統(tǒng)應分為三層:表示層,業(yè)務邏輯層,數(shù)據(jù)存取層,在J2EE體系結構中,SERVLETg來寫業(yè)務邏輯層是很強大的,但是對 于寫表示層就很不方便。JSP則主要是為了方便寫表示層而設計的。ENTITYBEANS現(xiàn)數(shù)據(jù)存取層,SESSION BEANS現(xiàn)業(yè)務邏輯層。如果是簡單的應用系統(tǒng),可采用JSP+BEANS結構進行設計,JSP中應該僅僅存放與表示層 有關的東西,也就是說,只放輸出 HTMLX的部份。而所有的數(shù)據(jù)計算,數(shù)據(jù)分 析,數(shù)據(jù)庫聯(lián)結處理,統(tǒng)統(tǒng)是屬于業(yè)務邏輯層,應該放在JAVA BEANSK通過JSP調用JAVABEANS實現(xiàn)兩層的整合。實際上,微軟的DNAK術,簡單說,就是ASP+COM/DCOM。與JSP+BEANS全類似,所有的表示層由ASP 完成,所有的業(yè)務邏輯由COM/DCOM成。為什么要采用這些組件技術呢?因為單純的ASP/JSP語言是非常低效率執(zhí)行的,如果出現(xiàn)大量用戶點擊,純 SCR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 就業(yè)協(xié)議書泉州師院
- 農(nóng)戶葡萄收購協(xié)議書
- 解除勞務用工協(xié)議書
- 子女處理房產(chǎn)協(xié)議書
- 小區(qū)綠化施工協(xié)議書
- 生病學生上學協(xié)議書
- 寄養(yǎng)撫養(yǎng)協(xié)議書范本
- 信息公司增資協(xié)議書
- 生產(chǎn)加工終止協(xié)議書
- 煤礦勞務分包協(xié)議書
- 初中英語被動語態(tài)的教案教學設計
- 中國肝病診療管理規(guī)范
- 2025年世界知識產(chǎn)權日知識競賽考試題庫200題(含答案解析)
- 2025年PC鋼棒分析報告
- 2025年上半年中國電子集團總部16個崗位公開招聘16名易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年安陽職業(yè)技術學院單招職業(yè)適應性測試題庫學生專用
- 新視野大學英語(第四版)讀寫教程4(思政智慧版)課件 B4 Unit 4 Man and nature Section A
- 六年級《盼》說課
- 藥企變更與偏差培訓課件
- 云南省2025年七年級下學期語文月考試卷含答案
- 2025年中國冶金地質總局三局校園招聘48人筆試參考題庫附帶答案詳解
評論
0/150
提交評論