Struts Bean標(biāo)簽庫(kù)主要是用來(lái)訪問(wèn)Bean和Bean的屬性的,還可以創(chuàng)建新的Bean.還可以通過(guò)一個(gè)標(biāo)簽訪問(wèn)HTTP請(qǐng)求的Header信息,參數(shù)信息,Cookie,然后把這些信息存放在一個(gè)新的Bean中.訪問(wèn)HTTP請(qǐng)求信息或者是JSP的隱含對(duì)象,訪問(wèn)Web應(yīng)用資源,定義輸出的Bean和屬性等作用.下面對(duì)具體的標(biāo)簽詳細(xì)說(shuō)明:
1):訪問(wèn)Cookie信息,Cookie是服務(wù)器保存在客戶端硬盤上記錄客戶信息的小文件,都是以name/value形式的信息.這個(gè)標(biāo)簽的主要屬性有:id屬性定義一個(gè)http包下的cookie類型的變量,這個(gè)變量存放在page范圍內(nèi),name屬性指定Cookie的名字,value屬性指定Cookie的默認(rèn)值,如果Cookie不存在就用這個(gè)默認(rèn)值.
2):訪問(wèn)HTTP請(qǐng)求中的header信息,它的屬性有:id屬性定義了一個(gè)字符串類型的變量,存放在page范圍內(nèi).name屬性指定需要檢索的Header信息.當(dāng)檢索到了請(qǐng)求中的向應(yīng)的Header信息,就會(huì)把這個(gè)信息負(fù)值給id定義的字符串,然后保存在page范圍內(nèi),可以用標(biāo)簽輸出這個(gè)字符串.
3):訪問(wèn)請(qǐng)求參數(shù),具體的屬性是id屬性定義了一個(gè)String類型的變量,存放在page范圍內(nèi).name屬性指定請(qǐng)求的參數(shù)名稱.value屬性指定參數(shù)的默認(rèn)值.這個(gè)是通過(guò)name指定的參數(shù)獲取值,然后負(fù)值給id定義的變量.如果沒(méi)有這個(gè)參數(shù)就用value的值負(fù)給變量,然后也可以通過(guò)標(biāo)簽輸出.或者進(jìn)行其他處理.
4)訪問(wèn)JSP隱含對(duì)象比如request,response,session等,具體的屬性有:id屬性定義一個(gè)引用隱含對(duì)象的變量,這個(gè)變量存放在page范圍內(nèi).property屬性指定隱含對(duì)象的名字,可以包括application,config等.
5)標(biāo)簽用于輸出ResourceBundle中的一條信息,標(biāo)簽的bundle屬性指定一個(gè)ResourceBundle,它和配置文件中的
6)標(biāo)簽用于檢查Web資源的內(nèi)容,主要屬性是id屬性定義了一個(gè)web資源的變量,name屬性指定web資源的路徑.input屬性,如果沒(méi)設(shè)置則id屬性定義變量為字符串,如果設(shè)置了值,則id屬性變量為InputStream類型.
7)標(biāo)簽用于檢索Struts框架的內(nèi)在對(duì)象,比如ActionForm,它的id屬性定義了一個(gè)page范圍的變量.forward屬性指定ActionForward對(duì)象和Struts配置文件的
8)標(biāo)簽和標(biāo)準(zhǔn)的JSP標(biāo)簽差不多,都是用來(lái)包含其他的Web資源的內(nèi)容的.區(qū)別是是把其他的Web資源內(nèi)容存放在一個(gè)變量中,而不是直接顯示在頁(yè)面上的.主要屬性是forward屬性指定全局轉(zhuǎn)發(fā)路徑.和
9)標(biāo)簽用于定義一個(gè)變量,id屬性是變量的名字,toScope屬性指定這個(gè)變量的存放范圍,如果不設(shè)置默認(rèn)的是page范圍.然后可以通過(guò)一些方法給id屬性負(fù)值.設(shè)置value屬性此時(shí)id屬性定義的變量為字符串類型,value屬性代表這個(gè)變量的字符串.還可以同時(shí)設(shè)置name和property屬性,name是指定一個(gè)存在的Bean.property是指定存在這個(gè)bean中的某個(gè)屬性.
10)標(biāo)簽用于獲得Map,Collection或者數(shù)字的長(zhǎng)度,id屬性設(shè)置定義一個(gè)Integer類型的變量,name屬性指定存在的Map或者Collection.
11)標(biāo)簽用于在網(wǎng)頁(yè)上輸出某個(gè)bean或者它的屬性的內(nèi)容,這個(gè)標(biāo)簽是
經(jīng)過(guò)了如上的研討,可以看出Bean標(biāo)簽的屬性有很多共同點(diǎn),比如id屬性都是定義一個(gè)變量的,默認(rèn)存放是page范圍.而name屬性指定已經(jīng)存在的JavaBean名字,property屬性指定這個(gè)JavaBean的某個(gè)屬性,scope屬性指定這個(gè)JavaBean的范圍,如果沒(méi)設(shè)置將從page,request,session,application范圍內(nèi)尋找這個(gè)Bean.其中最頻繁使用的是和,用于輸出ResourceBundle和JavaBean中的信息和屬性的標(biāo)簽.
經(jīng)常看到j(luò)sp的初學(xué)者問(wèn)tomcat下怎么設(shè)置jsp、servlet和bean的問(wèn)題,于是總結(jié)了一下怎么tomcat下設(shè)置jsp、servlet和ben,希望對(duì)那些初學(xué)者有所幫助。 接著能寫一個(gè)簡(jiǎn)單的java程式來(lái)測(cè)試J2SDK是否已安裝成功:
public class Test{
public static void main(String args[]){
System.out.println("This is a test program.");
}
}
將上面的這段程式保存為文件名為Test.java的文件。
然后打開命令提示符窗口,cd到你的Test.java所在目錄,然后鍵入下面的命令
javac Test.java
java Test
此時(shí)如果看到打印出來(lái)This is a test program.的話說(shuō)明安裝成功了,如果沒(méi)有打印出這句話,你需要仔細(xì)檢查一下你的設(shè)置情況。
2.安裝Tomcat后,在我的計(jì)算機(jī)->屬性->高級(jí)->環(huán)境變量->系統(tǒng)變量中添加以下環(huán)境變量(假定你的tomcat安裝在c:\tomcat):
CATALINA_HOME=c:\tomcat
CATALINA_BASE=c:\tomcat
然后修改環(huán)境變量中的classpath,把tomat安裝目錄下的common\lib下的(能根據(jù)實(shí)際追加)servlet.jar追加到classpath中去,修改后的classpath如下:
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet.jar;
接著能啟動(dòng)tomcat,在IE中訪問(wèn)http://localhost:8080,如果看到tomcat的歡迎頁(yè)面的話說(shuō)明安裝成功了。
第三步:建立自己的jsp app目錄
1.到Tomcat的安裝目錄的webapps目錄,能看到ROOT,examples, tomcat-docs之類Tomcat自帶的的目錄;
2.在webapps目錄下新建一個(gè)目錄,起名叫myapp;
3.myapp下新建一個(gè)目錄WEB-INF,注意,目錄名稱是區(qū)分大小寫的;
4.WEB-INF下新建一個(gè)文件web.xml,內(nèi)容如下:
<?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>
<display-name>My Web Application</display-name>
<description>
A application for test.
</description>
</web-app>
5.在myapp下新建一個(gè)測(cè)試的jsp頁(yè)面,文件名為index.jsp,文件內(nèi)容如下:
<html>
<body>
<center>
Now time is: <%=new java.util.Date()%>
</center>
</body>
</html>
6.重啟Tomcat
7.打開瀏覽器,輸入http://localhost:8080/myapp/index.jsp 看到當(dāng)前時(shí)間的話說(shuō)明就成功了。
第四步:建立自己的Servlet:
1.用你最熟悉的編輯器(建議使用有語(yǔ)法檢查的java ide)新建一個(gè)servlet程式,文件名為Test.java,文件內(nèi)容如下:
package test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Test extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out=response.getWriter();
out.println("<html><body><h1>This is a servlet test.</h1></body></html>");
out.flush();
}
}
}
2 .編譯
將Test.java放在c:\test下,使用如下命令編譯:
C:\Test>javac Test.java
然后在c:\Test下會(huì)產(chǎn)生一個(gè)編譯后的servlet文件:Test.class
3 .將結(jié)構(gòu)test\Test.class剪切到%CATALINA_HOME%\webapps\myapp\WEB-INF\classes下,也就是剪切那個(gè)test目錄到classes目錄下,如果classes目錄不存在,就新建一個(gè)。 目前webapps\myapp\WEB-INF\classes下有test\Test.class的文件目錄結(jié)構(gòu)
4 .修改webapps\myapp\WEB-INF\web.xml,添加servlet和servlet-mapping
編輯后的web.xml如下所示,紅色為添加的內(nèi)容:
<?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>
<display-name>My Web Application</display-name>
<description>
A application for test.
</description>
<servlet>
<servlet-name>Test</servlet-name>
<display-name>Test</display-name>
<description>A test Servlet</description>
<servlet-class>test.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
</web-app>
這段話中的servlet這一段聲明了你要調(diào)用的Servlet,而servlet-mapping則是將聲明的servlet"映射"到地址/Test上
5 .好了,重啟動(dòng)Tomcat,啟動(dòng)瀏覽器,輸入http://localhost:8080/myapp/Test 如果看到輸出This is a servlet test.就說(shuō)明編寫的servlet成功了。
注意:修改了web.xml及新加了class,都要重啟Tomcat
第四步:建立自己的Bean:
1.用你最熟悉的編輯器(建議使用有語(yǔ)法檢查的java ide)新建一個(gè)java程式,文件名為TestBean.java,文件內(nèi)容如下:
package test;
public class TestBean{
private String name = null;
public TestBean(String strName_p){
this.name=strName_p;
}
public void setName(String strName_p){
this.name=strName_p;
}
public String getName(){
return this.name;
}
}
2 .編譯
將TestBean.java放在c:\test下,使用如下命令編譯:
C:\Test>javac TestBean.java
然后在c:\Test下會(huì)產(chǎn)生一個(gè)編譯后的bean文件:TestBean.class
3 .將TestBean.class文件剪切到 %CATALINA_HOME%\webapps\myapp\WEB-INF\classes\test下,
4 .新建一個(gè)TestBean.jsp文件,文件內(nèi)容為:
<%@ page import="test.TestBean" %>
<html>
<body>
<center>
<%
TestBean testBean=new TestBean("This is a test java bean.");
%>
Java bean name is: <%=testBean.getName()%>
</center>
</body>
</html>
5 .好了,重啟Tomcat,啟動(dòng)瀏覽器,輸入http://localhost:8080/myapp/TestBean.jsp 如果看到輸出Java bean name is: This is a test java bean.就說(shuō)明編寫的Bean成功了。
這樣就完成了整個(gè)Tomcat下的jsp、servlet和javabean的設(shè)置。接下來(lái)需要做的事情就是多看書、多讀別人的好代碼,自己多動(dòng)手寫代碼以增強(qiáng)自己在這方面研發(fā)的能力了。