zoukankan      html  css  js  c++  java
  • JavaWeb--Http

    1.使用GET方式传递参数 

      ①在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出的HTTP请求消息的请求方式为GET。
      ②如果网页中的<form>表单元素的method属性被设置为了“GET”,浏览器提交这个FORM表单时生成的HTTP请求消息的请求方式也为GET。
      ③使用GET请求方式给WEB服务器传递参数的格式: http://lampbrother/counter.jsp?name=lc&password=123
      ④使用GET方式传送的数据量一般限制在1KB以下。

    2.使用POST方式传递参数
      ①POST请求方式主要用于向WEB服务器端程序提交FORM表单中的数据。
      ②POST方式将各个表单字段元素及其数据作为HTTP消息的实体内容发送给WEB服务器,传送的数据量要比使用GET方式传送的数据量大得多。
     

     POST请求消息的格式: 
    POST /counter.jsp HTTP/1.1
    referer: http://localhost:8080/Register.html
    content-type: application/x-www-form-urlencoded
    host: localhost:8080
    content-length: 43
    
    name=zhangsan&password=123
    

      如何在Servlet中获取请求信息:

    ①Servlet的service()方法用于应答请求:因为每次请求都会调用service()方法

    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException

    ServletRequest 封装了请求信息,可以从中获取任何的请求信息
    ①获取请求参数

      1.String getParameter(java.lang.String name)  根据请求参数的名字,返回参数的值   若请求参数有多个值(如checkbox),返回第一个
      2.String[] getParameterValues(java.lang.String name)  根据请求参数的名字,返回请求参数对应的字符串数组
      3.Map<String,java.lang.String[]> getParameterMap()   返回请求参数的键值对,key:参数名 value:参数值,String类型
      4.Enumeration<String> getParameterNames()  返回请求参数对应的Enumeration对象,类似于ServletConfig(或ServletContext)中                                                                                                                  的getInitParameterNames()方法

    ②获取请求的URI

    ③获取请求方式

     HttpServletRequest是ServletRequest的子接口,使用时需要强转

    HttpServletRequest httpServletRequest = (HttpServletRequest)servletRequest;
    String uri = httpServletRequest.getRequestURI();
    System.out.println("URI: " + uri);      //URI: /loginServlet
    
    String method = httpServletRequest.getMethod();
    System.out.println("method: " + method);  //method: POST

      ④若是一个Get请求,获取请求参数对应的那个字符串,即问号后的那个字符串

    String queryString = httpServletRequest.getQueryString();
    System.out.println("queryString: " + queryString);//queryString: user=51&password=wsdwsx&interesting=shopping&interesting=eating&interesting=playing&Submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2%E5%86%85%E5%AE%B9
    

      ⑤获取请求的Servlet的映射路径

    String servletPath = httpServletRequest.getServletPath();
    System.out.println("servletPath: " + servletPath);//servletPath: /loginServlet
    

      ⑥

    ServletResponse 封装了响应信息,如果想给用户什么响应,具体可以使用该接口的方法实现
    这两个接口的实现类都是服务器给与实现的,并在服务器调用service方法时传入
    getWriter():返回PrintWriter对象,调用该对象的print()方法,将把print()中的参数打印到客户的浏览器上
    ②设置响应的内容类型:response.SetContentType("application/msword");
    servletResponse.setContentType("application/msword");//令输出为一个word文档,内容为下面的hello
    PrintWriter printWriter = servletResponse.getWriter();
    printWriter.println("hello");
    ③ void sendRedirect(String location):请求的重定向(此方法为HttpServletResonse中定义)




















  • 相关阅读:
    Python运算符,基本数据类型
    Python2 错误记录1File "<string>", line 1, in <module> NameError: name 'f' is not defined
    用户登录三次练习
    跟我一起学Python-day1(条件语句以及初识变量)
    vim operation
    步步为营-28-事件本质
    步步为营-27-事件
    步步为营-26-多播委托
    步步为营-25-委托(比大小)
    步步为营-24-委托
  • 原文地址:https://www.cnblogs.com/SkyeAngel/p/7978863.html
Copyright © 2011-2022 走看看