zoukankan      html  css  js  c++  java
  • 《Head First Servlets & JSP》-4-请求和响应

    Servlet生命周期

    生命周期三大重要时刻

    Servlet集成结构:

    方法 init() service() doGet()/goPost()
    何时调用 Servlet实例被创建之后、为客户请求提供服务之前 当第一个客户请求到来时 service()根据HTTP方法来选择调用
    作用 初始化 查看客户请求并调用相应的方法 这里是我们的功能代码
    是否覆盖 若有自己的初始化要求(如获得数据库连接、想其他对象注册),则需要覆盖;否则运行GenericServlet的init() 一般不覆盖 至少覆盖其一,因为HttpServlet的doGet()/doPost()什么也不做,且service()方法结束,线程就结束(或进入线程池)

    注意:

    • 初始化很重要,因为在调用构造函数和init()方法之间,Servlet处于一种薛定谔Servlet状态
    • 任何Servlet类都不会有多个实例(只有一种糟糕的情况除外,SingleThreadModel)
    • 对应每个客户请求,会生成一对新的请求和响应对象

    GET和POST的区别

    • GET
    • POST

    • 区别

    方法 GET POST
    消息体
    数据大小 限制 无限制
    安全控制
    可建立书签
    幂等性

    Servlet生命周期和API要点


    HTTP和HttpServletRequest要点


    响应

    • 一个最佳实践
      response.setContentType("text/html");
      如上,先调用setContentType()方法,然后再调用获得输出流的方法(getWriter()或getOutputStream()),这样能保证不会遭遇内容类型和输出流之间的冲突。

    • 输出内容的两个选择
      PrintWriter:

      OutputStream:

    请求重定向和请求分派

    方法|重定向|请求分派
    浏览器地址|改变|不改变
    具体工作的完成|客户端(浏览器)|服务器

    重定向中的URL

    • 相对路径
      相对当前请求的路径:
    • 绝对路径
      绝对路径到应用(即上下文根)

    HttpServletResponse要点


  • 相关阅读:
    SQL性能优化(Oracle)
    反射基础详解
    线程同步
    死锁产生的原因和解锁的方法
    java中的sleep()和wait()的区别
    线程Thread的基础知识学习
    cookies和session的优缺点
    js中的clientWidth offsetWidth scrollWidth等的含义
    手机端的META你知道多少?
    鼠标点击input框后里面的内容就消失
  • 原文地址:https://www.cnblogs.com/myitroad/p/6192519.html
Copyright © 2011-2022 走看看