2006年01月29日

第一隻servlet程式

記一下小弟的第一隻servlet程式

1、先在tomcat的server.xml檔裏設定好的你的程式所在地,範列
       <Context path="/hi" docBase="/var/tomcat/ap/js" debug="9"
              privileged="true"
              crossContext="false"
              reloadable="true"
              trusted="false" >
              <Logger className="org.apache.catalina.logger.FileLogger"
                      prefix="js.log." suffix=".txt"
                      timestamp="true"/>
      </Context>
意思是說,我建立了一個名字叫hi的context
然後目錄是/var/tomcat/ap/js
下面的設定就上官網查查就知了

2、然後在/var/tomcat/ap/js目錄裏要建立一些基本的東西
WEB-INF的目錄(他的下面再建二個次目錄)
             ===>classes
             ===>lib
在WEB-INF的目錄裏再建立一檔案,名字叫web.xml
範列內容如下
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
  <servlet>
    <servlet-name>hi</servlet-name>
    <servlet-class>blog.roodo.com.mywork.man.hi</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>hi</servlet-name>
    <url-pattern>/hi</url-pattern>
  </servlet-mapping>
</web-app>
說明:
    <servlet-name>hi</servlet-name> ===>可看你想取什名字
    <servlet-class>blog.roodo.com.mywork.man.hi</servlet-class> ===>這是你的servlet的java程式
    <servlet-name>hi</servlet-name> ===>你打算要幫誰取別名
    <url-pattern>/hi</url-pattern> ====>別名叫什
所以我們可以利用這個方法,替我們的程式取很多的別名,
讓使用者以為有很多的登入處,但背後還是只有一隻程式在負責處理,
這在維護上會較方便

我的目錄範例
root@ubuntu:/var/tomcat/ap/js/WEB-INF# ls -al
total 4
drwxr-xr-x 4 root root 120 Jan 28 16:49 .
drwxr-xr-x 6 root root 264 Jan 29 00:49 ..
drwxr-xr-x 2 root root  48 Jan 28 16:07 classes
drwxr-xr-x 2 root root  72 Jan 29 00:49 lib
-rw-r--r-- 1 root root 504 Jan 28 16:36 web.xml


3、選用你一個上手的工具來寫程式了
hi.java的程式碼
package blog.roodo.com.mywork.man;

import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class hi  extends HttpServlet {
      private static final String CONTENT_TYPE = "text/html; charset=UTF-8";
   
    public void init() throws ServletException {
        System.out.println("in here1");
     }
    
     public void doPost(HttpServletRequest request, HttpServletResponse response) throws
         ServletException, IOException {
        this.doGet(request,response);
    }
  
     //Process the HTTP Get request
     public void doGet(HttpServletRequest request, HttpServletResponse response) throws
         ServletException, IOException {
       response.setContentType(CONTENT_TYPE);
       PrintWriter out = response.getWriter();
       out.println("<html>");
       out.println("<head><title>test1</title></head>");
       out.println("<body bgcolor=\"#ffffff\">");
       out.println("<p>看到了</p>");
       out.println("</body>");
       out.println("</html>");
       out.close();
     }
  
     //Clean up resources
     public void destroy() {
         System.out.println("in here2");
  }
 
}
重點是你要extends HttpServlet,然後在doGo或doPost裏處理事項
這個裏就是直接印出東西
再init()是第一個會跑的地方,所以這裏很適合做一些初始化的動作,
並且他只會跑一次,除非你重新戴入程式

4、我是使用jar檔的方法測試這個程試的
所以我把編譯好的jar檔放到這裏
root@ubuntu:/var/tomcat/ap/js/WEB-INF/lib# ls -al
total 4
drwxr-xr-x 2 root root   72 Jan 29 00:49 .
drwxr-xr-x 4 root root  120 Jan 28 16:49 ..
-rw-r--r-- 1 root root 1318 Jan 29 00:49 js.jar

5、重新起動tomcat,然後http://localhost/hi/hi ,應該就可看到了

Posted by my_work at 樂多Roodo! │00:56 │回應(0)引用(1)java
樂多分類:網路/3C 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/1060535
引用列表:
『增加人氣』『部落格行銷』『賺廣告費』【EzBlogs部落格行銷系統】 at 2009年12月16日 01:48