對於一個Web應用,的發布過程
1.部署HTML檔案
在helloapp目錄下加入index.htm檔案.
2.部署JSP
常見JSP檔案,helloapp目錄下.
3.部署Servlet
(1).建立一個Servlet檔案,它可調用HttpServletRequest對象的getParameter方法讀取客戶提交的loginForm表單資料.
(2).編譯這個java檔案,編譯時間需要servlet-api.jar檔案.把編譯出來的class檔案拷貝到"/helloapp/WEB-INF/classes/mypackage "目錄下.(其中mypackage是這個類所屬的包).
(3).在web.xml中為類加上<servlet>和<servlet-mapping>元素.
<servlet>元素的屬性
<servlet-name> |
定義Servlet的名字 |
<servelt-class> |
指定實現這個Servlet的類 |
<init-param> |
定義Servlet的初始化參數(包括參數名和數值).一個<servlet>中可以有多個<init-param> |
<load-on-startup> |
指定當Web應用啟動時,裝載Servlet的次序,當這個值為正數或0,Servlet容器先載入數值小的Servlet.如這個值為負數或沒有設定,那麼Servlet容器將在Web客戶首次訪問這個Servlet時載入它. |
<servlet-mapping>用來指定<servlet-name>和<url-pattern>映射.
<url-pattern>指訪問Servlet 的相對URL路徑.
4.部署JSP Tag Library
在Web應用中加入Tag Library(標籤庫).Tag Library向使用者提供了自訂JSP標籤的功能.我們將定義一個名為mytaglib的標籤庫,它包含了一個簡單的hello標籤,這個標籤能將JSP中所有的<mm:hello/>解析為字串"hello".
以下是建立和發布mytaglib標籤庫的步驟:
(1).編寫用於處理hello標籤的類HelloTag.java.
- package mypackage;
- import javax.servlet.jsp.JspException;
- import javax.servlet.jsp.JspTagException;
- import javax.servlet.jsp.tagext.TagSupport;
- pubilc class HelloTag extends TagSupport
- {
- public void HelloTag(){}
- public int doEndTag() throws JspException {
- try{
- pageContext.getOut().print("Hello");
- }
- catch(Exception e){
- throw new JspTagException(e.getMessage();
- }
- return SKIP_BODY;
- }
- public void release() {
- super.release();
- }
- }
(1).編譯HelloTag.java時,需要jsp-api.jar檔案.編譯產生的HelloTage.class存放位置為/WEB-INF/classes/mypackage/HelloTag.class.
(2).建立Tag Library的描述檔案mytaglib.tld檔案.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib ...>
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>mytaglib</shortname
<url>/mytaglib</url>
<tag>
<name>hello</name>
<tagclass>mypackage.HelloTag</tagcalss>
bodycontent>empty</bodycontent>
<info>Just Says Hello</info>
</tag>
</taglib>
(3).在web.xml檔案中加入<taglib>元素
<?xml ...>
<!DOCTYPE web-app ...>
<web-app>
<servlet>
........
</servlet>
<taglib>
<taglib-url>/mytaglib</taglib-url>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
</web-app>
其中,<taglib-url>指定Tag Library>標示符.<taglib-location>指定Tag Library的描述檔案(TLD)的位置.
(4).在hello.jap檔案中加入hello標籤,首先映入mytaglib的taglib指令.
<%@ taglib url="/mytaglib" prefix="mm" %>
接下來在頁面中的<mm:hello/>都將輸出Hello.