创建HttpServlet的步骤

0人收藏此文章, 我要收藏 发表于3年前(2009-05-31 15:58) , 已有955次阅读 ,共0个评论

创建用户自己的HttpServlet类。通常涉及下列4个步骤

  1. 扩展HttpServlet抽象类
  2. 覆盖HttpServlet的部分方法,例如覆盖doGet()和doPost()方法
  3. 获取HTTP请求信息。例如通过HttpServletRequest对象来检索HTML表单所提交的数据或URL上的查询字符串。无论是 HTML表单数据还是URL上的查询字符串,在HttpServletRequest对象中都以参数名/参数值的形式存放,可以通过以下方法检索参数信 息:
  •  getParameterNames():  返回一个Enumeration对象。它包含了所有的参数名信息
  •  getParameter(String name): 返回参数名name对应的参数值
  •  getParamaterValues(): 返回一个Enumeration对象,它包含了所有的参数值信息

   4.生成HTTP响应结果。通过HttpServletResponse对象可以生成响应结果。HttpServletResponse对象有一个 getWriter()方法,该方法返回一个PrintWriter对象。使用PrintWriter的print()或println()方法可以向客 户端发送字符串数据流。

 例子: 提供一个Servlet样例(HelloServlet.java)

package com.myServlet

  import  javax.servlet.*;
  import  javax.servlet.http.*;
  import java.io.*;

  public class HelloServlet extends HttpServlet     // 第一步:扩展HttpServlet抽象类
 {

  // 第二步: 覆盖doGet()方法
   public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException ,ServletException{

 //  第三步: 获取HTTP请求中的参数信息

   String clientName=request.getParameter("clientName");

   if(clientName!=null)

    clientName=new String(clientName.getBytes("ISO-8859-1"),"GB2312");

else

 clientName="你好"

 // 第四步

 PrintWriter out;
 String title="HelloServlet";
 String heading1="This is output from HelloServlet by doGet:";
  response.setContentType("text/html;charset=GB2312");

 out=response.getWriter();

out.print("<HTML><HEAD><TITLE>"+title+"</TITLE>);

 out.print("</HEAD><BODY>")

out.print(heading1);

out.println("<h1><P>"+clientName+":你好</h1>"+);

out.print("</BODY></HTML>");

out.close();

     }

 }

上述HelloServlet类扩展HttpServlet抽象类,覆盖了doGet方法。在重写的doGet方法中,通过 getParameter方法读取HTTP请求中的一个参数ClientName。在上述代码中,为了解决汉化问题,做了必要的转码工作。客户提交的查询 数据采用默认的ISO-8859-1编码,应该把它转换为中文编码GB2312:

  // 字符编码转换

   clientName=new String(clientName.getBytes(“ISO-8859-1”),"GB2312");

// 设置输出响应数据的字符编码

 response.setContentType("text/html;charset=GB2312");

HellowServlet.class 的存放位置为:

 <CATALINA_HOME>/webapps/helloapp/WEB-INF/classes/mypack/HelloServlet.class

在Web.xml中位HelloServlet类加上如下<servlet>和<servlet-mapping>元素:

 <servlet>

   <servlet-name>HelloServlet</servlet-name>
  <servlet-class>mypackCounterServlet</servlet-class>

</servlet>

<servlet-mapping>HelloServlet</servlet-mapping>

<url-pattern>/hello</url-pattern>

</servlet-mapping>

然后通过如下URL访问HelloServlet:

posted on 2013-03-14 20:40 姚先进 阅读(264) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: