⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 right10_2_1.htm

📁 清华大学JAVA教程
💻 HTM
字号:
<html><head><title>JAVA编程语言</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><link rel="stylesheet" href="../../../css/text.css" type="text/css"></head><body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" ><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">  <tr>     <td valign="top">       <table width="90%" border="0" cellspacing="0" cellpadding="0" align="center" bgcolor="#FFFFFF">        <tr>          <td valign="top">             <p class="pt9-black">   表单是HTML中使用最广泛的传递信息的手段。搞清楚Servlet与表单的交互,就在客户端与服务器之间架起了一座桥梁。Servlet使用HttpServlet类中的方法与表单进行交互。在HttpServlet类中有几个未完全实现的方法,你可以自己定义方法的内容,但是必须正确使用方法名称以使HTTP               Server把客户请求正确的映射到相应的函数上。<br>              <br>                doHeader 用于处理HEADER请求<br>                doGet 用于处理GET请求,也可以自动的支持HEADER请求<br>                doPost 用于处理POST请求<br>                doPut 用于处理PUT请求<br>                doDelete 用于处理DELETE请求<br>                HttpServlet的Service方法,当它接收到一个OPTIONS请求时,它会自动调用doOptions方法,当接收到一个TRACE请求时调用doTrace。DoOptions默认执行方式是自动决定什么样的HTTP被选择并返回哪个信息。<br>              <br>                在使用这些方法时必须带两个参数。第一个包含来自客户端的数据HttpServletRequest。第二个参数包含客户端的相应HttpServletResponse。在我们的第一个例子中使用的是doGet方法,因为通过地址访问的话,对应的方式是GET。<br>              <br>                一个HttpServletRequest对象提供请求HTTP头部数据,也允许获取客户端的数据。怎样获取这些数据取决于HTTP请求方法。<br>              <br>                不管何种HTTP方式,都可以用getParameterValues方法返回特定名称的参数值。 <br>              <br>                对于HTTP GET请求的方式,getQueryString方法将会返回一个可以用来解剖分析的参数值。<br>              <br>                对于用HTTP POST,PUT和DELETE请求的方式,HttpServletRequest有两种方法可以选择:如果是文本数据,你能通过getReader的方法得到BufferedReader获取数据;如果是二进制数据,可以通过getInputStream方法得到ServletInputStream获取数据。<br>              <br>                为了相应客户端,一个HttpServletResponse对象提供返回数据给用户的两个方法:一种是用getWriter方法得到一个PrintWriter,用于返回文本数据;另一种方法是用getOutputStream方法得到ServletOutputStream,用于返回二进制数据。在使用Writer或OutputStream之前应先设置头部(HttpServletResponse中有相应的方法),然后用Writer或OutputStream将相应的主体部分发给用户。完成后要关闭Writer或OutputStream以便让服务器知道相应已经结束。<br>              <br>                下面我们举一个使用HttpServletRequest和HttpServletResponse得到并打印客户端信息的例子:<br>              <br>                <font color="339900">//RequestInfo.java</font><br>                import java.io.*;<br>                import javax.servlet.*;<br>                import javax.servlet.http.*;</p>            <p class="pt9-black">  public class RequestInfo extends HttpServlet               {<br>                  public void doGet(HttpServletRequest request, HttpServletResponse               response)<br>                    throws IOException, ServletException <br>                             <font color="339900">//处理GET请求的方法</font><br>                  { <br>                    response.setContentType(&quot;text/html&quot;); <br>                    <font color="339900">//先设置Header,在这里只设置ContentType一项</font><br>                    PrintWriter out = response.getWriter(); <br>                    <font color="339900">//得到文本输出Writer</font><br>              <br>                    <font color="339900">//下面打印相关的HTML</font><br>                    out.println(&quot;&lt;html&gt;&quot;);<br>                    out.println(&quot;&lt;head&gt;&quot;);<br>                    out.println(&quot;&lt;title&gt;Request Information Example&lt;/title&gt;&quot;);<br>                    out.println(&quot;&lt;/head&gt;&quot;);<br>                    out.println(&quot;&lt;body&gt;&quot;);<br>                    out.println(&quot;&lt;h3&gt;Request Information Example&lt;/h3&gt;&quot;);<br>            </p>            <span class="pt9-black">      out.println(&quot;Request URI: &quot;             + request.getRequestURI()+&quot;&lt;br&gt;&quot;); <br>                  <font color="339900">//打印请求的路径</font><br>                  out.println(&quot;Protocol: &quot; + request.getProtocol()+&quot;&lt;br&gt;&quot;);	            <br>                  <font color="339900">//打印协议名称</font><br>                  out.println(&quot;PathInfo: &quot; + request.getPathInfo()+&quot;&lt;br&gt;&quot;);	            <br>                  <font color="339900">//打印额外的路径信息</font><br>                  out.println(&quot;Remote Address: &quot; + request.getRemoteAddr());	            <br>                  <font color="339900">//打印客户机的地址,如果没有打印IP地址</font><br>                  out.println(&quot;&lt;/body&gt;&quot;);<br>                  out.println(&quot;&lt;/html&gt;&quot;);<br>                  out.close(); <font color="339900">//关闭Writer</font><br>                } </span>             <p class="pt9-black">     public void doPost(HttpServletRequest request,               HttpServletResponse response)<br>                  throws IOException, ServletException<br>                  {<br>                   <font color="339900">//如果是POST请求类型,同样调用GET类型的响应函数</font><br>                   doGet(request, response);<br>                <span class="pt9-black">  }<br>                }<br>              <br>                用我们在前面介绍的方法在Resin中配置使其运行,我们得到的结果如下:<br>              <img src="../../../images/tu/ch10/10_2_1.gif" width="440" height="315"><br>              <br>              <br>                <font color="000099">这样的一个例子很好的说明了所谓的动态网页和静态网页的区别,就上面这个例子而言,每个客户看到的内容是不一样的,而静态网页则对每一个客户而言都是一成不变的。</font></span>               <br>            </p>            </td>        </tr>      </table>    </td>  </tr></table></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -