深入Servlet技術

1.新建一個web項目,首先貼上自己的項目結構:

2.建立FirstServlet:

package com.wch.sp.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

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

/**
 * Servlet implementation class FirstServlet
 */
public class FirstServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public FirstServlet() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response){
		this.log("執行doGet方法");
		try {
			this.execute(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response) {
		this.log("執行Post方法");
		
		try {
			this.execute(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	@Override
	protected long getLastModified(HttpServletRequest req) {
		this.log("調用getLastModified");
		return -1;
	}
	
	public void execute(HttpServletRequest request,HttpServletResponse response) throws Exception
	{
		response.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		
		String method = request.getMethod();
		String requestURI = request.getRequestURI();
		String param = getInitParameter("message");
		
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		
		out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>");
		out.println("<html>");
		out.println("<head>");
		out.println(" <title>第一個Servlet </title> ");
		out.println("<body>");
		out.println("以"+method+"的方式訪問該頁面,取到的param爲:"+param+"<br/>");
		out.println("<form action='"+requestURI+"' method='GET' <input type='text' name='param' value='param String'/>" +
				"<input type='submit' value='以Get方式查詢頁面'"+requestURI+"/>");
		out.println("</form>");
		out.println("<form action='"+requestURI+"' method='POST' <input type='text' name='param' value='param String'/>" +
				"<input type='submit' value='以POST方式查詢頁面'"+requestURI+"/>");
		out.println("</form>");
		out.println("<script>document.write('本頁面最後的更新時間:'+document.lastModified);</script>");
		out.println("</body>");		
		out.println("</head>");
		out.println("</html>");
		out.flush();
		out.close();
	}

}


3.配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	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_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <!-- 配置Servlet中,以下兩個屬性是必須配置的,name是可以任意取的,class配置的是包名 -->
    <servlet-name>FirstServlet</servlet-name>
    <servlet-class>com.wch.sp.servlet.FirstServlet</servlet-class>
    <!-- servlet中還有許多可選的配置,例如下面的初始化參數配置,一個Servlet可以配置多個初始化參數,Servlet中可以使用getInitParameter(name)
		或者是getInitParameterNames()獲取配置的參數值-->
    <init-param>
        <param-name>message</param-name>
        <param-value>utf-8</param-value>
    </init-param>
    <!--下面的標籤配置的是Servlet的加載方式,可選值爲0或1,如果配置爲1,Tomcat會在啓動時加載該Serlet。
    	否則,Tomcat會在有人第一次請求該Servlet的時候才加載該 Servlet。實際項目中,一些框架如Struts、JSF、Spring都是用該參數來加載框架中核心的Servlet-->
    <load-on-startup>1</load-on-startup>
</servlet>
<!--配置Servlet的訪問方式,Servlet-name就是前面配置的Servlet的名稱,url-pattern配置該Servlet的訪問方式-->
<servlet-mapping>
    <servlet-name>FirstServlet</servlet-name>
<!-- 配置的Servlet的訪問路徑,可以隨便設置,比如說我現在訪問Servlet的路徑就是:http://localhost:8080/Servlet/servlet/firstServlet -->
    <url-pattern>/servlet/firstServlet</url-pattern>
</servlet-mapping>
</web-app>


4.部署在Tomcat容器中,然後開啓Tomcat服務器,訪問:http://localhost:8080/Servlet/servlet/firstServlet(如果你在doGet()或者doPost()方法中打入斷點,會更加好理解程序的流程)

訪問結果是:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章