• 3. 请求与响应


    • 取得请求参数与标头
    • 处理中文字符请求与响应
    • 设置与取得请求范围属性
    • 正确使用转发、包含、重定向

    Web容器做了什么

    Web容器做了几件事:创建 Servlet 实例,并完成 Servlet 名称注册以及 URL 模式的对应。在请求到来的时候转发正确的 Servlet 来处理请求。

    当浏览器请求 HTTP 服务器时,而 HTTP 服务器转交请求给容器时,容器会创建一个代表当次请求的 HttpServletRequest 对象,并将请求相关信息设置给该对象。同时,容器会创建一个 HttpServletResponse 对象,作为稍后要对客户端进行响应的 Java 对象。

    接着,容器会根据读取的 @WebSerlvet 标注或 web.xml 的设置,找出处理该请求的 Servlet,,调用它的 service() 方法,将创建的 HttpServletRequest 对象、HttpServletResponse 对象作为参数传入。service() 会根据 HTTP 请求的烦事,调用相应的 doXXX() 方法。在 doXXX() 方法中,可以使用 HttpServletRequest 对象、HttpServletResponse 对象。

    之后,容器将 HttpServletRequest 对象、HttpServletResponse 对象销毁回收,该次请求响应结束。

    因为 HTTP 是基于请求/响应、无状态的协议,每一次的请求/响应之后,服务器端就不会记得任何客户端的信息了。所以容器每次请求都会创建新的 HttpServletRequest 对象、HttpServletResponse 对象,响应后将销毁该次的 HttpServletRequest 对象、HttpServletResponse 对象。下次请求时创建的请求/响应对象就和上次无关了。所以,对HttpServletRequest 对象、HttpServletResponse 对象的设置,时不能延续至下一次请求的。

    请求参数的编码处理

    要分 post 和 get 两种情况来处理

    POST 请求参数编码处理

    Content-Type

    在 getParameter() 之前调用 setCharacterEncoding()

    GET 请求参数编码处理

    setCharacterEncoding() 对 GET 请求方法不起作用

    通过 String 的 getBytes() 指定编码来取得字符粗的字节数组,然后再重新构造为正确编码的字符串

    获取 Body 内容

    • getReader()、getInputStream()
    • getPart()、getParts() 取得上传文件
  • 相关阅读:
    创建web应用程序时出现 SharePoint HRESULT:0x80070094 问题
    用Javascript获取SharePoint当前登录用户的用户名及Group信息
    javascript连接数据库
    sharepoint 中banner 图片的放大
    GridView导出Excel 类库
    SQL Server 性能调优
    GridView长字段的显示
    MOSS母版页制作学习笔记(二)
    sharepoint 中批量导入导出
    JavaScript 动态更改sharepoint 列表的颜色
  • 原文地址:https://www.cnblogs.com/okadanana/p/5940628.html
Copyright © 2020-2023  润新知