• 【Head First Servlets and JSP】笔记4:HttpServletRequest req


    api:https://tomcat.apache.org/tomcat-5.5-doc/servletapi/

    1、GET和POST除去数据大小之外的区别。

    • 安全性问题。使用GET的话,参数数据会出现在浏览器的输入栏之中。
    • 书签问题。GET请求可以建立书签,而POST不能。典型的例子为http://docs.oracle.com/javase/8/docs/api/,对于用户访问的每一个子页面,都没有书签(URL相同)。
    • GET不会对服务器产生任何改变,只是“访问”,而POST类似于UPDATE操作。
    • 非幂等(non-idempotent)请求。GET、PUT、HEAD是幂等的,执行很多次,不会有不好的副作用,POST是非幂等的,POST提交的数据可能造成不可逆转的后果。虽然GET在HTTP中是幂等的,但是可以人为的在servlet中实现一个非幂等的doGet方法。

    2、确定浏览器发送的是GET还是POST。

    • 简单的超链接意味着GET。
    • 明确地写出method="post",那这就是一个POST,没有写出的话,默认为HTTP GET

    3、如果想让一个servlet同时支持GET和POST,如果POST不提交任何东西,可以把doPost()实现委托给doGet()。

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req, resp);
    }        

    【HttpServletRequest req】

    4、从客户端发送一个参数并在服务端获取:

    html表单 --> HTTPPOST: color=dark --> servlet: req.getParameter("color");

    从客户端发送两个个参数并在服务端获取:

    双选html表单 --> HTTPPOST: color=dark&body=heavy --> servlet: req.getParameter("color");servlet: req.getParameter("body");

    5、除此之外还能从Request获取什么?

    6、

    getRemotePort()是相对于服务端而言的,所以获取的是客户端的端口。

    getServerPort()获取的是接收请求的那个端口,getLocalPort则是指“请求最后发到的那个端口”(服务器会为每一个线程分配端口,这样才能应对多个用户)

  • 相关阅读:
    CentOS7.2安装mysql
    中国古代研究
    2018计算机考研各科试卷分值分布
    《期刊杂志总结》
    《认识雅思》
    《认识托福》
    Java框架
    英语学习方法
    单词2
    Phaser游戏框架与HTML Dom元素之间的通信交互
  • 原文地址:https://www.cnblogs.com/xkxf/p/6854135.html
Copyright © 2020-2023  润新知