首頁 > Java > java教程 > 怎麼設定servlet

怎麼設定servlet

(*-*)浩
發布: 2019-05-16 17:03:02
原創
9811 人瀏覽過


Java Servlet是一個基於Java技術的網路元件,運行在伺服器端,由Servlet容器管理,用於產生動態的內容。 Servlet是平台獨立的Java類,寫一個Servlet其實就是依照Servlet規格來寫一個Java類別。

Servlet運作需要一個運作環境,也就是需要一個Servlet容器,這裡我們使用Tomacat。 Tomcat作為Web伺服器,具有處理HTML頁面的功能,另外它也是一個Servlet和JSP容器。

怎麼設定servlet

實作一個helloWord範例。

推薦課程:Java教學

方式一:透過實作Servlet介面來寫Servlet類,需要實作介面中定義的5個方法,程式碼如下:

package day_052102;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/*
 这里通过实现Servlet接口来编写一个简单的Servlet
 */
public class ServletDemo implements Servlet
{
    public void init(ServletConfig config) throws ServletException
    {
    }
    public ServletConfig getServletConfig()
    {
        
        return null;
    }
    public String getServletInfo()
    {
        return null;
    }
    public void destroy()
    {
    }
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException
    {
        PrintWriter out=res.getWriter();
        out.print("hello World!");
        out.close();
    }
}
登入後複製

然後進行web.xml的配置,程式碼如下:

<servlet>
     <servlet-name>ServletDemo</servlet-name>
     <servlet-class>day_052102.ServletDemo</servlet-class>
 </servlet>
 <servlet-mapping>
     <servlet-name>ServletDemo</servlet-name>
     <url-pattern>/ServletDemo</url-pattern>
 </servlet-mapping>
登入後複製

點選執行按鈕,啟動tomacat伺服器,然後在瀏覽器中輸入http://localhost:8080/day_052102/ServletDemo,即可進行實作頁面顯示hello World的範例。結果如下。


方式二:繼承抽象類別GenericServlet,該類別定義了一個通用的Servlet。

public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable
登入後複製

程式碼範例實作hellWord如下:

public class GenericServletDemo extends GenericServlet
{
    @Override
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException
    {
        PrintWriter out=res.getWriter();
        out.println("hello World!");
        out.close();        
    }

}
登入後複製

方式三:透過繼承抽象的HttpServlet類,此類繼承於GenericServlet類別。

PS:HttpServlet類別中沒有抽象的方法。這個類別重寫了service方法,它會根據請求的方式呼叫doGet或doGet方法,部分原始碼如下:

protected void service(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException 
{
        String method = req.getMethod();
        if (method.equals(METHOD_GET))   //当请求方式为GET时,调用doGet方法
        {   
            long lastModified = getLastModified(req);
            if (lastModified == -1) 
            {
                // servlet doesn't support if-modified-since, no reason
                // to go through further expensive logic
                doGet(req, resp);
            } 
            else
            {
                long ifModifiedSince;
                try 
                {
                    ifModifiedSince = req.getDateHeader(HEADER_IFMODSINCE);
                } 
                catch (IllegalArgumentException iae)
                {
                    // Invalid date header - proceed as if none was set
                    ifModifiedSince = -1;
                }
                if (ifModifiedSince < (lastModified / 1000 * 1000))
                {
                    // If the servlet mod time is later, call doGet()
                    // Round down to the nearest second for a proper compare
                    // A ifModifiedSince of -1 will always be less
                    maybeSetLastModified(resp, lastModified);
                    doGet(req, resp);
                }
                else
                {
                    resp.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
                }
            }
        }
登入後複製

如果在自己寫的類別中重寫了service方法,那麼Servlet容器就會把請求交給你重寫的service方法處理。

public class HttpServletDemo extends HttpServlet
{
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException
    {
        PrintWriter out=resp.getWriter();
        out.println("hello!");
        out.close();
    }
}
登入後複製


以上是怎麼設定servlet的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板