`
jiangduxi
  • 浏览: 453247 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用HttpServlet处理客户端请求

阅读更多
Servlet被设计成请求驱动的。Servlet的请求可能包含多个数据项。当Web容器接收到某个对Servlet的请求时,它把它封装成一个HttpServletRequest对象,然后把此对象传给Servlet的对应的服务方法。服务方法通常是doGet()和doPost()方法。另外HttpServlet也提供了一些高级的处理方法,它们有doPut、doTrace和doDelete。
1.doGet
Get调用用于获取服务器信息,并将其作为响应返回给客户端。当经由Web浏览器,或者通过HTML、JSP直接访问Servlet的URL时,一般使用Get调用。Get调用在URL里显示正传送给Servlet的数据,这在系统的安全方面可能带来一些问题。比如说用户登录时,表单里的用户名和密码需要发送到服务器端,如果使用Get调用,就会在浏览器的URL里显示用户名和密码。
下面给出一个例子。使用doGet调用,那么在客户端的Form中必须指定调用的类型为get
引用

<form action="/test/doget_servlet" method="get">
........
<input type="type" name="name">
..........
</form>

那么Servlet代码如下
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class DoGetTestServlet extends HttpServlet
{
   public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{
  request.setCharacterEncoding("gb2312");
  response.setContentType("text/html;charset=gb2312");
  PrintWtriter out=response.getWriter();
  out.println("获得了以下的参数值:name=<br>"+request.getParameter("name"));
  out.flush();
}
}

在doGetTestServlet中,通过request.getParameter()方法获得请求中的参数。部署时候,主要在web.xml中正确描述这个Servlet,并且知道URI映射为/doget_servlet,
即:
引用

<servlet>
   <servlet-name>DoGetTestServlet</servlet-name>
   <servlet-class>com.test.DoGetTestServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>DoGetTestServlet</servlet-name>
  <url-pattern>/doget_servlet<url-pattern>
</servlet-mapping>


2.doPost
   doPost用于客户端把数据传送到服务器端,它会有副作用。但是使用它的好处是可以隐藏发送给服务器端的任何数据。Post适合于发送大量的数据。

例如:
引用

  <form action="/test/dopost_servlet" method="post">
  ......
<textarea name="des" cols="50" rows="10"></textarea>
  ....
  </form>

上例使用了textarea控件,客户端可以发送大量的数据
下面看看Servlet代码
 import java.io.*;
 import javax.servlet.*;
 import javax.servlet.http.*;

 public class DoPostTestServlet extends HttpServlet{
  public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{
    request.setCharacterEncoding("gb2312");
    response.setContentType("text/html;chatset=gb2312");
    PrintWiter out=response.getWriter();
    out.println("获得以下的参数值:des=<br>"+request.getParameter("des"));
    out.flush();
}
}

  在处理Post请求的Servlet服务器时,它需要覆盖HttpServlet的doPost方法,doPost方法中的代码几乎和DoGetTestServlet中的doGet代码一样。

3.doPut
  Put的调用和Post相似,它允许客户端把真正的文件存放在服务器上,而不仅仅是传送数据
4.doDelete
  它与Put调用相似,它允许客户端删除服务器端的文件或者Web页面。它的使用也非常少。
5.doTrace
  由容器调用以使此Servlet能够处理Trace请求。这个方法主要用于调试,它是不可以覆盖的方法
6.doHead
它用于处理客户端的Head调用,并且返回一个Response。当客户端只需要知道响应的Header时,它就发出一个Header请求。在这种请求下客户端往往关心响应的长度和响应的MIME类型
7.doOptions
   它用于处理客户端的Options调用。通过这个调用,客户端可以获得此Servlet支持的方法,如某个Servlet覆盖了doPost方法,那么将返回:
Allow:POST,TRACE,OPTIONS,HEAD
在一般情况下不需要覆盖这个方法。
分享到:
评论

相关推荐

    Http请求处理流程

    它是整个请求处理过程的核心部分,确保了数据能够在客户端和服务器之间顺畅传递。 ##### 1. HTTP管道组成 HTTP管道由多个阶段组成,包括但不限于: - **请求路由**:确定请求的最终目的地。 - **身份验证**:验证...

    HttpServlet实现的资料,帮助初学者使用HttpServlet

    - 当客户端请求Servlet时,服务器会创建一个线程来处理请求。Servlet的生命周期包含初始化、服务和销毁三个阶段。 - **初始化阶段**:Servlet首次被请求时,服务器调用`init()`方法进行初始化。开发者可以在这个...

    HttpServlet 的Servlet的详解

    - **性能提升**:相比于传统的CGI脚本,Servlet采用了不同的进程处理模型,因此能够更快速地响应客户端请求。 - **标准API支持**:Servlet使用了广泛支持的标准API,确保了其在各种Web服务器上的兼容性。 - **平台...

    JavaWeb程序设计入门课件HttpServlet共4页

    Servlet是Java Web应用的核心,用于处理客户端请求并返回响应。JSP则允许开发者使用HTML语法来嵌入Java代码,简化视图层的开发。Filter和Listener则用于增强应用的功能,如过滤请求、监听事件。 二、HttpServlet...

    httpservlet的jar包,修复httpservlet报错

    Servlet容器(如Tomcat、Jetty等)负责加载和管理Servlet实例,处理来自客户端的请求,并将结果返回给客户端。`javax.servlet.http.HttpServlet`是专为HTTP协议设计的Servlet,包含了处理GET、POST等HTTP方法的方法...

    Servlet&GenericServlet&HttpServlet源码分析.zip_GenericServle_httpser

    5. **HttpServletRequest和HttpServletResponse接口**:这些是HttpServlet处理HTTP请求时使用的对象,包含了HTTP请求头、参数、会话等信息,以及用于构建响应的方法。 通过源码分析,你可以了解Servlet如何通过Web...

    android 服务器+客户端的简单案例

    3. 异步处理:Android客户端应使用异步方式发送请求,避免阻塞UI线程。 4. 错误处理:客户端需要处理网络错误、服务器错误等各种异常情况。 5. 安全性:考虑使用HTTPS进行加密通信,防止数据被窃取。 6. 应用权限:...

    客户端与服务器的对话程序,有UI界面

    2. **服务器**:服务器是响应客户端请求并提供服务的计算机程序。在本例中,服务器可能由Java Servlet技术实现。Java Servlet是一个Java API,用于扩展服务器的功能,处理HTTP请求,并返回HTTP响应。Servlet容器(如...

    javaWEB总结(7):HttpServlet和HttpServletRequest

    总的来说,`HttpServlet`和`HttpServletRequest`是构建动态Java Web应用程序的核心工具,掌握了这两个类的使用,就能有效地处理HTTP请求,实现与客户端的交互。通过不断实践和学习,你将在Java Web开发领域变得更加...

    servet 客户端与服务器端的聊天程序

    这样,即使一个线程正在处理特定的客户端请求,其他线程也可以同时服务于其他客户端,提高系统效率。 6. **局域网通信**:由于聊天程序设计为在局域网内部使用,所以它依赖于TCP/IP协议栈在本地网络中的工作。这...

    Android手机客户端与Web服务器的通信.pdf

    服务器端可以使用Http的Post方法接收数据,并使用Servlet子类HttpServlet对象来处理客户端的数据。服务器端可以使用Java数据流和过滤流的方法来处理客户端的数据,并将运算结果响应给手机客户端。 Android手机...

    Android Http (Json) 服务器端和客户端通信

    1. **Servlet定义**:`JSONServlet`类继承自`HttpServlet`,这意味着它能处理HTTP请求和响应。`doGet()`和`doPost()`方法分别用于处理GET和POST类型的HTTP请求。 2. **JSON数据构建**:通过`JSONArray`和`...

    Android app http服务器和客户端

    在Android客户端,我们可以使用`AsyncTask`或者Retrofit这样的库来异步处理网络请求,避免阻塞主线程。当请求完成后,将服务器返回的JSON数据解析成Java对象,如`News`类,然后在UI上显示。 关于标签中的" s' f' g'...

    servlet配置与使用

    3. 客户端请求到达 Server:当客户端的请求到达 Server 时,Server 会创建一个请求对象和响应对象,并将其传递给 Servlet 的 service() 方法。 4. Servlet 处理请求:Servlet 的 service() 方法会处理客户端的请求,...

    dxServlet.java处理Http Post的表单请求xml

    在 `dxServlet.java` 文件中,通过继承 `HttpServlet` 类来创建一个自定义的 Servlet,该类提供了默认的行为实现,包括初始化方法 `init()` 和处理 GET 和 POST 请求的方法。 ### HTTP POST 请求与 XML 数据处理 ...

    servlet.jar,httpservlet架包

    Servlet.jar和HTTPServlet.jar是Java EE规范中定义的两个重要库文件,它们包含了Servlet API和HTTPServlet API的实现,是服务器端处理HTTP请求和响应的关键工具。 Servlet是Java编程语言中的一种接口,由Java ...

    Java Web程序设计入门课件-HttpServlet.pptx

    HttpServlet的核心在于它的`service()`方法,这是一个抽象方法,当客户端向Servlet发送请求时,容器(如Tomcat)会调用这个方法。HttpServlet通过重写`service()`方法,根据HTTP请求类型(GET、POST等)调用相应的...

    httpservlet_request

    它主要用于Web应用程序,处理来自客户端(通常是Web浏览器)的请求,并生成响应。 2. **HttpServletRequest接口**:这是Servlet API的一部分,它提供了与HTTP请求相关的所有信息。例如,你可以通过...

    Android手机客户端与Web服务器的通信[参照].pdf

    3. 服务器端接收和响应客户端请求 - 使用HTTP POST接收:服务器端通过Servlet(如HttpServlet)接收POST请求,HttpServletRequest对象用于获取请求参数,HttpServletResponse用于封装响应。 - 处理请求:服务器...

Global site tag (gtag.js) - Google Analytics