1. 程式人生 > >寫一個 servlet 的方法

寫一個 servlet 的方法

 前提:  會新建web專案,指定 web 容器如tomcat

1. servlet 方面

  編寫的servlet 要實現 Servlet介面或者繼承 HttpServlet抽象類

  參考程式碼:

package demo;

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;
/**
 * @author jacktu
 * Creaet Date 2018-03-16
 */
public class HelloServlet extends HttpServlet {//繼承 HttpServlet

	@Override
	/**
	 * Servlet容器收到請求之後,會呼叫 Servlet的service方法來處理請求。<br/>
	 * 注: 容器會事先建立好request和response, 					<br/>
	 * 其中,request物件封裝了請求資料包裡面的 所有資料。 				<br/>
	 * 我們可以將處理結果寫到response 物件裡面, 					<br/>
	 * 然後容器負責從response物件從獲取處理結果,然後打包傳送給瀏覽器。 	<br/>
	 */
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		/*
		 * 設定content-type訊息頭,告訴瀏覽器, 伺服器返回的資料型別。
		 */
		response.setContentType("text/html");
		/*
		 * 通過response物件獲得輸出流。
		 */
		PrintWriter out = response.getWriter();
		/*
		 * 把資料寫到response物件上。 
		 * 注: Servlet容器會將response物件上存放的 資料取出來
		 * ,打一個包(響應資料包), 然後傳送給瀏覽器。
		 */
		out.println("<h1>Hello Kitty</h1>");
		/*
		 * 如果沒有呼叫out.close,則容器會自動 關閉out。
		 */
		out.close();

	}

}

2.配置方面

以下是 專案中 web.xml中的內容

web.xml 位置: webapp/WEB-INF/web.xml 或者 src/main/webapp/WEB-INF/web.xml

eclipse的話 按 Ctrl+Shift+R ,然後輸入 web.xml 就可以找到 

參考配置:

<!-- 此處是你自動生成的,複製時不要貼上 -->
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <!-- 編寫的servlet配置 -->
  <servlet>
  		<!-- servlet名字(我隨便取的) -->
 		<servlet-name>Hello</servlet-name>
 		<!--完整的類名 ,包名.類名 -->
 		<servlet-class>demo.HelloServlet</servlet-class>
 	</servlet>
 	<servlet-mapping>
  		<!-- servlet名字,和上面保持一致 -->
 		<servlet-name>Hello</servlet-name>
 		<!-- 相對專案訪問路徑 -->
 		<url-pattern>/hello</url-pattern>
 	</servlet-mapping>

3.訪問路徑

http//ip地址:埠號/專案名/servlet 的url 路徑

例如: http://localhost:8080/HelloWorld/hello