一步一步學JSP(環境配置,資料庫連接,web應用配置)

來源:互聯網
上載者:User

一、jsp運行環境配置
1.(apache+ resin-2.0.5)配置
如果你的網站是建立在apache下現在又想使用jsp,怎麼辦呢。你可以通過一些支援apache的jsp引擎(如resin,tomcat,jser等)來實現。這裡介紹怎麼配置apache+resin使apache支援jsp。 一、分別安裝配置apache和resin使各自都單獨能正常運行。
   apache和resin的安裝後路徑如下:c:apache 和 c: esin1.1。
2)、配置apache
  這裡配置apache,使其裝載resin的jsp引擎。增加如下的命令列到c:apacheconfhttp.conf設定檔中.
LoadModule aucho_module
3)、配置resin
  修改rsein的設定檔(c: esinconf esin.conf),指定其在apache下的jsp的工作目錄。修改如下:
<caucho.com>
<http-server app-dir=`c:/apache/htdocs`>
<servlet-mapping rl-pattern=`/servlets/*` servlet-name=`invoker`/>
<servlet-mapping rl-pattern=`*.xtp` ervlet-name=`com.caucho.jsp.XtpServlet`/>
<servlet-mapping rl-pattern=`*.jsp` servlet-name=`com.caucho.jsp.JspServlet`/>
</http-server>
</caucho.com>
4)測試
  完成以上步驟後apache已經支援jsp和servlet. 運行apache,啟動resin的jsp引擎(運行c: esin1.1insrun.exe).
jsp的運行目錄為apache的htdocs下,而servlet運行目錄為"c:apachehtdocsWeb-infclass"
把一個jsp檔案(test.jsp )放入apache的htdocs目錄下
test.jsp如下:
<%@ page language=java?>
2+2=<%=2+2%>
瀏覽http://localhost:port/test.jsp 你將看到:2+2=4這個結果. 註: 調試環境win98+apache_1_3_12+resin1.1 ,port為WEB伺服器連接埠號碼

2.(IIS 5.0+ resin-2.0.5)配置

IIS WEB以其管理操作簡單和對ASP的支援而受不少人的喜歡。這裡介紹怎麼用resin使IIS支援jsp和servlet。
  1)分別安裝配置iis和resin2.0.5使各自都單獨能正常運行。iis和resin2.0.5的安裝後路徑如下:c:apache 和 c: esin2.0.5。
  2)配置IIS
    1.拷貝iis_srun.dll 到IIS scripts目錄"c:inetpubscripts";
    2.在c:inetpubscripts目錄下建立設定檔(resin.ini)用於指定resin的設定檔的位置。
     resin.ini內容如下:        CauchoConfigFile c:/resin2.0.5/conf/resin.conf
  3)配置resin
   ?<caucho.com>
    <http-server app-dir=`C:Inetpubwwwroot`>
    <servlet-mapping rl-pattern=`/servlets/*` servlet-name=`invoker`/>
    <servlet-mapping rl-pattern=`*.xtp` ervlet-name=`com.caucho.jsp.XtpServlet`/>
    <servlet-mapping rl-pattern=`*.jsp` servlet-name=`com.caucho.jsp.JspServlet`/>
    </http-server>
    </caucho.com>
 4)測試
    1、 運行IIS,啟動resin的jsp引擎(運行c: esin2.0.5insrun.exe)
    2、 把一個jsp檔案(test.jsp )放入IIS的C:Inetpubwwwroot目錄下.
    test.jsp如下:
     <%@ page language=java?>
     2+2=<%=2+2%> 瀏覽http://localhost:port/test.jsp。你將看到:2+2=4<??這個結果 註:port為連接埠號碼,調試環境nt4.0+iis+resin1.1


資料連線池的學習
poolman是一個優秀的串連池。下載地址為http://telia.dl.sourceforge.net/sourceforge/poolman/
一個JDBC URL由三部分組成:協議標識(總是jdbc),驅動程式標識(如 odbc、idb、oracle等),資料庫標識(其格式依賴於驅動程式)。例如,jdbc:odbc:demo,即是一個指向demo資料庫的JDBC URL,而且訪問該資料庫要使用JDBC-ODBC驅動程式。每個串連池都有一個供客戶程式使用的名字以及可選的使用者帳號、密碼、最大串連數限制。如果Web應用程式所支援的某些資料庫操作可以被所有使用者執行,而其它一些操作應由特別許可的使用者執行,則可以為兩類操作分別定義串連池,兩個串連池使用相同的JDBC URL,但使用不同的帳號和密碼。

Naming 類 的學習

Naming 類
java.rmi.Naming 類提供儲存和獲得對遠程對象註冊服務程式中遠程對象進行
引用的方法。Naming 類中的方法以如下形式的,URL 格式的 java.lang.String

作為其中的一個參數:

//host:port/name
其中 host 是註冊服務程式所在的主機(遠程或本地),port 是註冊服務程式
接收調用的連接埠號碼,name 是注 冊表未作出解釋的簡單字串。host 和 port
是可選的。如果省略了 host,則主機預設值為本地 主機。如果省略了 port,

則連接埠預設值為 1099,即 RMI 系統註冊服務程式 rmiregistry 所用的“眾所
周知”的連接埠。
為遠程對象綁定名稱即為稍後使用的遠程對象關聯或註冊名稱,可用於查詢該遠
程對象。可以使用 Naming 類的 bind 或 rebind 方法將遠程對象與名稱相關聯

當遠程對象已用 RMI 註冊服務程式在本地主機上進行過註冊(綁定)後,遠程
(或本地)主機上的調用程式就可以按名稱查詢遠程對象、獲得其引用,然後在
對象上調用遠程方法。必要時,某一主機上啟動並執行伺服器可以共用一個註冊服務
程式。
伺服器的各個進程也可建立和使用自己的註冊服務程式
(詳細資料,參見 java.rmi.registry.LocateRegistry.createRegistry 方法)

package java.rmi;
public final class Naming
{
public static Remote lookup(String url)
throws NotBoundException, java.net.MalformedURLException,
RemoteExceptio
n;
public static void bind(String url, Remote obj)
throws AlreadyBoundException, java.net.MalformedURLException,
RemoteExce
ption;
public static void rebind(String url, Remote obj)
throws RemoteException, java.net.MalformedURLException;
public static void unbind(String url)
throws RemoteException, NotBoundException, java.net.MalformedURLExce
ptio
n;
public static String[] list(String url)
throws RemoteException, java.net.MalformedURLException;
}
lookup 方法返回與名稱的檔案部分相關聯的遠程對象。如果名稱未綁定到對象上
,則拋出 NotBoundException。
bind 方法將把指定名稱綁定到遠程對象上。如果該名稱已綁定到某一對象上,

則拋出 AlreadyBoundException。

rebind 方法總將名稱綁定到對象上,無論該名稱是否已綁定。原有綁定將丟失。

unbind 方法將取消名稱和遠程對象間的綁定。如果沒有綁定,則拋出 NotBound
Exception。

list 方法返回一個 String 對象的數組,該對象包含註冊服務程式中綁定 URL
的快照。
為了向註冊服務程式查詢其內容列表,只需要 URL 上的主機名稱和連接埠資訊;因此
,URL 的“file”部分將被忽略。
注意 : 這些方法也可能拋出 java.rmi.AccessException。AccessException 表
示調用程式無執
行特定操作的許可權。例如,只有運行註冊服務程式的主機上的本地客戶機才允許
執行 bind、rebind
和 unbind 操作。但任何非本地客戶機都可調用 lookup 操作。

web.xml的學習

現在我改為了tomcat的運行環境了。。
web.xml具體的文法請看這個網址
http://gceclub.sun.com.cn/staticcontent/html/sunone/app7/app7-dg-webapp/ch6/index.html#611

JSP取得在WEB.XML中定義的參數

在WEB.XML檔案中設定參數:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>


<servlet>
<servlet-name> myjsp </servlet-name>
<jsp-file> /MyJsp.jsp </jsp-file>
<init-param>
<param-name>firstparam</param-name>
<param-value>firstparamvalue</param-value>
</init-param>
</servlet>


<servlet-mapping>
<servlet-name> myjsp </servlet-name>
<url-pattern> /myurl/* </url-pattern>
</servlet-mapping>


</web-app>


下面的程式無法取出在WEB.XML中定義的參數firstparam的值firstparamvalue
<html>
<HEAD><TITLE>my jsp page .jsp</TITLE></HEAD>
My init parameter is <%= application.getInitParameter("firstparam") %>
</html>


下面的程式就可以取出在WEB.XML中定義的參數firstparam的值firstparamvalue
<%
String Str1;
Str1=config.getInitParameter("firstparam");
Out.println(Str1);
%>

因為config是類javax.servlet.ServletConfig的對象,而application 是類 javax.servlet.ServletContext的對象.
如果指定WebLogic SERVER的偵聽連接埠為80,那麼在IE中就不用輸入連接埠
http://hostname/myfile.html取代http://hostname:portnumber/myfile.html.
JNDI的學習

JNDI全稱 Java Naming and Directory Interface
JNDI是Java平台的一個標準擴充,提供了一組介面、類和關於命名空間的概念。如同其它很多Java技術一樣,JDNI是provider-based的技術,暴露了一個API和一個服務供應介面(SPI)。這意味著任何基於名字的技術都能通過JNDI而提供服務,只要JNDI支援這項技術。JNDI目前所支援的技術包括LDAP、CORBA Common Object Service(COS)名字服務、RMI、NDS、DNS、Windows註冊表等等。很多J2EE技術,包括EJB都依靠JNDI來組織和定位實體。
JDNI通過綁定的概念將對象和名稱聯絡起來。在一個檔案系統中,檔案名稱被綁定給檔案。在DNS中,一個IP地址綁定一個URL。在目錄服務中,一個對象名被綁定給一個對象實體。
JNDI中的一組綁定作為上下文來引用。每個上下文暴露的一組操作是一致的。例如,每個上下文提供了一個尋找操作,返回指定名字的相應對象。每個上下文都提供了綁定和撤除綁定名字到某個對象的操作。JNDI使用通用的方式來暴露命名空間,即使用分層上下文以及使用相同命名文法的子上下文。
jndi的用途:
1。你可以用jndi來得到object類的屬性
如:Attribute attr =directory.getAttributes(personName).get("email");
String email = (String)attr.get();
2。你可以用jndi來搜尋對象
如:foxes = directory.search("o=Wiz,c=US", "sn=Fox", controls);
尋找誰的名字叫Fox在wiz部門的員工。
3。你可以用jndi通過naming/directory服務查詢像printers和databases的對象
如:查詢 Printer
Printer printer = (Printer)namespace.lookup(printerName);
printer.print(document);
4。你可以用jndi列表出命名空間的特殊層級的內容
如:
NamingEnumeration list = namespace.list("o=Widget, c=US");
while (list.hasMore()) {
NameClassPair entry = (NameClassPair)list.next();
display(entry.getName(), entry.getClassName());
}
以上根據jndi文檔翻譯的
地址:
http://java.sun.com/products/jndi/overview.html
tomcat資料庫連接池配置中的
java:comp/env代表你的JVM的環境,comp=computer env=environment
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.