JSP(Java Server Pages)基於Java技術並在傳統的網頁HTML文件中加入Java代碼片段(Scriptlet)和JSP標記(tag)從而構成了JSP網頁Web服務器在遇到訪問JSP網頁的請求時首先執行其中的程序片段然後將執行結果以HTML格式返回給客戶所有程序操作都在服務器端執行網絡上傳送給客戶端的僅是得到的結果
JSP技術是完全與平台無關的設計包括它的動態網頁與底層的Server元件設計正因為如此你可以在Windows環境下調試程序成功後把程序上載到你的Linux服務器去運行另外由於是先編譯後執行所以執行速度遠遠快於以往的服務器端語言
JSP環境配置可以有很多途徑如果你已經有了一個可以使用的Web Server比如Netscape的Enterprise Server和Fasttrack Server微軟的Internet Information Server(IIS)和Personal Web Server(PWS)和Apache比較典型的方法是使用Jrun()它可以作為一個附件的形式加入到你的Web服務器裡面如果你正在使用的是Apache你也可以選擇Apache服務器的Java版其中包含最新的Jswdk
本文介紹一種通用的JSP環境配置方法不管你是在Windows或Linux平台也不管你原來是不是安裝了Web Server該方法都通用
第一步下載必需的軟件
Jsdk
Jswdk
在上面的頁面需要回答一些簡單的問題你可以得到Windows 和 Linux兩個版本的Jsdk和Jswdk共四個文件
第二步安裝Jsdk
Jsdk在Windows和Linux下的安裝方法分別如下
Windows下安裝雙擊Jdk_winexe 並選擇一個安裝目錄就可以了
Linux下安裝成為Root 用戶自己選擇一個目錄執行tar zxvf /路徑/Jdk__linuxitargz
必須將上面的安裝目錄准確記錄下來後面的配置中要用到
第三步安裝Jswdk
Windows下安裝首先你必須有一個能解開Zip壓縮包的軟件然後將Jswdk__winzip展開並保存到一個你自己喜歡的目錄
Linux下安裝自己選擇一個目錄執行tar zxvf /路徑/Jswdk__solsparctarZ
第四步JSP環境配置
Windows NT下在我的電腦上單擊鼠標右鍵選擇屬性→環境然後執行以下三步
()添加變量CLASSPATH值為 安裝Jdk的路徑\lib\toolsJar例如c:\Jdk\lib\toolsJar
()添加JAVA_HOME變量值為 安裝JDK的路徑例如c:\Jdk
()修改Path變量後面加上安裝JDK的路徑\bin例如c:\Jdk\bin
Windows 下運行sysedit 添加和修改變量同上
Linux下如果使用Bash可以直接在命令行下輸入
◆JAVA_HOME=/home/look/Jdk
◆CLASSPATH=/home/look/Jdk/lib/toolsJar
◆export CLASSPATH
◆PATH=$PATH:/home/look/Jdk/bin
為了避免每次Reboot都重新輸入可以將它放到/etc/profile裡面
第五步配置JSWDK
安裝JSWDK的目錄找到webserverxml用文本編輯器打開它你可以修改常用的一些配置當然你也可以什麼也不改默認的配置就可以讓JSWDK運行得很好
port NMTOKEN
這行表示JSWDK運行需要使用的端口號如果你沒安裝其他的Web服務器你可以將其改為或其他任意不沖突的合法端口
〈WebApplication id=examples mapping=/examples docBase=examples/〉
這行表示你映射到JSWDK端口的目錄定義後你就可以使用//localhost:端口/目錄來訪問指定的文件了
第六步啟動JSWDK
Windows下進入你安裝Jswdk的目錄然後運行startserverbat
Linux下進入你安裝Jswdk的目錄然後運行/startserver
第七步測試
讀者可以使//localhost:或者來測試自己的JSWDK是否已經正確運行當你看到JSWDK的默認頁面後再使用下面的腳本來測試JDK的運行情況密碼會一直駐留在內存中即使進行了垃圾收集它仍會存在於空閒內存堆中直到重用該內存空間為止密碼 String 在內存中駐留得越久遭到竊聽的危險性就越大更糟的是如果實際內存減少則操作系統會將這個密碼 String 換頁調度到磁盤的交換空間因此容易遭受磁盤塊竊聽攻擊為了將這種洩密的可能性降至最低(但不是消除)您應該將密碼存儲在 char 數組中並在使用後對其置零(String 是不可變的無法對其置零)以上是JSP環境配置
線程安全初探
JAVA能做的JSP就能做與ASP和PHP等腳本語言不一樣JSP默認是以多線程方式執行的以多線程方式執行可大大降低對系統的資源需求提高系統的並發量及響應時間線程在程序中是獨立的並發的執行路徑每個線程有它自己的堆棧自己的程序計數器和自己的局部變量雖然多線程應用程序中的大多數操作都可以並行進行但也有某些操作(如更新全局標志或處理共享文件)不能並行進行如果沒做好線程的同步在大並發量訪問時不需要惡意用戶的熱心參與問題也會出現最簡單的解決方案就是在相關的JSP文件中加上 <%@ page isThreadSafe=false %>指令使它以單線程方式執行這時所有客戶端的請求以串行方式執行這樣會嚴重降低系統的性能我們可以仍讓JSP文件以多線程方式執行通過對函數上鎖來對線程進行同步一個函數加上synchronized 關鍵字就獲得了一個鎖看下面的示例
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25646.html