servlet測試
首先,打開myeclipse,file|new|Dynamic Web Project 會出現一個對話框,在Project name的文本框中輸入:FirstServlet;然后點擊finish,完成創建。
注意配置tomcat,點擊工具欄的Window/Preferences/MyEclipse/Servers/Tomcat/Tomcat 7.x,然后選中你的tomcat,Enable,確定;
其次,展開項目,在src下新建New|Servlet,彈出對話框,在Java package中輸入:cc.openhome(包名),className:HelloServlet,點擊finish完成,如下:
添加藍色部分
package cc.openhome;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/hello.view")
public class HelloServlet extends HttpServlet { //1.繼承HttpServlet
public HelloServlet() { super(); }
public void destroy() { super.destroy(); }
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //2.重新定義doGet
response.setContentType("text/html;charset=UTF-8"); //3.設置響應類型
PrintWriter out = response.getWriter(); //4.取得響應輸出對象
String name=request.getParameter("name"); //5.取得請求參數
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("<HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println("<BODY>");
out.println("<h1>Hello!"+name+"</h1>"); //6.數據輸出到前端
out.print("This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush(); out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
public void init() throws ServletException { // Put your code here }
}
在HelloServlet.java 上右擊選擇 Run as / MyEclipse Server Application啟動tomcat;
在瀏覽器地址欄輸入http://localhost:8080/FirstServlet/hello.view?name=nihao會出現如下結果:
至於標注@WebServlet("/hello.view") 這表示URL是/hello.view,就會由HelloServlet.java來處理請求。
另外,url也可以在項目的WEB-INF/web.xml內設置,如:
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>cc.openhome.HelloServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello.do</url-pattern>
</servlet-mapping>
當請求為/hello.do時,則有HelloServlet來處理,這分別是由<servlet-mapping>中的<servlet-name>和<url-pattern>來定義,而HelloServlet名稱的Servlet,實際上是cc.openhome.HelloServlet類的實例,這分別是由<servlet>中的<servlet-name>和<servlet-calss>來定義,如果有多個Servlet在設置<load-on-startup>時,使用了相同的數字,則以其在web.xml中設置的順序來初始Servlet,若<url-pattern>中的內容和標注中的內容一樣,則web.xml會覆蓋@WebServlet()標注
有三種方式可以設置處理Servlet請求的方式,請參考:
http://e.dangdang.com/html/reader.html;jsessionid=9798112171FADBF7AC2707188C1DF13F?productId=1900280541&bookUid=bb.135546768822699731