• servlet学习笔记


    Servlet中的GET和POST之间的区别

    get和post这是http协议的两种方法,另外还有head,  delete等   
    这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串。post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。   
    在servlet开发中,以doGet()和doPost()分别处理get和post方法。   
    另外还有一个doService(),  它是一个调度方法,当一个请求发生时,首先执行doService(),不管是get还是post。在HttpServlet这个基类中实现了一个角度,首先判断是请求时get还是post,如果是get就调用doGet(),  如果是post就调用doPost()。

     

    HttpServlet的两个Service()方法区别

    在HttpServlet类中有两个service()方法,如下:

     void service(ServletRequest req, ServletResponse res)
    protected  void service(HttpServletRequest req, HttpServletResponse resp)

       void  service(ServletRequest  req,ServletResponse response)方法由tomcat自动调用

      它将接收的客户端请求转交给protected void service(HttpServletRequest  req,HttpServletResponse res)方法

      此保护类型的service方法再把将请求分发给doPost()、doGet()方法进行下一步处理。

      所以我们完全可以重写受保护的service()方法来代替doPost()和doGet()方法。

    古旧的javaweb mvc

     javabean出现之前, 所有的事情都在jsp里面做

    javabean的出现带来了javaweb开发最早的模式 - model1

    分层概念在这里已经初步形成

     model2

    怪了, 不是先有servlet才有jsp的吗, 那么接下来咱来看下一遍博文, <servlet与jsp的关系>

    servlet在多线程下其本身并不是线程安全的。
    如果在类中定义成员变量,而在service中根据不同的线程对该成员变量进行更改,那么在并发的时候就会引起错误。最好是在方法中,定义局部变量,而不是类变量或者对象的成员变量。由于方法中的局部变量是在栈中,彼此各自都拥有独立的运行空间而不会互相干扰,因此才做到线程安全。
  • 相关阅读:
    6.让代码更具可读性
    5构造函数和析构函数
    4面向对象之类的继承
    3隐形的指针
    2面向对象之类的封装
    od快捷键
    1.纠结的c++
    101宏定义的其他用法
    100解剖宏定义函数
    99,printf scanf手动功能实现
  • 原文地址:https://www.cnblogs.com/zedosu/p/6514746.html
Copyright © 2020-2023  润新知