第一個Servlet程序


 

第一個Servlet程序

 

Servlet

  Servlet是Java服務器端編程,不同於一般的Java應用程序,Servlet程序是運行在服務器上的,服務器有很多種,Tomcat只是其中一種。

 

程序實例

  在MyEclipse中新建一個Web Project。

  在src中新建一個包,其中新建一個類叫HelloWorldServlet。

  編寫Servlet程序如下:

package com.shengqishiwind.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorldServlet extends HttpServlet
{
    @SuppressWarnings("deprecation")
    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException
    {
        // 首先將訪問修飾符覆寫為public

        // 設置內容類型
         resp.setContentType("text/html");

        PrintWriter out = resp.getWriter();

        out.println("<html><head><title>Hello World Sample</title></head>");
        out.println("<body><h1>Hello World Title<h1><h2>" +new Date().toLocaleString() + "</h2></body></html>");
        out.flush();

    }

}

 

  Servlet程序沒有main方法,類一般都需要繼承HttpServlet類。

 

web.xml

  web.xml叫做deployment descriptor,部署描述符。

 

  打開web.xml,編寫內容如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <servlet>
    <servlet-name>HelloWorldServletName</servlet-name>
    <servlet-class>com.shengqishiwind.servlet.HelloWorldServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>HelloWorldServletName</servlet-name><!--  servlet-name 要和上面的保持一致-->
    <url-pattern>/HelloWorld</url-pattern><!--  注意前面要有斜線-->
    </servlet-mapping>
</web-app>

 

 

 

 

訪問這個頁面

  首先進行部署,這里采用在Tomcat的conf的server.xml的Host標簽中加入:(詳見使用MyEclipse開發第一個Web程序

 

 <Context path="/HelloWeb" docBase="E:\MDD\MyEclipseWorkspace\HelloWeb\WebRoot" reloadable="true"/>

 

 

  然后運行服務器:

  點擊IDE中的Run Server按鈕: 

  

  然后在瀏覽器中輸入:http://localhost:8080/HelloWeb/HelloWorld

  就可以看到頁面。

 

 

過程解釋

 

  首先,服務器收到請求,根據其邏輯路徑(HelloWeb),找到其物理路徑("E:\MDD\MyEclipseWorkspace\HelloWeb\WebRoot")(配置文件中列出的);

  然后根據后面的HelloWorld,找到web.xml中對應的url-pattern,然后找到對應的名字:HelloWorldServletName,根據它找到對應的servlet,其中列出了類名:com.shengqishiwind.servlet.HelloWorldServlet,

  實例化這個類的對象,再執行其中的doGet()方法,將頁面返回。

 

  注意,更改Java代碼不需要重啟服務器(因為server.xml配置文件中加了reloadable="true",所以更改代碼時服務器會重啟),但是更改配置代碼(web.xml中代碼)需要重啟服務器。

  

  我們可以將Servlet看作是嵌套了HTML代碼的Java類;可以將JSP看作是嵌套了Java代碼的HTML頁面。

 

參考資料

  聖思園張龍老師視頻教程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM