zoukankan      html  css  js  c++  java
  • Servlet详解(四)--Request与Response

    一、HttpServletRequest:

     我们一般意义上的Servlet指的就是HttpServletRequest,而该类仅仅实现了ServletRequest接口,这些抽象接口除了可以通过方法名揣测意思外没什么用,所以就不去分析ServletRequest了。

    另外HttpServletRequest也是个接口,只是作为向上传递的一个父接口,还没找到具体的类,所以也看不到每个方法的实体,只能以执行结果看了。

    有些方法简单的一些登录没有结果,也不知道该如何是好。

    前端内容

    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
      <form action="/myweb001_war_exploded/FristServlet" method="get">
        用户名:<input type="text" name="username"/><br/>
        密码:<input type="password" name="password"/><br/>
        其他:<input type="text" name="other"><br/>
        <input type="submit" value="提交"/>
      </form>
      </body>
    </html>

    1.第一部分方法,按照官方文档顺序,容易观看

            System.out.println("(1)------------------------------------------------");
            System.out.println("这是AuthType="+request.getAuthType());
            System.out.println("-----------------------------------------------------");
            System.out.println("这是上下文地址="+request.getContextPath());
            System.out.println("-----------------------------------------------------");
            Cookie[] cookies=request.getCookies();
            for(Cookie cookie:cookies){
                System.out.println(cookie.getValue());
            }
            System.out.println("-----------------------------------------------------");

    结果如下:

    (1)------------------------------------------------        //不知道具体含义
    这是AuthType=null
    -----------------------------------------------------      
    这是上下文地址=/myweb001_war_exploded
    -----------------------------------------------------      //取出cookie的值,但是使十六进制的
    1A7577D81D1866C69FD9127967D158CD
    8ce90cf9-1028-42a0-ba4d-8e0a99fdc771
    -----------------------------------------------------

    2.第二部分方法。

    System.out.println("(2)Header--------------------------------------------");
            Enumeration<String> headerNames=request.getHeaderNames();
            if(headerNames.hasMoreElements()){
                 String headname=headerNames.nextElement();
                 System.out.println("headname= "+headname);
            }
            for(Cookie cookie:cookies){
                System.out.println(cookie.getValue());
            }
            System.out.println("-----------------------------------------------------");
            System.out.println("这是Method="+request.getMethod());
            System.out.println("-----------------------------------------------------");
    //        Collection<Part> parts=request.getParts();    Unable to process parts as no multi-part configuration has been provided
    //        for(Part part:parts){                        //执行失败
    //            System.out.println("部件名:"+part.getName());
    //        }
            System.out.println("-----------------------------------------------------");

    执行结果:

    (2)Header--------------------------------------------
    headname= host
    AD0B25E43ED2EE4F4E6E2ADE702DF5E3
    8ce90cf9-1028-42a0-ba4d-8e0a99fdc771
    -----------------------------------------------------
    这是Method=GET
    -----------------------------------------------------
    -----------------------------------------------------

    3.第三部分方法

            System.out.println("(3)--------------------------------------------------");
            System.out.println("这是pathinfo="+request.getPathInfo());
            System.out.println("-----------------------------------------------------");
            System.out.println("这是pathtranslated(翻译)="+request.getPathTranslated());
            System.out.println("-----------------------------------------------------");
            System.out.println("这是geturl携带的信息="+request.getQueryString());
            System.out.println("-----------------------------------------------------");

    执行结果:

    (3)--------------------------------------------------
    这是pathinfo=null
    -----------------------------------------------------
    这是pathtranslated(翻译)=null
    -----------------------------------------------------
    这是geturl携带的信息=username=myname&password=123&other=other
    -----------------------------------------------------

    4.第四五部分方法

            System.out.println("(4)--------------------------------------------------");
            System.out.println("这是RemoteUser="+request.getRemoteUser());
            System.out.println("-----------------------------------------------------");
            System.out.println("这是SessionId="+request.getRequestedSessionId());
            System.out.println("-----------------------------------------------------");
            System.out.println("这是URL="+request.getRequestURL());
            System.out.println("-----------------------------------------------------");
            System.out.println("这是URI="+request.getRequestURI());
            System.out.println("-----------------------------------------------------");
    
            System.out.println("(5)--------------------------------------------------");
            System.out.println("这是ServletPath="+request.getServletPath());
            System.out.println("-----------------------------------------------------");
            System.out.println("这是SessionId="+request.getSession());

    执行结果:

    (4)--------------------------------------------------
    这是RemoteUser=null
    -----------------------------------------------------
    这是SessionId=AD0B25E43ED2EE4F4E6E2ADE702DF5E3
    -----------------------------------------------------
    这是URL=http://localhost:8080/myweb001_war_exploded/FristServlet
    -----------------------------------------------------
    这是URI=/myweb001_war_exploded/FristServlet
    -----------------------------------------------------
    (5)--------------------------------------------------
    这是ServletPath=/FristServlet
    -----------------------------------------------------
    这是SessionId=org.apache.catalina.session.StandardSessionFacade@52a98f8b

    二、HttpServletResponse

    方法基本为对响应头部和响应行中的Status,Header,DataHeader,Error(400,404等),URL等查看,添加,修改,目前实际意义不大,就算了吧,测试太不方便了

  • 相关阅读:
    【算法】Kruskal算法(解决最小生成树问题) 含代码实现
    POJ 1182 食物链 (并查集解法)(详细注释)
    APICloud关闭Key Building Resolve
    ubuntu配置国内源
    缓存穿透、缓存击穿、缓存雪崩概念及解决方案
    POST请求和GET请求的区别
    ibatis 中#和 $ 符号的区别
    自动装箱和自动拆箱理解
    回文串算法说明(带注释)
    Object 对象有哪些方法?
  • 原文地址:https://www.cnblogs.com/qqwhsj/p/10849269.html
Copyright © 2011-2022 走看看