創建HttpServlet的方法
創建自己的HttpServlet類,4個步驟:
(1)擴展HttpServlet抽象類。
(2)覆蓋HttpServlet的部分方法,如覆蓋doGet()或doPost方法。
(3)獲取HTTP請求信息,例如通過HttpServletRequest對象來檢索HTML表單所提交的數據或URL上的查詢字符串。無論是HTML表單數據還是URL上的查詢字符串,在
HttpServletRequest對象中都以參數名/參數值的形式存放,可以通過一下方法檢索參數信息:
getParameterNames():返回一個Enumeration對象,它包含了所有的參數名信息
getParameter(String name):返回參數名name對應的參數值
getParameterValues():返回一個Enumeration對象,它包含了所有的參數值信息HttpServletResponse對象有一個getWriter()方法。該方法返回一個PrintWriter對象。使用
PrintWriter的print()或println()方法可以向客戶端發送字符串數據流。
(4)生成HTTP響應結果。通過HttpServletResponse對象可以生成響應結果。HttpServletResponse對象有一個getWriter()方法,該方法返回一個PrintWriter對象。使用
PrintWriter的print()或println()方法可以向客戶端發送字符串數據流。
例:
package mypack;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloServlet extends HttpServlet//第一步
{
//覆蓋doGet()方法
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
//第三步:獲取HTTP請求中的參數信息
String clientName=request.getParameter("clientName");
if(clientNme!=null)
clientName=new String(clientName.getBytes("ISO-8859-1"),"GB2312");
else
clientName="我的朋友";
//第四步:生成HTTP響應結果
PrintWriter out;
String title="HelloServlet";
String heading1="This is output from HelloServlet by doGet:";
response.setContentType("text/html;charset=GB2312");/*MIME類型*/
out=response.getWriter();
out.print("<html><head><title>"+title+"<title>");
out.print("</head><body>");
out.print(heading1);
out.print("<h1><p>"+clientName+":您好</h1>");
out.print("</body></html>");
out.close();
}
}
在WEB-INF下的Web.xml里增加如下代碼:
<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">
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>mypack.Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>
</web>