• 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中根据不同的线程对该成员变量进行更改,那么在并发的时候就会引起错误。最好是在方法中,定义局部变量,而不是类变量或者对象的成员变量。由于方法中的局部变量是在栈中,彼此各自都拥有独立的运行空间而不会互相干扰,因此才做到线程安全。
  • 相关阅读:
    软件工程,实践作业1_团队博客
    软件工程,实践作业1
    c# excel 读写 64位操作系统 64位excel
    pyfits fits图像区域选择
    python numpy中sum()时出现负值
    python 中模块的版本号
    numpy rand函数的应用
    python 字符串是否包含某个子字符串
    python 字符串格式化
    python 让异常名称显示出来
  • 原文地址:https://www.cnblogs.com/zedosu/p/6514746.html
Copyright © 2020-2023  润新知