Web第四节课

1. 两种请求方式

  • get方式

    • 哪一些情况下,会发送get请求

      • 直接输入某个地址
      • 点击链接
      • 表单默认提交方式
    • get请求的特点

      • 会将请求参数添加到请求资源路径的后面,只能提交少量的数据(因为请求行最多只能存放大约2k左右的数据)
      • 会将请求参数显示在浏览器地址栏,不安全,比如,路由器会记录请求地址。
  • post方式

    • 哪一些情况下,会发送post请求
      • 设置表单的method=”post”
    • post请求的特点

      • 会将请求参数添加到实体内容里面,可以提交大量的数据。
      • 不会将请求参数显示在浏览器地址栏,相对安全(要注意,不管是什么请求,都不会对请求数据加密,一般使用https协议)
    • service()两种都能处理

    • doGet()只能处理get
    • doPost()只能处理post

2. servlet如何输出中文?

  • 为什么会有乱码
    • out.println输出中文时,默认会使用”iso-8859-1”去编码。
  • 如何解决
    • response.setContentType(“text/html;charset=utf-8”);
    • 或者
    • response.setCharacterEncoding(“utf-8”);

3. 表单包含了中文参数值,如何处理?

  • 为什么会有乱码?

    • 当表单提交时,浏览器会检查请求参数值,如果是中文,会按照打开该表单所在的页面时的字符集来编码(比如,按照”utf-8”来编码)。

    • 服务器默认情况下,会使用”iso-8859-1”来解码。如何解决?

      1. 保证浏览器使用指定的字符集来打开页面。(http–>< head>后添加语句:)
        < meta http-equiv=”content-type” content=”text/html;charset=utf-8”>
        或者< meta charset=”utf-8”/>

      2. 服务器端使用对应的字符集去解码。

        • 方式一:
          request.setCharacterEncoding(“utf-8”);

          注意:只针对post请求有效。

        • 方式二:
          new String(str.getBytes(“iso-8859-1”),”utf-8”);

          注:先还原得到浏览器发送过来的字节数组然后使用正确的字符集来解码.

        • 方式三:
          /conf/server.xml中直接改成UTF-8:
          < Connector port=”8080” protocol=”HTTP/1.1”
          connectionTimeout=”20000”
          redirectPort=”8443”
          URIEncoding=”UTF-8”/>

4. 如何获得请求参数值?

  • tring request.getParameter(String paramName);

    注意:
    1. paramName必须与实际传递的参数名一致,否则会获得null。
    2. 有可能获得空字符串。

  • String[] request.getParameterValues(String paramName);

    • 对于多选框和单选框,如果不选择任何选项,会获得null值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值