zoukankan      html  css  js  c++  java
  • 学习jsp(2)

    @Webservlet

    具体见:http://www.cnblogs.com/luxh/archive/2012/06/06/2537458.html。

    我折腾半天才发现,在web.xml里注册了,删除web.xml,就ok了。

    HttpServlet详解:

    http://www.cnblogs.com/panjun-Donet/archive/2010/02/22/1671290.html

    这里需要注意的是:,doDelete(),doGet(),doOptions(),doPost(), doPut()和doTrace(). 等方法的重载。

    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代码如下

    1.import java.io.*;  
    2.import javax.servlet.*;  
    3.import javax.servlet.http.*;  
    4.  
    5.public class DoGetTestServlet extends HttpServlet  
    6.{  
    7.   public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{  
    8.  request.setCharacterEncoding("gb2312");  
    9.  response.setContentType("text/html;charset=gb2312");  
    10.  PrintWtriter out=response.getWriter();  
    11.  out.println("获得了以下的参数值:name=<br>"+request.getParameter("name"));  
    12.  out.flush();  
    13.}  
    14.}  

    在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.*;  
    2. import javax.servlet.*;  
    3. import javax.servlet.http.*;  
    4.  
    5. public class DoPostTestServlet extends HttpServlet{  
    6.  public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{  
    7.    request.setCharacterEncoding("gb2312");  
    8.    response.setContentType("text/html;chatset=gb2312");  
    9.    PrintWiter out=response.getWriter();  
    10.    out.println("获得以下的参数值:des=<br>"+request.getParameter("des"));  
    11.    out.flush();  
    12.}  
    13.}  

    在处理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
    在一般情况下不需要覆盖这个方法。

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

  • 相关阅读:
    《Programming WPF》翻译 第6章 3.二进制资源
    《Programming WPF》翻译 第5章 前言
    谈谈粒子系统
    GameFramework的初步设计
    引擎层次化设计
    关于HeapCreate(1)
    新的引擎ZeusEngine
    最短路径算法介绍
    Max导出插件
    游戏中的光影效果
  • 原文地址:https://www.cnblogs.com/aomi/p/3166748.html
Copyright © 2011-2022 走看看