欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
瘋長(cháng)的樹(shù)
如何使用Eclipse開(kāi)發(fā)Servlet程序
 
1、在Eclipse\workspace下面新建一個(gè)文件夾servlet,把下載的Servlet.jar包拷貝到servlet文件夾下面。
 
2、打開(kāi)Eclipse新建一個(gè)項目。例如:test
 
3、右鍵單擊新建的test,選擇properties-Java Bulid Path-Libraries,單擊Add External JARs按鈕,選中Eclipse\workspace\servlet下面的Servlet.jar包
 
4、然后就可以使用Eclipse編寫(xiě)servlet代碼,并使用project菜單中的rebuild prohect操作,編譯servlet
常用JAVA類(lèi)庫函數
1、java.util.Date
 
toLocaleString()按照本機的格式返回日期和時(shí)間
JSP內部對象詳解
1、Out對象
 
主要用來(lái)向客戶(hù)端輸出各種格式的數據,并且管理應用服務(wù)器上的輸出緩沖區,Out對象的基類(lèi)是javax.servlet.jsp.JspWriter類(lèi)。
 
Out的主要方法:
 
out.println(DataType);或out.print(DataType);
 
實(shí)例:
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
  import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> out對象使用實(shí)例</TITLE>
</HEAD>
<BODY>
<%
out.println(new Date().toLocaleString());
out.print("<BR>");
out.print("測試成功");
%>
</BODY>
</HTML>
 
2、Request對象
 
Request.setAttribute()與Request.getAttribute()方法實(shí)例(也可以使用forward建立請求關(guān)系):
 
主頁(yè)面:
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
%>
<%@ include file="1.jsp" %>
你剛才輸入的內容是:
<%=request.getAttribute("gr")%>
 
引入頁(yè)面:
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
  import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> request對象使用實(shí)例</TITLE>
</HEAD>
<BODY>
<%
request.setAttribute("gr","123333");
%>

</FORM>
</BODY>
</HTML>
 
Request.getParameter()方法實(shí)例
 
主頁(yè)面
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
  import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> request.getParameter()方法使用實(shí)例</TITLE>
</HEAD>
<BODY>
<FORM METHOD=POST ACTION="2.jsp">
<INPUT TYPE="text" NAME="gr1"><BR>
<INPUT TYPE="text" NAME="gr2"><BR>
<INPUT TYPE="text" NAME="gr3"><BR>
<INPUT TYPE="submit" NAME="submit" value="提交">
<INPUT TYPE="reset" NAME="reset" value="清除">
</FORM>
</FORM>
</BODY>
</HTML>
 
引入頁(yè)面
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
%>
你剛才輸入的內容是:<BR>
<%=request.getParameter("gr1")%><BR>
<%=request.getParameter("gr2")%><BR>
<%=request.getParameter("gr3")%><BR>
 
Request.getParameterName()方法實(shí)例
 
主頁(yè)面
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> request.getParameterName()方法使用實(shí)例</TITLE>
</HEAD>
<BODY>
<FORM METHOD=post ACTION="2.jsp">
<INPUT TYPE="text" NAME="gr1"><BR>
<INPUT TYPE="text" NAME="gr2"><BR>
<INPUT TYPE="text" NAME="gr3"><BR>
<INPUT TYPE="submit" value="提交">
<INPUT TYPE="reset"  value="清除">
</FORM>
</FORM>
</BODY>
</HTML>
 
指向頁(yè)面
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
  import="java.util.*"
%>
你剛才輸入的內容是:<BR>
<%
Enumeration e=request.getParameterNames();
 while(e.hasMoreElements()){
  String parameterName=(String)e.nextElement();
  String parameterValue=(String)request.getParameter(parameterName);
  out.print("參數名稱(chēng):"+parameterName+"<BR>");
  out.print("參數內容:"+parameterValue+"<BR>");
 }
%>
Request.getAttributeName()方法實(shí)例
 
主頁(yè)面:
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
  import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> request.getAttributeName()方法使用實(shí)例</TITLE>
</HEAD>
<BODY>
<jsp:include page="2.jsp" flush="true"/>
<%
 Enumeration e=request.getAttributeNames();
 while(e.hasMoreElements()){
 String attributeName=(String)e.nextElement();
 String attributeValue=(String)request.getAttribute(attributeName);
 out.print("變量名稱(chēng):"+attributeName);
 out.print("變量?jì)热荩?+attributeValue+"<BR>");
 }
%>

</FORM>
</FORM>
</BODY>
</HTML>

 
轉向頁(yè)面
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
%>
<%
 request.setAttribute("gr1","111");
 request.setAttribute("gr2","222");
 request.setAttribute("gr3","333");
%>
 
request.getRemoteAddr()方法實(shí)例:
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> request.getRemoteAddr()方法使用實(shí)例</TITLE>
</HEAD>
<BODY>
<B>你的IP地址:</B>
<B><%=request.getRemoteAddr()%></B>
</FORM>
</FORM>
</BODY>
</HTML>

3、Response對象
 
response.setHeader()方法網(wǎng)頁(yè)自動(dòng)刷新實(shí)例:
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
  import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> response刷新頁(yè)面實(shí)例</TITLE>
</HEAD>
<BODY>
<%
response.setHeader("refresh","3");
out.println(new Date().toLocaleString());
%>
</BODY>
</HTML>
 
4、Application對象
 
在JSP服務(wù)器運行時(shí)刻,僅有一個(gè)Application對象,它由服務(wù)器創(chuàng )建,也由服務(wù)器自動(dòng)清除,
不能被用戶(hù)創(chuàng )建和清除。我們只能創(chuàng )建這個(gè)Appliation對象的同步拷貝。
 
setAttribute(),getAttribute()和removeAttribute()方法實(shí)例:
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> Application對象方法實(shí)例</TITLE>
</HEAD>
<BODY>
<%
String username="rossini";
String password="126263";
application.setAttribute("username",username);
application.setAttribute("password",password);
out.println(application.getAttribute("username")+"<BR>");
out.println(application.getAttribute("password")+"<BR>");
application.removeAttribute("password");
out.println(application.getAttribute("password")+"<BR>");
%>
</BODY>
</HTML>
 
getAttributeNames()方法實(shí)例:
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
  import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> Application對象方法實(shí)例</TITLE>
</HEAD>
<BODY>
<%
String username="rossini";
String password="126263";
 
application.setAttribute("username",username);
application.setAttribute("password",password);
 
Enumeration enum=application.getAttributeNames();
while(enum.hasMoreElements()){
 String attrName=(String)enum.nextElement();
 out.println(attrName+"----"+application.getAttribute(attrName)+"<BR>");

}
 
%>
</BODY>
</HTML>
 
5、Session對象
 
當用戶(hù)登陸網(wǎng)站,系統將為他生成一個(gè)獨一無(wú)二的Session對象,用以記錄改用戶(hù)的個(gè)人信息
,一旦改用戶(hù)退出網(wǎng)站,那么該Session對象將會(huì )注銷(xiāo)。Session對象可以綁定若干個(gè)人信息或
者Java對象,不同Session對象的同名變量是不會(huì )相互干擾的。
 
getValue(String name)、putValue(String name)、removeValue(String name)、getValueNames()
、getCreationTime()、getId()、getLastAccessedTime()、getMaxInactiveInterval()、
setMaxInactiveInterval()方法:
 
主文件:
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> Session主頁(yè)面</TITLE>
</HEAD>
<BODY>
<%
String username="rossini";
String password="126263";
session.putValue("username",username);
session.putValue("password",password);
%>
<A HREF="2.jsp">指向第二頁(yè)</A>
</BODY>
</HTML>
 
轉向頁(yè)面1
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> Session轉向頁(yè)面1</TITLE>
</HEAD>
<BODY>
<%
String usr=(String)session.getValue("username");
String pwd=(String)session.getValue("password");
%>
<%=usr%><BR>
<%=pwd%><BR>
<%out.println("session create:"+session.getCreationTime());%><BR>
<%out.println("session id:"+session.getId());%><BR>
<%out.println("session last access:"+session.getLastAccessedTime());%><BR>
<%out.println("session 原來(lái)最大休眠時(shí)間:"+session.getMaxInactiveInterval());%><BR>
<%session.setMaxInactiveInterval(session.getMaxInactiveInterval()+1);%><BR>
<%out.println("session 最新最大休眠時(shí)間:"+session.getMaxInactiveInterval());%><BR
<%
String []name=session.getValueNames();
out.println("--------------"+"<BR>");
for(int i=0;i<name.length;i++)
{
 out.println(session.getValue(name[i])+"<BR>");
}
%>
<%
session.removeValue("username");
%>
<A HREF="3.jsp">指向第三頁(yè)</A>
</BODY>
</HTML>
 
轉向頁(yè)面2
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> Session轉向頁(yè)面2</TITLE>
</HEAD>
<BODY>
<%
String usr=(String)session.getValue("username");
String pwd=(String)session.getValue("password");
%>
<%=usr%><BR>
<%=pwd%>
</BODY>
</HTML>
 
invalidate()方法將會(huì )將會(huì )清除當前的session對象解除它和任何參數或者JAVA對象的綁定關(guān)系
 
實(shí)例略
 
 
 
 
 
 
 
簡(jiǎn)單的JSP計數器
實(shí)例:
 
主頁(yè)面
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> JSP計數器 </TITLE>
</HEAD>
<BODY>
<div align="center"><font face="黑體" size="10">你是第<jsp:include page="11.jsp" flush="true"/> 位訪(fǎng)客</font> </div>
</BODY>
</HTML>
 
引入頁(yè)面
 
<%!protected int count=0;%>
<%=++count%>
JavaBean設計規范及實(shí)例
javaBean的設計規范:
  • 一個(gè)javaBean類(lèi)必須是一個(gè)公共類(lèi)
  • 一個(gè)javaBean類(lèi)必須有一個(gè)空的構造函數
  • 一個(gè)javaBean類(lèi)不應有公共實(shí)例變量
  • 持有值應該通過(guò)一組存取方法(getXxx和setXxx)來(lái)訪(fǎng)問(wèn)

實(shí)例:

package Show;
import java.sql.*;

public class DBconn{
    private String sDBDriver="org.gjt.mm.mysql.Driver";
    private String sConnStr="jdbc:mysql://10.1.1.79:3306/web?user=root&password=2676141";
    private Connection conn=null;
    private ResultSet rs=null;
   
 public DBconn(){
  try{
            Class.forName(sDBDriver);
        }
        catch(java.lang.ClassNotFoundException e){
            System.out.println("DBconn():"+e.getMessage());
        }
    }

 public String getsConnStr(){
  return sConnStr;
 }

 public void setsConnStr(String sConnStr){
  this.sConnStr=sConnStr;
 }
  
 public void executeUpdate(String sql)throws Exception{
  sql=new String(sql.getBytes("GBK"),"ISO8859_1");
  try{
   conn=DriverManager.getConnection(sConnStr);
            Statement stmt=conn.createStatement();
            stmt.executeUpdate(sql);
   conn.close();
   stmt.close();
        }
        catch(SQLException ex){
            System.out.println("sql.executeUpdate:"+ex.getMessage());
        }
    }
 public ResultSet executeQuery(String sql)throws Exception{
        rs=null;
  try{
            sql=new String(sql.getBytes("GBK"),"ISO8859_1");
            conn=DriverManager.getConnection(sConnStr);
            Statement stmt=conn.createStatement();
            rs=stmt.executeQuery(sql);
            conn.close();
            stmt.close();
        }
  catch(SQLException ex){
            System.out.println("sql.executeQuery:"+ex.getMessage());
        }
  return rs;
    }
}

Resin的使用和安裝

Resin的使用和安裝(網(wǎng)絡(luò )文章)

一、Java Web服務(wù)器選擇簡(jiǎn)介

在實(shí)際進(jìn)行java Web項目實(shí)施的時(shí)候,我們可以采用的商業(yè)java Web服務(wù)器有Ibm WebSphere,Bea Web Logic

。這兩種服務(wù)器功能齊全而強大,支持所有的java 服務(wù)容器標準,適合成品商業(yè)java Web應用的發(fā)布。但是

這兩種服務(wù)器是商業(yè)服務(wù)器,價(jià)格昂貴,而且對系統資源要求極高。特別是Websphere 配置復雜,如果不配合

采用ibm Websphere Studio Application非常不適合開(kāi)發(fā)。而且他們不同的版本對servlet.jar等javax組件和

jdk的要求不同。如Websphere 3.5所要求的servlet.jar 支持的是舊版本的javax.servlet.http.HttpSession

操作,不支持session.setAttribute() session.getAttribute()。

在開(kāi)發(fā)或者學(xué)習過(guò)程中,有許多免費的輕型的Java Web服務(wù)器可以供我們選用,如Tomcat,Resin,Orion等等。

他們使用都很方便,占用資源也很少,適合開(kāi)發(fā)中不斷的調試;還可以和Jbuilder這樣的集成開(kāi)發(fā)工具集成使

用。根據實(shí)際開(kāi)發(fā)中的情況來(lái)看,Jakata Tomcat 和Sun Java結合的最好,和其他應用服務(wù)器配合使用可支持

完整的j2ee標準,應用也很廣泛。但是從Java 普遍存在的編碼問(wèn)題來(lái)看,還是Resin 解決的最好。還有從使

用的角度講,個(gè)人認為Resin比Tomcat方便,而且Resin也可以結合Jbuilder6等ide使用。Resin強調使用Xml技

術(shù),從Resin自己的HomePage使用xtp就可以看出來(lái)。

二、Resin的安裝和配置

Resin 可以在 http://www.caucho.com/download/index.xtp 免費下載和使用。使用Resin開(kāi)發(fā)或者學(xué)習是免

費的,但是如果把Resin作為收費產(chǎn)品發(fā)布是需要付費的。目前的版本是2.10。

下載Resin 時(shí)選擇Archive Versions 中的 windows.zip的普通安裝包resin-2.1.0.zip。

把該zip包解壓到任何目錄下面,如d: esin。以下介紹都假設Resin安裝在d: esin下。進(jìn)入d: esinin,

鍵入httpd,可以在命令行控制臺下運行Resin服務(wù)器。此時(shí)彈出一個(gè)有start 和stop兩個(gè)Radio按紐和一close

按紐的對話(huà)框。在這里可以看到Resin的運行信息。這些信息同時(shí)Resin可以在d: esinlog目錄下面的

stdout.log 日志文件中察看到。如:

Resin 2.0.4 (built Thu Nov 15 17:56:24 PST 2001)
Copyright(c) 1998-2001 Caucho Technology. All rights reserved.
Starting Resin on Wed, 23 Jan 2002 14:41:47 +0800 (CST)

http listening to *:80
srun listening to haitaiserver:6802

點(diǎn)選stop,可以停止當前的Resin服務(wù)器進(jìn)程;再點(diǎn)選start,又可以開(kāi)啟新的Resin服務(wù)器進(jìn)程。關(guān)閉該對話(huà)

框,則回到Command 控制臺的盤(pán)符提示狀態(tài)下。如果在nt4或者win2k環(huán)境下,需要把Resin當成服務(wù),只需要

在Command控制臺的該目錄下,鍵入 httpd ?install,就可以在管理工具的服務(wù)下面看到新增了一條Resin

Web Server的自動(dòng)的服務(wù)。以后只要進(jìn)入nt 4或者win2k,就可以啟動(dòng)Resin服務(wù)。該服務(wù)也可以像其他服務(wù)一

樣設置成手動(dòng)或者禁用狀態(tài)。注意有的時(shí)候在安裝完服務(wù)后,啟動(dòng)Resin,并不能看到自己寫(xiě)的Resin例程可以

被解析,瀏覽器顯示服務(wù)器找不到錯誤。只要重新啟動(dòng)win2k或者nt,就能解決該問(wèn)題。

下面簡(jiǎn)要介紹一下Resin服務(wù)器的配置。Resin服務(wù)器和大多數Java Web服務(wù)器一樣,通過(guò)一個(gè)Xml文件配置。

進(jìn)入d: esinconf目錄,打開(kāi)resin.conf,這是一個(gè)xml格式的文本。

這里面有很多標記,先查找到:<http-server>。在<http-server></http-server>標記對中的配置和resin的

Java Web 服務(wù)器有關(guān)。找到<app-dir>,在<app-dir></app-dir>標記對中的表示resin的根,相當于A(yíng)pache的

htdocs 或者 IIS 的wwwroot。Resin自帶http服務(wù)器,但是也可以不使用它,采用Apache 或者 IIS做http服

務(wù)器。這個(gè)在下面段落中會(huì )提到。

再查找<http port=‘8080‘/>標記,它可以這樣配置<http host=‘localhost‘ port=‘80‘/>。host參數指定的

是服務(wù)器,port指定的是http端口,默認是localhost和8080。還有<srun host=‘localhost‘ port=‘6802‘/>

標記。這個(gè)是jsp和java Servlet的引擎配置。一般默認就可以了,除非6802端口已經(jīng)被別的程序占用了。然

后,配置jdk。這個(gè)需要在classpath中設置。右鍵點(diǎn)擊我的電腦,在系統特性的高級標簽中,點(diǎn)擊環(huán)境變量,

在系統變量中新建一個(gè)環(huán)境變量,變量名為classpath,值為jdk所在的目錄;再新建另外一個(gè)環(huán)境變量,變量

名為path,值為javac.exe和java.exe所在的目錄(在jdk所在的目錄下面的bin目錄下)。一般這樣子配置以

后,Resin就可以使用了。在d: esindoc中(假設你的<appdir></appdir>對中的名稱(chēng)是doc,也就是根是

d:/resin/doc,而且你的<http host=‘localhost‘ port=‘80‘/>如左配置),隨便寫(xiě)一個(gè)jsp文件,如可以寫(xiě)

個(gè)test.jsp文件,內容為<%=1+2+3%>。然后,在瀏覽器中,鍵入http://localhost/test.jsp。如果你可以看

到瀏覽器顯示6,則表示Resin服務(wù)器已經(jīng)可以正常運行了。注意,修改配置后,一般重新啟動(dòng)resin才能看到

變化。

三、Resin使用簡(jiǎn)介

使用Resin開(kāi)發(fā)Java Web項目時(shí),需要建立自己的WebApp。這里不介紹Resin Cmp/Ejb的開(kāi)發(fā)和使用,只介紹用

Resin開(kāi)發(fā)普通的jspjava servlet項目。在這里還要談到resin.conf的配置。Resin中的應用可以有2種方式

發(fā)布:一是在Resin的目錄下發(fā)布;二是打包成War發(fā)布。

1、在Resin的目錄下發(fā)布

在resin.conf中查找<web-app>標簽,該標簽表示一個(gè)web應用。

標簽中,id屬性表示該應用的Web路徑。如<web-app id=‘/test‘>,表示該應用在Web上訪(fǎng)問(wèn)的時(shí)候應該用

http://hostname/test/來(lái)訪(fǎng)問(wèn)。app-dir屬性表示該應用的實(shí)際路徑。如

<app-dir>d: esindoc est</app-dir>表示該應用在d: esindoc est目錄下面。默認值為根下面的和id

同名的目錄。Resin可以配置3種error-page:404錯誤也就是文件找不到錯誤頁(yè);Exception違例頁(yè);不能連接

java引擎頁(yè)。他們分別可以這樣子設置。

404文件找不到頁(yè)

<web-app id=‘/app1‘>
<error-page error-code=‘404‘ location=‘/file_not_found.jsp‘/>
</web-app>

Exception 違例頁(yè)

<web-app id=‘/foo‘>
<error-page exception-type=‘java.lang.NullPointerException‘
location=‘/nullpointer.jsp‘/>
</web-app>

不能連接到srun Servlet引擎錯誤頁(yè)

該頁(yè)設置和應用無(wú)關(guān),屬于服務(wù)器的設置。

<http-server>
<error-page exception-type=‘connection‘
location=‘/missing_file.html‘/>
</http-server>

classpath的設置

參見(jiàn)下面的語(yǔ)句:

<classpath id=‘WEB-INF/classes‘ source=‘WEB-INF/src‘ compile=‘true‘/>

id參數的值表示classpath中編譯后的class的存放路徑;source參數的值表示classpath中java源代碼的存放

路徑;compile中的值可能是true或者false,表示是否由Resin的srun自動(dòng)編譯java源代碼。Classpath的設置

一般和javaBean或者Servlet的使用有關(guān)。id的值表示javaBean的編譯好的包存放的根,source的值表示

javaBean的java源代碼存放的根。Servlet相同。

Servlet的設置

參見(jiàn)下面的語(yǔ)句:

<servlet-mapping url-pattern=‘*.xtp‘ servlet-name=‘xtp‘/>
<servlet-mapping url-pattern=‘*.jsp‘ servlet-name=‘jsp‘/>
<servlet-mapping url-pattern=‘/servlet/*‘ servlet-name=‘invoker‘/>

一般就是指定那些需要通過(guò)srun的解析。比如在這里,把*.jsp改成*.jss,其他不變,那么只要在訪(fǎng)問(wèn)時(shí)遇到

*.jss的文件就和原來(lái)遇到*.jsp一樣處理。通過(guò)這個(gè)可以指定解析的引擎,如以下的配置:

<servlet-mapping url-pattern=‘*.xtp‘ servlet-name=‘com.caucho.jsp.XtpServlet‘/>

在Servlet中,也可以指定servlet。如

<servlet servlet-name=‘hello‘ servlet-class=‘test.HelloWorld‘/>
<servlet-mapping url-pattern=‘/hello.html‘ servlet-name=‘hello‘/>

在servlet-mapping中有個(gè)重要的參數case-sensitive 如果在windows上,最好配置成false,忽略大小寫(xiě),從

而和windows的約定一致。

Session的配置

參見(jiàn)如下的配置語(yǔ)句:

<session-config>
<session-max>4096</session-max>
<session-timeout>30</session-timeout>
<enable-cookies>true</enable-cookies>
<enable-url-rewriting>true</enable-url-rewriting>
<file-store>WEB-INF/sessions</file-store>
</session-config>

session-max :最大 session數量
session-timeout :session過(guò)期時(shí)間,以分鐘為單位。

是否允許cookie :指session是否采用cookies。如果采用cookies,瀏覽器必須支持session才能使用,發(fā)布

時(shí)建議改成false。enable-url-rewriting和enable-cookies一般配合使用。如果enable-cookies是false,

enable-url-rewriting應該設成true比較合適。

file-store :該配置指示服務(wù)器是否把session作為文件存放在服務(wù)器上。如果把該項注釋掉,則在你的

web-app目錄下的WEB-Inf/sessions目錄不保存序列化后的session對象。Session還有jdbc-store配置,對應

著(zhù)把session通過(guò)jdbc永久保存在數據庫中。其實(shí)也就是會(huì )話(huà)變量的序列化后的保存和重新載入的物理實(shí)現。
在這里session還支持了多服務(wù)器的設置問(wèn)題,

通過(guò)tcp-store參數設置。由于涉及到負載平衡的問(wèn)題,在這里不詳細敘述,只簡(jiǎn)單寫(xiě)一個(gè)例子:

<http-server>

<http id=‘a(chǎn)‘ port=‘80‘/>
<srun id=‘a(chǎn)‘ host=‘host-a‘ port=‘6802‘/>

<http id=‘b‘ port=‘80‘/>
<srun id=‘b‘ host=‘host-b‘ port=‘6802‘/>

<host id=‘‘>
<web-app id=‘‘>

<session-config>
<tcp-store/>
<always-load-session/>
</session-config>
</web-app>
</host>

</http-server>

這個(gè)例子表示session是按照tcp ring的方式傳遞。

temp-dir 的設置

temp-dir指的是應用的臨時(shí)目錄。也就是在javax.servlet.context.tempdir中用到的目錄。模認是應用目錄

下的WEB-INF mp目錄。

以上的設置都可以在<web-app>標簽對中設置,控制某個(gè)web應用的設置。

2、打包成War發(fā)布

以下是介紹對如何在resin下使用已經(jīng)打包成War的java Web應用進(jìn)行發(fā)布。

其實(shí)這個(gè)是最簡(jiǎn)單也是最清晰的良好方法。在j2ee中,所有的項目都打包成ear發(fā)布。其中,Web應用打包成

war,ejb應用打包成jar。在resin中,這些都可以直接部署。這里我只對打包成war的Web應用的部署做介紹。

在resin.conf中,查找這個(gè):<war-dir id=‘webapps‘/>。他表示war文件應該被拷貝的路徑。這里指的是相對

于resin的安裝路徑,如以上的設置表示d: esinwebapps。只要重新啟動(dòng)Resin就可以了。Resin會(huì )把該war自

動(dòng)解包到webapps目錄下。你可以在command控制臺或者stdout.log中看到類(lèi)似于

[2002-04-27 09:56:21.680] initializing application http://haitaiserver:8080/rwtest 的語(yǔ)句。這個(gè)

表示該Web應用是自動(dòng)安裝的。只要這個(gè)應用是符合j2ee標準的Web應用,應該不會(huì )有問(wèn)題。通過(guò)如上顯示的路

徑就可以訪(fǎng)問(wèn)到這個(gè)應用。如果你到d: esinwebapps wtest中瀏覽,你會(huì )看到Resin已經(jīng)為你生成了rwtest

目錄,下面是META-INF和WEB-INF還有你自己的JSPservlet 文件和目錄。是完全符合j2ee的結構的。你可以

在rwtest目錄下建立新的jspservlet,一樣可以被編譯和解析并運行的。在實(shí)際操作中,可以使用Jbuilder

或者 WebSphere等Ide工具進(jìn)行集成調試和打包,非常的方便。 四、使用Resin進(jìn)行java Web項目的開(kāi)發(fā)和調試

這里篇幅有限,不可能講太多,我只對實(shí)際中最有用的部分做介紹。

Resin中如果定義了錯誤頁(yè),則出錯后最常見(jiàn)的一大串Exception不會(huì )被看到,直接跳轉到錯誤頁(yè)。所以建議開(kāi)

發(fā)中先不設置錯誤頁(yè)。jsp錯誤中最常見(jiàn)的就是Nullpoint Exception,其次是名稱(chēng)的拼寫(xiě)錯誤。錯誤也可以在

Resin安裝目錄下的log目錄下的stderr.log中找到。通過(guò)對該log文件的分析可以看到很多有用的錯誤信息。

在調試jsp的時(shí)候,如果定義了compile為true,jsp先被翻譯成Servlet的java文件,再被編譯成class文件。

可以在你自己的work目錄中找到該文件。java的名稱(chēng)在Resin中是這樣子定義的:原先的jsp文件名前加下劃線(xiàn)

,再加上_jsp這個(gè)字樣。所以在java 應用中的命名不要以_jsp結尾,也不要出現中文名稱(chēng)等字符;其實(shí)名稱(chēng)

以_jsp為開(kāi)頭也是不合法的。

關(guān)于java對多國語(yǔ)言的支持問(wèn)題,在Resin中得到了很好的解決。以jsp為例,參考Resin自動(dòng)生成的java

Servlet文件。只要在任何的jsp文件的最開(kāi)始處增加:

<% @page contentType="text/html;charset=gb2312" %>

中文問(wèn)題就解決了。察看生成的Servlet源文件片斷:

response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("GB2312");

以上為設置字符集

private static byte[] _jsp_string26;
private static byte[] _jsp_string27;

_jsp_string26 = " </table> <table class="type"> <tr> <td>".getBytes("GB2312");
_jsp_string27 = " </td><td> </tr> <!-- <tr> <td> ".getBytes("GB2312");

以上是對頁(yè)面的顯示的編碼。其中,getBytes("gb2312")是靜態(tài)編碼,這是Resin為了解決某些環(huán)境下還是不

能正常顯示而設置的。在Resin的配置文件(/conf/resin.conf)中,可以通過(guò)設置<jsp precompile=‘true‘

static-encoding=‘false‘ recompile-on-error=‘true‘/>中的static-encoding屬性為true或者false,來(lái)控

制是否靜態(tài)編碼。其實(shí)在Resin容器的內部,所有的字符都是按照iso-8859-1來(lái)處理的。iso-8859-1是一個(gè)大

字符集,雖然中文的gb2312和8859在字的定義上有不同,但是編碼是包容了gb2312的。按照解決多國語(yǔ)言的方

法,在純英文平臺上用iso-8859-1處理內部編碼,而把字符的顯示推向客戶(hù)端的機器。所以這樣只要編碼是正

確的,在頁(yè)面上顯示中文就不存在問(wèn)題。Tomcat3.2不方便的地方是Tomcat對數據庫的操作中文支持不好,需

要手動(dòng)在java Bean或者Servlet中硬編碼。通過(guò)測試,在Resin中完全沒(méi)有這個(gè)問(wèn)題。Tomcat4.0解決了這個(gè)問(wèn)

題。不過(guò)個(gè)人習慣來(lái)講還是覺(jué)得resin在配置方面方便一些。

在Resin中可以自動(dòng)解決引入的jar。這個(gè)在使用特殊的類(lèi)或者第三方提供的開(kāi)發(fā)包非常有用。方法非常簡(jiǎn)單:

只要把該jar或者是zip拷貝到Resin安裝目錄下的lib目錄下面,重新啟動(dòng)Resin,就可以了。如db2用到的

db2java.zip文件,只要輕松拷貝到d: esinlib中就可以了。

Resin提供了對Jbuilder的集成調試??梢缘剑?/p>

http://www.caucho.com/projects/jbuilder/resin-jbuilder.jar免費下載到resin的jbuilder的ide擴展包。

然后,把該包該名成:resin-jbuilder.jar,拷貝到j(luò )builder6libext目錄下。然后,把Resin2.1解包安裝

在jbuilder6 esin-2.1目錄下,就可以了。打開(kāi)任何的War項目,在project上點(diǎn)右鍵,選擇properties,選

擇Servers標簽。在原來(lái)的選擇框上,就可以看到多了一項Resin2.1。這樣子就可以象原來(lái)用tomcat一樣調試

jspservlet了,而且比Tomcat更方便。調試方法和用Tomcat調試一樣。

五、其他問(wèn)題

使用Resin可以和apache結合使用。也就是利用apache做http服務(wù)器,而Resin做srun服務(wù)器??梢詤⒖?/p>

resinconfsamples目錄下的apache.conf。主要就是把 app-dir 設成 /usr/local/apache/htdocs(也就是

apache的root)。同時(shí)在apache 中的http.conf也做了相應的設置。Resin還提供了對該過(guò)程的自動(dòng)安裝程式

,運行resininsetup,你可以在彈處的對話(huà)框中選擇apache,這樣子就可以了。只要你曾經(jīng)安裝過(guò)apache

,resin可以自己找到httpd.conf文件所在的路徑。

使用命令行方式啟動(dòng)Resin,如果改動(dòng)了Resin.conf,Resin會(huì )自己重新啟動(dòng)適應新的配置。這個(gè)很適合初期安

裝時(shí)使用。

Resin對數據庫緩沖池的支持很好。在這里,它提供了DBPool對緩沖池做了封裝。實(shí)際使用時(shí),只要在

resin.conf這樣配置:

<dbpool.sql>

  <id>ORCL</id>
  <driver>oracle.jdbc.driver.OracleDriver</driver>
  <url>jdbc:oracle:thin:@localhost:1521:SMTH</url>

  <!-- <url>jdbc:oracle:oci8:@SMTH</url> -->

  <user>scott</user>
  <password>tiger</password>

  <max-connections>5</max-connections>

</dbpool.sql>

然后,在你的jsp或者servlet中就可以這樣子使用了:

先導入 com.caucho.sql.*包,然后如下直接得到連接:

Connection conn = DBPool.getPool("ORCL").getConnection();

個(gè)人建議不要如上使用連接池,還是按照ejb的方法用從Context中直接找到的DataSource對象中得到連接通用

性比較好。代碼也很簡(jiǎn)單:

Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup(“jdbc/EmployeeDB”);
Connection conn = ds.getConnection();

在Resin中如下配置jdbc就可以了:

<resource-ref>
<res-ref-name>jdbc/EmployeeDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="com.caucho.jdbc.mysql.Driver"/>
<init-param url="jdbc:mysql_caucho://localhost:3306/test"/>
<init-param user="name"/>
<init-param password="password"/>
<init-param max-connections="20"/>
<init-param max-idle-time="30"/>
</resource-ref>

在Resin中conf中resin.conf中配置默認主頁(yè)就可以了:

 <welcome-file-list>index.jsp, index.html,index.xtp</welcome-file-list>

 

用Resin Web Server開(kāi)發(fā)還是比較愉快的。只是沒(méi)有像Weblogic 或者WebSphere那樣子提供現成的管理控制臺而已。但是從穩定性和方便性來(lái)講,Resin個(gè)人認為比Tomcat要好很多。況且Resin還有提供了resin-cmp 和 resin-ejb,功能更強大。

女人的美與男人的心
 
對一個(gè)年輕貌美女孩的追求,很能激發(fā)一個(gè)男人的進(jìn)取心
 
古人云:未見(jiàn)好學(xué)如好色者也
 
真知灼見(jiàn)
JSP標準語(yǔ)法
 
1、JSP的注釋語(yǔ)法:
 
      <%--comments--%>
 
     其中,comments是你可以添加的任意文本注釋?zhuān)遣荒苁褂谩?-%>”,
     如果非使用不可,請用“--%\>”
 
     實(shí)例:
     <%--
     FileName:helloworld.jsp
     Author:rossini
     Date:2004-1-29
     Note:顯示一個(gè)"Hello World!"信息
     --%>
    <html>
    <head>
    <title>JavaServer Pages Sample-Hello World!</title>
    </head>
    <body>
    <%
           out.print("Hello World!");
    %>
    </body>
    </html>
 
2、JSP的聲明語(yǔ)法:
   
     <%!declarations;... ;%>
 
     (a)在JSP中使用到的變量和函數必須事先聲明,并以分號“;”結尾
     (b)在JSP聲明中允許一次聲明多個(gè)變量
     (c)在JSP聲明中,不但可以聲明變量,還可以聲明函數或者自定義類(lèi)
     (d)你可以直接使用在include編譯指令中被包含進(jìn)來(lái)的已經(jīng)聲明的變量
         和方法,不能在當前的JSP程序中對它們進(jìn)行重新進(jìn)行聲明;JSP聲
         明的作用范圍是頁(yè)面層的,一個(gè)聲明只在一個(gè)頁(yè)面有效;如果想在
         每個(gè)頁(yè)面都使用一些聲明,最好把他們寫(xiě)在一個(gè)單獨文件里面,然
         后用include編譯指令或者是<jsp:include>操作指令包含進(jìn)來(lái)
 
    實(shí)例:
    <html>
    <head>
    <title>JavaServer Pages Sample-Declarations</title>
    </head>
    <body>
    <%!String msg="變量聲明";%>
    <H1><%=msg%></H1>
    </body>
    </html>
 
3、JSP表達式語(yǔ)法:
 
      <%=JAVA表達式%>
 
      JAVA表達式是一個(gè)值,轉換成字符串后插入到頁(yè)面中,不能用分號(;)
      來(lái)作為JAVA表達式的結束符。一個(gè)表達式可以變的很復雜,它可能由
      多個(gè)合法的JAVA表達式組成,這些表達式執行順序是從左到右。如果
      一個(gè)表達式的結果不能轉化為String類(lèi)型,將會(huì )導致錯誤發(fā)生。
 
    實(shí)例:
    <html>
    <head>
    <title>JavaServer Pages Sample-Declarations</title>
    </head>
    <body>
    <%!String msg="變量聲明";%>
    <H1><%=msg%></H1>
    </body>
    </html>
 
4、JSP程序段語(yǔ)法:
 
     <% 程序段%>
 
     (a)程序段中只能包含合法的JAVA語(yǔ)法的代碼,不允許出現HTML標記,
         JSP標記,JSP指令等元素。但是可以使用“<%”,“%>”標記,交錯
         使用JAVA代碼、HTML標記。
     (b)程序段中對變量的聲明最好進(jìn)行初始化,否則有些服務(wù)器可能會(huì )出錯。
 
    實(shí)例:
    <html> 
    <head> 
    <title>JavaServer Pages Sample-dribs and drabs</title>
    </head> 
    <body>
    <%
    String words="welcome!";
    int font_size=0;
    for(int i=0;i<8;i++){
    %>
     <FONT SIZE=<%=++font_size%>><%=words.charAt(i)%></FONT>
    <%
    }
    %>

    </body>
    </html>
 
5、JSP編譯指令PAGE:
 
     <%@ page
     language="java"  //指出使用的語(yǔ)言是JAVA,這既是缺省的又是唯一合法選項
     import="package.class1,...,package.classN" // 用于引入程序中需要使用的JAVA
                                                                        //程序包,多個(gè)包之間用逗號分割
     contentType="text/html;charset=gb2312"    //制定輸出的MIME類(lèi)型
     errorPage="URL"  //指定一個(gè)JSP頁(yè)面來(lái)處理任何當前頁(yè)面并未處理的意外錯誤
     isErrorPage="true | false"  //該屬性指示當前頁(yè)面是否可以作為其他頁(yè)面的錯誤處理
                                               //頁(yè)面,默認值false
     isThreadSafe="true | false"   //值為false表示Serverlet以單線(xiàn)程模式工作,值為true表示
                                                  //多個(gè)請求被一個(gè)Serverlet并行處理,默認值true
     session="true | false"   //true表示session可用,false表示session不可用
     buffer="size | none"  //確定out對象輸出緩沖大小,默認大小為8KB
     autoflash="true | false"   //默認值為true,表示當緩沖滿(mǎn)時(shí)將自動(dòng)清空
     extends="package.class"  //指出將要生成的serverlet使用哪個(gè)超類(lèi)
     info="message"   //定義當前JSP文件的一些相關(guān)信息,如作者,功能描述等
     %>
 
    實(shí)例:
    <%@ page language="java"
             import="java.util.*"
             contentType="text/html;charset=gb2312"
    %>
    <html> 
    <head> 
    <title>JavaServer Pages Sample-Page你好</title>
    </head> 
    <body>
    <%=(new Date()).toLocaleString()%>
    </body>
    </html>
 
6、JSP編譯指令I(lǐng)NCLUDE:
 
     <%@ include file="relativeURL" %>
 
     include指令用于在JSP文件轉換成Serverlet時(shí)引入一個(gè)靜態(tài)文件,這個(gè)文件可以是JSP
     和HTML以及文本文件等。許多網(wǎng)站的每個(gè)頁(yè)面都有一個(gè)同樣的導航條,為了避免重復
    ,可以單獨編寫(xiě)一個(gè)頁(yè)面來(lái)描述這個(gè)導航條,然后利用include指令把這個(gè)文件包含在
    每個(gè)主頁(yè)面里。不過(guò)這種方法有一個(gè)缺點(diǎn),因為這個(gè)導航條是在頁(yè)面被編譯時(shí)插入的
    ,如果導航條改變了,那么每個(gè)包含這個(gè)導航條的頁(yè)面都必須重新編譯。因此,如果
    導航條經(jīng)常改變,應該使用jsp:include動(dòng)作來(lái)實(shí)現。
 
實(shí)例:
 
主文件(index.jsp)
 
<html>
<head>
<title>JavaServer Pages Sample-include</title>
</head>
<%@ page language="java"
   contentType="text/html;charset=gb2312"
%>
<body>
<H1>當前時(shí)間</H1>
<%@ include file="time.html"%>
</body>
</html>
 
引入文件(time.html)
 
<%=(new java.util.Date().toLocaleString())%>
 
7、JSP操作指令I(lǐng)NCLUDE(此操作指令的中文參數傳入問(wèn)題還沒(méi)有解決):
 
     <jsp:include page="relativeURL | <%=expression%>" flush="true"/> 或者
 
     <jsp:include page="relativeURL | <%=expression%>" flush="true">
          <jsp:param name="parameterName" value="parameterValue | <%=expression%>"/>
     </jsp:include>
 
include動(dòng)作的目的是把其他文件的正文插入到這個(gè)程序中來(lái),在一定程度上重用代碼,過(guò)度使
用會(huì )降低執行效率。前面已經(jīng)介紹過(guò)include指令,它是在jsp文件被編譯時(shí)引入文件,當被引入
文件做過(guò)修改,也不需要重新編譯主jsp文件。
 
page="relativeURL | <%=expression%>"  指定需要包含文件的相對路徑,可以使用jsp表達式
動(dòng)態(tài)生成需要包含文件的相對路徑。
 
flush="true"  此屬性的值必須為true。
 
<jsp:param name="parameterName" value="parameterValue | <%=expression%>"/>  能為
引入文件傳遞參數。
 
實(shí)例:
 
主頁(yè)面
 
<%@ page language="java"
   contentType="text/html;charset=gb2312"
%>
<html>
<head>
<title>Include Actions</title>
</head>
<body>
<H1>帶參數引入頁(yè)面</H1>
<jsp:include page="11.jsp" flush="true">
 <jsp:param name="gr1" value="aaabbb"/>
 <jsp:param name="gr2" value="rossini"/>
</jsp:include>
</body>
</html>
 
引入頁(yè)面
 
<%
String gr1=request.getParameter("gr1");
String gr2=request.getParameter("gr2");
out.print(gr1);
out.print(gr2);

%>
 
8、JSP操作指令FORWARD:
 
<jsp:forward page="relativeURL | <%=expression%>"/> 或者
 
<jsp:forward page="relativeURL | <%=expression%>">
        <jsp:param name="parameterName" value="parameterValue | <%=expression%>"/>
</jsp:forward>
 
改動(dòng)作把請求轉到另外的頁(yè)面,</jsp:forward>后面的代碼將不能執行,因為已經(jīng)轉到其他
頁(yè)面上去了,所以后面的代碼不會(huì )被執行的。
 
實(shí)例:
 
主頁(yè)面
 
<%@ page language="java"
   contentType="text/html;charset=gb2312"
%>
<html>
<head>
<title>Forward Actions</title>
</head>
<body>
<jsp:forward page="11.jsp">
 <jsp:param name="gr1" value="rossini"/>
 <jsp:param name="gr2" value="126263"/>
</jsp:forward>

</body>
</html>
 
轉到頁(yè)面
 
<%
String gr1=request.getParameter("gr1");
String gr2=request.getParameter("gr2");
out.print(gr1+"#");
out.print(gr2);
%>
 
9、JSP操作指令PLUGIN
 
<jsp:plugin
type="bean | applet"
code="classFileName"
codebase="classFileDirectoryName"
 
name="instanceName"
archive="URIToArchive,..."
align="bottom | top | middle | left | right"
height="displayPixels"
width="displayPixels"
hspace="leftRightPixels"
vspace="bottomTopPixels"
jreversion="JREVersionNumber | 1.1"
nspluginurl="URLToPlugin"
iepluginurl="URLToPlugin" >
 
<jsp:params>
      <jsp:param name="parameterName" value="paramValue | <%=expression%>"/>
</jsp:params>
 
<jsp:fallback> text massage for user </jsp:fallback>
 
</jsp:plugin>
 
jsp:plugin動(dòng)作用來(lái)根據瀏覽器的類(lèi)型,插入通過(guò)java插件運行Applet所必須的OBJECT
或embed元素。
 
type="bean | applet"插件將執行的對象類(lèi)型,用戶(hù)必須在Bean和Aplet中指定一個(gè)。
code="classFileName"插件將執行的java類(lèi)文件名稱(chēng),在名稱(chēng)中必須包含擴展名。
codebase="classFileDirectoryName"插件將執行的java類(lèi)文件的路徑,默認與JSP文件
在同一個(gè)文件夾下
name="instanceName"Bean或Applet的實(shí)例名稱(chēng),使得被同一個(gè)JSP文件調用的Bean或
Applet之間的通信成為可能
archive="URIToArchive,..."以逗號分隔的路徑名列表,這些路徑名用于預裝一些將要使用
的class,這會(huì )提高applet的性能。
 
實(shí)例:
 
<%@ page
 language="java"
 contentType="text/html;charset=gb2312"
%>
<html>
<title>Plugin 實(shí)例</title>
<body bgcolor="white">
<h3> 當前的時(shí)間是 : </h3>
<jsp:plugin
  type="applet"
 code="Clock2.class"
 codebase="/guorui"
 name="time1"
 jreversion="1.2"
 width="160"
 height="150" >
      <jsp:fallback>
          Plugin tag OBJECT or EMBED not supported by browser.
      </jsp:fallback>
</jsp:plugin>
</body>
</html>
 
10、jsp:useBean操作指令:
 
<jsp:useBean id="beanInstanceName" scope="page | request | session | application" class="package.class"/>
 
該動(dòng)作用來(lái)裝載一個(gè)將在JSP頁(yè)面中使用的JavaBean,其含義是創(chuàng )建一個(gè)package.class的
實(shí)例,然后把它綁定到變量ID上,并使用scope定義Bean的作用范圍。
 
獲得Bean的實(shí)例之后,要修改或獲取Bean的屬性就變得很重要
 
<jsp:setProperty name="beanInstanceName"
       property="*"  | property="propertyName" | property="propertyName" param="paramName" |
       property="propertyName" value="string | <%=expression%>"/>
 
如果property的值是"*",表示所有名字和Bean屬性名字匹配的請求中的參數都將傳遞給相應屬性的set()
方法。
如果property的值是"propertyName",表示所有名字和Bean的propertyName屬性名字匹配的請求中的參數都將傳遞給propertyName屬性的set()方法。
如果使用property="propertyName" param="paramName"方式,則用指定的請求參數作為Bean指定屬性
的值。
 
<jsp:getProperty name="beanInstanceName" property="propertyName"/>
 
這個(gè)動(dòng)作提取指定bean屬性的值,轉換成字符串然后輸出。
 
實(shí)例:
 
主頁(yè)面:
 
<%@page language="java"
        contentType="text/html;charset=gb2312"
%>
<%!private int aa=0;%>
<HTML>
<HEAD>
<TITLE> JavaBean使用實(shí)例 </TITLE>
</HEAD>
<BODY>
<jsp:useBean id="test" scope="page" class="test.testBean"/>
1輸入變量值:
<jsp:setProperty name="test" property="test1"/>
<form method="get">
<input type="text" name="test1"  size="25">
<input type="submit" value="確定">
<input type="reset" value="清除">
<P>
你剛才輸入的內容是:
<jsp:getProperty name="test" property="test1"/>
<P>
2輸入變量值:
<jsp:setProperty name="test" property="*"/>
<form method="get">
<input type="text" name="test2"  size="25">
<input type="submit" value="確定">
<input type="reset" value="清除">
<P>
你剛才輸入的內容是:
<jsp:getProperty name="test" property="test2"/>
<P>
3輸入變量值:
<jsp:setProperty name="test" property="test3" param="guorui"/>
<form method="get">
<input type="text" name="guorui"  size="25">
<input type="submit" value="確定">
<input type="reset" value="清除">
<P>
你剛才輸入的內容是:
<jsp:getProperty name="test" property="test3"/>
<P>
<jsp:setProperty name="test" property="count" value="<%=++aa%>"/>
你登陸的次數是:
<jsp:getProperty name="test" property="count"/>
</BODY>
</HTML>
 
JavaBean源碼:
 
package test;
 
public class testBean{
 private String test1="呵呵,還沒(méi)有輸入內容呢??!";
 private String test2="嘻嘻,還沒(méi)有輸入內容呢??!";
 private String test3="嘿嘿,還沒(méi)有輸入內容呢??!";
 private String test4="哈哈,還沒(méi)有輸入內容呢??!";
 private int count=0;
 
 public testBean(){}
 
 public void setCount(int s){
  this.count=s;
 }
 public int getCount(){
  return this.count;
 }
 
 public void setTest1(String s){
  this.test1=s;
 }
 public String getTest1(){
  return this.test1;
 }
 
 public void setTest2(String s){
  this.test2=s;
 }
 public String getTest2(){
  return this.test2;
 }
 
 public void setTest3(String s){
  this.test3=s;
 }
 public String getTest3(){
  return this.test3;
 }
 
 public void setTest4(String s){
  this.test4=s;
 }
 public String getTest4(){
  return this.test4;
 }
}
 
 
 
 
 
 
 
Orion服務(wù)器配置

Orion App Server的安裝

 

一、前言

    Orion這個(gè)東西,小巧,但是功能卻非常多,廢話(huà)不講,看它目前的支持就知道了:
      (1)Servlets/JSP

      (2)EJB

      (3)HTTP (注:說(shuō)明不再需要Apache或者IIS等Web Server)

二、下載,安裝

   下載地址為Orion Application Server官方站點(diǎn):http://www.orionserver.com/,  我下載的是Orion1.4版本。

   下載完,解壓到一個(gè)目錄,我這里用E:Orion作為例子。

三、配置

   (1)根據Orion官方站點(diǎn)的安裝說(shuō)明,如果要支持JSP等技術(shù)的話(huà),要將JDK的tools.jar復制到e:orion目錄下,tools.jar文件在你安裝的JDK目錄的lib子目錄下。

到現在,其實(shí)已經(jīng)成功了缺省的配置了,如果你的80端口沒(méi)有被占用,而且你也想用80作為端口的話(huà),你到這里已經(jīng)完成了,否則,請繼續下面的配置。

   (2)配置端口

E:orionconfig目錄下有個(gè)default-web-site.xml文件,找到文件中下面行:

<web-site host="[ALL]" port="80" display-name="Default Orion WebSite">

將這行改為:

<web-site port="8008" display-name="Default Orion WebSite">

注意,我這里使用的是8008端口。

(3)默認主頁(yè)的配置

E:orionconfig目錄下有個(gè)global-web-application.xml文件,找到文件中下面行:

          <welcome-file-list>

               <welcome-file>index.html</welcome-file>

              <welcome-file>index.jsp</welcome-file>

          </welcome-file-list>

把其中的紅色字體改為默認網(wǎng)頁(yè)的文件名即可。

     (4)網(wǎng)頁(yè)中用到class應該放置在 orion中default-web-app中WEB-INF中classes里面

     (5)更改默認的主頁(yè)位置(主頁(yè)改為orion中default-web-app中的test文件夾內)

      修改config里面的application.xml如下語(yǔ)句:

<web-module id="defaultWebApp" path="../default-web-app/" />

為:<web-module id="defaultWebApp" path="../default-web-app/test" />

再把orion中default-web-app中的WEB-INF文件夾拷貝到test文件夾內即可

 

四、測試

   (1)啟動(dòng)Orion:

Orion目錄下,command方式運行:

java -jar orion.jar

將出現Orion/x.x.x initialized,我這里版本是1.4所以顯示:

Orion/1.4.0 initialized

到此,說(shuō)明你已經(jīng)成功了。

   (2)執行jsp文件

在瀏覽器中輸入:

http://localhost:8008/

出現:Orion Application Server 1.4.0 - Up and running,下面有JSP examples你可以試著(zhù)運行。

 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
J2EE工程實(shí)現中常見(jiàn)安全問(wèn)題解決對策
最全的Java筆試題庫之選擇題篇-總共234道【121~180】
用UTF-8完全解決JSP MYSQL多國語(yǔ)言文字編碼問(wèn)題
JAVA EL表達式詳細介紹使用手冊
寶寶 javaweb 學(xué)習總結
Linux+Apache+PHP+JSP
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久