<br /> 一、<a class="link_keyword" href="http://www.qqread.com/keywords/jsp.html" target="_blank">jsp</a>运行环境配置<br />1.(apache+ resin-2.0.5)配置 <br /><table border="0" align="left" class=ppc_download_ad_frame cellspacing=0 cellpadding=0 width="1%" style="margin-top:10px;margin-right:7px;margin-bottom:3px;margin-left:0px">
<tr>
<td id=a><img height=9 width=9></td>
<td id=b width="100%"><img height=1 width=1></td>
<td id=c><img height=9 width=9></td>
</tr>
<tr>
<td id=d><img height=1 width=1></td>
<td id=e valign=top height="100%"><!-- frame contents -->
<table cellspacing=0 cellpadding=0 border=0>
<tr>
<td><div id="w_hzh"></div></td>
</tr>
</table>
<!-- /frame contents --></td>
<td id=f><img height=1 width=1></td>
</tr>
<tr>
<td id=g><img height=9 width=9></td>
<td id=h><img height=1 width=1></td>
<td id=i><img height=9 width=9></td>
</tr>
</table>如果你的网站是建立在apache下现在又想使用jsp,怎么办呢?你可以通过一些支持apache的jsp引擎(如resin,tomcat,jser等)来实现。这里介绍怎么配置apache+resin使apache支持jsp。 一、分别安装配置apache和resin使各自都单独能正常运行。 <br /> apache和resin的安装后路径如下:c:apache 和 c:
esin1.1。 <br />2)、配置apache <br /> 这里配置apache,使其装载resin的jsp引擎。增加如下的命令行到c:apacheconfhttp.conf配置文件中. <br />LoadModule aucho_module<br />3)、配置resin <br /> 修改rsein的配置文件(c:
esinconf
esin.conf),指定其在apache下的jsp的工作目录。修改如下: <br /><caucho.com> <br /><http-server app-dir=`c:/apache/htdocs`> <br /><servlet-mapping rl-pattern=`/servlets/*` servlet-name=`invoker`/> <br /><servlet-mapping rl-pattern=`*.xtp` ervlet-name=`com.caucho.jsp.XtpServlet`/> <br /><servlet-mapping rl-pattern=`*.jsp` servlet-name=`com.caucho.jsp.JspServlet`/> <br /></http-server> <br /></caucho.com> <br />4)测试 <br /> 完成以上步骤后apache已经支持jsp和servlet. 运行apache,启动resin的jsp引擎(运行c:
esin1.1insrun.exe). <br />jsp的运行目录为apache的htdocs下,而servlet运行目录为"c:apachehtdocsWeb-infclass" <br />把一个jsp文件(test.jsp )放入apache的htdocs目录下 <br />test.jsp如下: <br /><%@ page language=java?> <br />2+2=<%=2+2%> <br />浏览http://localhost:port/test.jsp 你将看到:2+2=4这个结果. 注: 调试环境win98+apache_1_3_12+resin1.1 ,port为<a class="link_keyword" href="http://www.qqread.com/z/server/seting/web.html" target="_blank">WEB服务器</a>端口号 <br /><br />2.(IIS 5.0+ resin-2.0.5)配置 <br /> <br />IIS WEB以其管理操作简单和对<a class="link_keyword" href="http://www.qqread.com/keywords/asp.html" target="_blank">ASP</a>的支持而受不少人的喜欢。这里介绍怎么用resin使IIS支持jsp和servlet。 <br /> 1)分别安装配置iis和resin2.0.5使各自都单独能正常运行。iis和resin2.0.5的安装后路径如下:c:apache 和 c:
esin2.0.5。 <br /> 2)配置IIS <br /> 1.拷贝iis_srun.dll 到IIS scripts目录"c:inetpubscripts"; <br /> 2.在c:inetpubscripts目录下创建配置文件(resin.ini)用于指定resin的配置文件的位置。 <br /> resin.ini内容如下: CauchoConfigFile c:/resin2.0.5/conf/resin.conf <br /> 3)配置resin <br /> ?<caucho.com> <br /> <http-server app-dir=`C:Inetpubwwwroot`> <br /> <servlet-mapping rl-pattern=`/servlets/*` servlet-name=`invoker`/> <br /> <servlet-mapping rl-pattern=`*.xtp` ervlet-name=`com.caucho.jsp.XtpServlet`/> <br /> <servlet-mapping rl-pattern=`*.jsp` servlet-name=`com.caucho.jsp.JspServlet`/> <br /> </http-server> <br /> </caucho.com> <br /> 4)测试 <br /> 1、 运行IIS,启动resin的jsp引擎(运行c:
esin2.0.5insrun.exe) <br /> 2、 把一个jsp文件(test.jsp )放入IIS的C:Inetpubwwwroot目录下. <br /> test.jsp如下: <br /> <%@ page language=java?> <br /> 2+2=<%=2+2%> 浏览http://localhost:port/test.jsp。你将看到:2+2=4<??这个结果 注:port为端口号,调试环境nt4.0+iis+resin1.1 <br /><br />数据连接池的学习 <br />poolman是一个优秀的连接池。下载地址为http://telia.dl.sourceforge.net/sourceforge/poolman/<br /> 一个JDBC URL由三部分组成:<a class="link_keyword" href="http://www.qqread.com/z/protocol/index.html" target="_blank">协议</a>标识(总是jdbc),<a class="link_keyword" href="http://down.qqread.com/" target="_blank">驱动程序</a>标识(如 odbc、idb、<a class="link_keyword" href="http://www.qqread.com/oracle/tech/index.html" target="_blank">oracle</a>等),<a class="link_keyword" href="http://www.qqread.com/database/" target="_blank">数据库</a>标识(其格式依赖于驱动程序)。例如,jdbc:odbc:demo,即是一个指向demo数据库的JDBC URL,而且访问该数据库要使用JDBC-ODBC驱动程序。每个连接池都有一个供客户程序使用的名字以及可选的用户帐号、密码、最大连接数限制。如果Web应用程序所支持的某些数据库操作可以被所有用户执行,而其它一些操作应由特别许可的用户执行,则可以为两类操作分别定义连接池,两个连接池使用相同的JDBC URL,但使用不同的帐号和密码。<br /><br />Naming 类 的学习 <br /><br /> Naming 类 <br />java.rmi.Naming 类提供<a class="link_keyword" href="http://www.qqread.com/z/server/storage/" target="_blank">存储</a>和获得对远程对象注册服务程序中远程对象进行 <br />引用的方法。Naming 类中的方法以如下形式的,URL 格式的 java.lang.String <br /><br />作为其中的一个参数: <br /><br />//host:port/name <br />其中 host 是注册服务程序所在的主机(远程或本地),port 是注册服务程序 <br />接收调用的端口号,name 是注 册表未作出解释的简单字符串。host 和 port <br />是可选的。如果省略了 host,则主机缺省值为本地 主机。如果省略了 port, <br /><br />则端口缺省值为 1099,即 RMI 系统注册服务程序 rmiregistry 所用的“众所 <br />周知”的端口。 <br />为远程对象绑定名称即为稍后使用的远程对象关联或注册名称,可用于查询该远 <br />程对象。可以使用 Naming 类的 bind 或 rebind 方法将远程对象与名称相关联 <br />。 <br /><br />当远程对象已用 RMI 注册服务程序在本地主机上进行过注册(绑定)后,远程 <br />(或本地)主机上的调用程序就可以按名称查询远程对象、获得其引用,然后在 <br />对象上调用远程方法。必要时,某一主机上运行的服务器可以共享一个注册服务 <br />程序。 <br />服务器的各个进程也可创建和使用自己的注册服务程序 <br />(详细信息,参见 java.rmi.registry.LocateRegistry.createRegistry 方法) <br />。 <br /><br />package java.rmi; <br />public final class Naming <br />{ <br />public static Remote lookup(String url) <br />throws NotBoundException, java.net.MalformedURLException, <br />RemoteExceptio <br />n; <br />public static void bind(String url, Remote obj) <br />throws AlreadyBoundException, java.net.MalformedURLException, <br />RemoteExce <br />ption; <br />public static void rebind(String url, Remote obj) <br />throws RemoteException, java.net.MalformedURLException; <br />public static void unbind(String url) <br />throws RemoteException, NotBoundException, java.net.MalformedURLExce <br />ptio <br />n; <br />public static String[] list(String url) <br />throws RemoteException, java.net.MalformedURLException; <br />} <br />lookup 方法返回与名称的文件部分相关联的远程对象。如果名称未绑定到对象上 <br />,则抛出 NotBoundException。 <br />bind 方法将把指定名称绑定到远程对象上。如果该名称已绑定到某一对象上, <br /><br />则抛出 AlreadyBoundException。 <br /><br />rebind 方法总将名称绑定到对象上,无论该名称是否已绑定。原有绑定将丢失。 <br /><br />unbind 方法将取消名称和远程对象间的绑定。如果没有绑定,则抛出 NotBound <br />Exception。 <br /><br />list 方法返回一个 String 对象的数组,该对象包含注册服务程序中绑定 URL <br />的快照。 <br />为了向注册服务程序查询其内容列表,只需要 URL 上的主机名和端口信息;因此 <br />,URL 的“file”部分将被忽略。 <br />注意 : 这些方法也可能抛出 java.rmi.AccessException。AccessException 表 <br />示调用程序无执 <br />行特定操作的权限。例如,只有运行注册服务程序的主机上的本地客户机才允许 <br />执行 bind、rebind <br />和 unbind 操作。但任何非本地客户机都可调用 lookup 操作。 <br /><br />web.xml的学习 <br /><br /> 现在我改为了tomcat的运行环境了!!<br /> web.xml具体的语法请看这个网址<br />http://gceclub.sun.com.cn/staticcontent/html/sunone/app7/app7-dg-webapp/ch6/index.html#611<br /> <br />JSP取得在WEB.XML中定义的参数 <br /> <br />在WEB.XML文件中设置参数: <br /><?xml version="1.0" encoding="ISO-8859-1"?> <br /><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <br /><web-app> <br /><br /><servlet> <br /><servlet-name> myjsp </servlet-name> <br /><jsp-file> /MyJsp.jsp </jsp-file> <br /><init-param> <br /><param-name>firstparam</param-name> <br /><param-value>firstparamvalue</param-value> <br /></init-param> <br /></servlet> <br /><br /><servlet-mapping> <br /><servlet-name> myjsp </servlet-name> <br /><url-pattern> /myurl/* </url-pattern> <br /></servlet-mapping> <br /><br /></web-app> <br /><br />下面的程序无法取出在WEB.XML中定义的参数firstparam的值firstparamvalue <br /><html> <br /><HEAD><TITLE>my jsp page .jsp</TITLE></HEAD> <br />My init parameter is <%= application.getInitParameter("firstparam") %> <br /></html> <br /><br />下面的程序就可以取出在WEB.XML中定义的参数firstparam的值firstparamvalue <br /><% <br />String Str1; <br />Str1=config.getInitParameter("firstparam"); <br />Out.println(Str1); <br />%> <br /><br />因为config是类javax.servlet.ServletConfig的对象,而application 是类 javax.servlet.ServletContext的对象. <br />如果指定WebLogic SERVER的侦听端口为80,那么在<a class="link_keyword" href="http://www.qqread.com/keywords/ie.html" target="_blank">IE</a>中就不用输入端口 <br />http://hostname/myfile.html取代http://hostname:portnumber/myfile.html.<br />JNDI的学习 <br /><br />JNDI全称 Java Naming and Directory Interface<br /> JNDI是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念。如同其它很多Java技术一样,JDNI是provider-based的技术,暴露了一个API和一个服务供应接口(SPI)。这意味着任何基于名字的技术都能通过JNDI而提供服务,只要JNDI支持这项技术。JNDI目前所支持的技术包括LDAP、CORBA Common Object Service(COS)名字服务、RMI、NDS、DNS、<a class="link_keyword" href="http://www.qqread.com/keywords/windows.html" target="_blank">Windows</a>注册表等等。很多<a class="link_keyword" href="http://www.qqread.com/keywords/j2ee.html" target="_blank">J2EE</a>技术,包括EJB都依靠JNDI来组织和定位实体。<br /> JDNI通过绑定的概念将对象和名称联系起来。在一个文件系统中,文件名被绑定给文件。在DNS中,一个IP地址绑定一个URL。在目录服务中,一个对象名被绑定给一个对象实体。<br /> JNDI中的一组绑定作为上下文来引用。每个上下文暴露的一组操作是一致的。例如,每个上下文提供了一个查找操作,返回指定名字的相应对象。每个上下文都提供了绑定和撤除绑定名字到某个对象的操作。JNDI使用通用的方式来暴露命名空间,即使用分层上下文以及使用相同命名语法的子上下文。<br /> jndi的用途:<br /> 1。你可以用jndi来得到object类的属性<br />如:Attribute attr =directory.getAttributes(personName).get("email");<br /> String email = (String)attr.get();<br /> 2。你可以用jndi来搜索对象<br />如:foxes = directory.search("o=Wiz,c=US", "sn=Fox", controls);<br />查找谁的名字叫Fox在wiz部门的员工?<br /> 3。你可以用jndi通过naming/directory服务查询像printers和databases的对象<br /> 如:查询 Printer<br />Printer printer = (Printer)namespace.lookup(printerName);<br />printer.print(document);<br /> 4。你可以用jndi列表出命名空间的特殊级别的内容<br />如:<br /> NamingEnumeration list = namespace.list("o=Widget, c=US");<br /> while (list.hasMore()) {<br /> NameClassPair entry = (NameClassPair)list.next();<br /> display(entry.getName(), entry.getClassName());<br /> }<br />以上根据jndi文档翻译的<br />地址:<br />http://java.sun.com/products/jndi/overview.html<br />tomcat数据库连接池配置中的<br />java:comp/env代表你的JVM的环境,comp=computer env=environment
</div>
</div>