zoukankan      html  css  js  c++  java
  • Request


    1.获取请求的基本信息
    1>获取请求的url和uri
    2>获取url后面的请求参数部分的字符串
    3>获取请求方式
    4>获取主机名,IP地址
    5>获取 Contexpath

    String url = request.getRequestURL().toString();
    System.out.println(url);
    String uri = request.getRequestURI().toString();
    System.out.println(uri);
    String params = request.getQueryString();
    System.out.println(params);
    String method = request.getMethod();
    System.out.println(method);
    String addr = request.getRemoteHost() + request.getRemotePort() + request.getRemoteAddr() +
        "==user=" + request.getRemoteUser();
    System.out.println("addr: " + addr);
    String contextPath = request.getContextPath();
    response.sendRedirect(contextPath + "/index.jsp");


    获取请求参数
    Map<String, String[]> params = request.getParameterMap();
    for (String name : params.keySet()) {
       String value = request.getParameter(name);
       System.out.println("name=" + name + ", value=" + value);
    }

    解决请求乱码问题:
    request.setCharacterEncoding("Utf-8");
    如果上面的代码只能解决POST的乱码问题, 则可以自行进行解码操作
    String userName = request.getParameter("username");
    userName =  new String(userName.getBytes("ISO8859-1"), "UTF-8");

    请求转发:
    request.getRequestDispatcher("/DispatcherTest2").forward(request, response);

    this.getServletContext().getRequestDispatcher("/DispatcherTest2").forward(request, response);

    Note:
        1)一次请求只能转发一次, 否则会发生下面的异常: -- 可以得到第一次转发获取的数据
    java.lang.IllegalStateException: Cannot forward after response has been committed
        2)当有数据已经写到客户端时再请求转发也会抛出异常.
        3)若转发前有数据写入到response缓冲区,则请求转发会清空response缓冲区的实体内容, 但不会清空请求头信息.

    请求重定向:
    response.sendRedirect(request.getContextPath() + "/Servlet02");

    Notice:
    1) 不能在数据已经发送到浏览器之后再进行请求重定向:
    java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed

    2) 在请求重定向之前写入到response缓冲区的数据会被清空
    3) 一次请求只能重定向一次

  • 相关阅读:
    C#密封类和密封方法
    C#类和结构以及堆和栈大烩菜(本来就迷,那就让暴风来的更猛烈吧!)
    C#类、对象、方法、属性详解(摘)感谢博客园,感谢提供者。
    软件工程第十五周总结
    软件工程课堂十一(计算最长英语单词链)
    软件工程第十四周总结
    梦断代码阅读笔记03
    软件工程课堂十(找水王)
    软件工程课堂九(用户体验评价)
    软件工程第十三周总结
  • 原文地址:https://www.cnblogs.com/-lwl/p/11149287.html
Copyright © 2011-2022 走看看