zoukankan      html  css  js  c++  java
  • JSP内置对象——request 及其响应get和post请求的实例

    request对象
    客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。常用方法如下:
    String getParameter(String name) 返回name制定参数的参数值
    String[] getParameterValues(String name) 返回草含参数name的所有值的数组
    void setAttribute(String,Object) 存储此请求中的属性。
    object getAttribute(Stirng name) 返回iu指定属性的属性值
    String getContentType() 得到请求体的MIME类型
    String getProtocol() 返回请求用的协议类型及版本号
    String getServerName() 返回接受请求的服务器主机名

    request对象响应post请求
    首先我们在reg.jsp中写一个表单用于提交包含用户名和爱好的表单:

    <form name="regForm" action="request.jsp" method="post">
    <table>
      <tr>
        <td>用户名:</td>
        <td><input type="text" name="username"></td>
      </tr>
      <tr>
        <td>爱好:</td>
        <td>
          <input type="checkbox" name="favorite" value="read">读书
          <input type="checkbox" name="favorite" value="music">音乐
          <input type="checkbox" name="favorite" value="movie">电影
          <input type="checkbox" name="favorite" value="internet">上网
        </td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" value="提交"></td>
      </tr>
    </table>
    </form>

    表单的目标页面是"request.jsp",我们可以新建一个request.jsp用于显示表单提交的信息。
    为了避免中文乱码,我们统一使用utf-8格式编码,所以(特别是在输入——比如用户名——为中文的时候)我们需要为request设置一下编码,如下:

    <%
        request.setCharacterEncoding("utf-8");
    %>

    然后我们可以通过如下代码显示表单提交的信息:

    用户名:<%=request.getParameter("username") %><br>
    爱好:
    <%
        String[] favorites = request.getParameterValues("favorite");
        for (String favorite : favorites) 
            out.println(favorite + "&nbsp;&nbsp;");
    %><br>

    效果如下:

        

    request对象同样可以响应get请求。
    为了模拟这个过程,我们需要在reg.jsp页面中添加一段超链接的代码模拟以模拟一个get请求:

    <a href="request.jsp?username=月光诗人&favorite=read&favorite=movie">get请求</a>

    效果如下:

       


    可能存在一些情况是get请求传参的时候出现了中文乱码(我这里没有出现),解决办法是:

    打开tomcat目录下conf目录下的server.xml文件,找到如下内容:

        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />

    在Connector标签中加上属性URIEncoding="utf-8",如下:

        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" URIEncoding="utf-8"/>

    既可解决get请求中的中文乱码问题。

  • 相关阅读:
    显示隐藏,页面搜索,操作DOM
    Jquery点击事件隐藏显示菜单
    《转》学习JQuery该掌握的内容
    跨域调用(mvc、webapi)
    cocos creator基础-(三十二)cc.Graphics组件和cc.Camera组件
    cocos creator基础-(三十一)超大数值计算
    cocos creator实战-(三)简单例子摇杆控制角色移动
    cocos creator基础-(三十)微信小游戏第三方资源部署
    cocos creator实战-(二)跳一跳
    cocos creator实战-(一)台球小游戏
  • 原文地址:https://www.cnblogs.com/moonlightpoet/p/5599605.html
Copyright © 2011-2022 走看看