servlet复习

复习1:

一.get
    1.如何编写一个servlet?
    ①创建一个类去继承HttpServlet,重写doGet|doPost方法。
    ②配置访问路径(路径是唯一的)
      1)注解
      2)xml配置
    2.响应数据:HttpServletResponse
    ①首先设置编码: HttpServletResponse.setContentType("text/html;charset=utf-8");| 
  HttpServletResponse.setCharacterEncoding("utf-8")
        ②HttpServletResponse去获取输出流:PrintWriter pw =  HttpServletResponse.getWriter(); pw.print("xxx");

    3.接受请求参数HttpServletRequest
        ①HttpServletRequest去调用getParameter("表单的name属性值或者url在后面追加的值")
        ②解决中文乱码 String value = new String(值.getBytes("ISO-8859-1"),"UTF-8");

    4.超链接是get请求
    二.post(如果直接在url输入访问路径,默认是get请求,如果没有get方法报错)
    1.post解决中文乱码请求参数的中文乱码
        HttpServletResponse.setCharacterEncoding("utf-8");

    三。get与post的区别:
        GET请求的特点:

    从使用经验上有如下总结:

            1.GET是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。 
            2.GET传送的数据量较小,不能大于2KB。 
                3.GET安全性非常低 (路由器会记录请求地址)
            如下情况中浏览器会发送GET类型的请求:
                1.在地址栏输入一个地址 
                2.点击页面中的链接    
                3.表单的默认提交方式 
        POST请求的特点:
            从使用经验上有如下总结:
                1.POST是将表单内各个字段与其内容放置在实体内容中内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。 
                2.POST传送的数据量较大,一般被默认为不受限制 
                3.POST安全性较高,将表单的Method属性设置为POST时,浏览器会发送POST请求
        GET和POST还有一个重大区别,
            简单的说:
                GET产生一个TCP数据包;POST产生两个TCP数据包。
            长的说:
                对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
                而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
                也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,
先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。
                因为POST需要两步,时间上消耗的要多一点,看起来GET比POST更有效。因此Yahoo团队有推荐用GET替换.
                POST来优化网站性能。但这是一个坑!跳入需谨慎。为什么?
            1. GET与POST都有自己的语义,不能随便混用。
            2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。
而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。
                3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

复习2:

    一.servlet生命周期
        ①实例化 x,x>=0 init方法会启动服务器的时候执行,x<0访问的时候init()才会执行
        ②初始化 init():只会执行一次
        ③就绪service():访问的时候执行
        ④销毁destory():关闭服务器的时候执行
    二.servlet四大域
        ①application:整合web
        ②session :浏览器打开到浏览器关闭
        ③request :一次请求一次响应,与转发结合使用
        ④pageContext:整个jsp页面
    三.Jsp
        1.表达式
            ①<%= ... %>(方便输出)
            ②<% ... %>(完成较长的逻辑运算)
            ③<%! ... %>(添加属性或者方法)
        2.三大指令
            ①page : 导包
            ②include : 引入页面
            ③taglib :引入第三方jar
    四。重定向与转发
        重定向:浏览器的两次请求,url会发生变化
        转  发: url不发生变化,是服务器的两次请求

你可能感兴趣的:(servlet复习)