一、servlet生命周期html
所谓生命周期,指的是servlet容器如何建立servlet实例、分配其资源、调用其方法、并销毁其实例的整个过程。java
阶段一: 实例化(就是建立servlet对象,调用构造器)程序员
在以下两种状况下会进行对象实例化。web
第一种状况:算法
当请求到达容器时,容器查找该servlet对象是否存在,若是不存在,才会建立实例。浏览器
第二种状况:缓存
容器在启动时,或者新部署了某个应用时,会检查web.xml当中,servlet是否有 load-on-starup配置。若是有,则会建立该servlet实例。安全
load-on-starup参数值越小,优先级越高(最小值为0,优先级最高)。服务器
阶段二: 初始化jsp
为servlet分配资源,调用init(ServletConfig config);方法
config对象能够用来访问servlet的初始化参数。
初始化参数是使用init-param配置的参数。
init能够override。
阶段三: 就绪/调用
有请求到达容器,容器调用servlet对象的service()方法。
HttpServlet的service()方法,会依据请求方式来调用doGet()或者doPost()方法。可是,这两个do方法默认状况下,会抛出异常,须要子类去override。
阶段四: 销毁
容器依据自身的算法,将再也不须要的servlet对象删除掉。
在删除以前,会调用servlet对象的destroy()方法。
destroy()方法用于释放资源。
在servlet的整个生命周期当中,init,destroy只会执行一次,而service方法会执行屡次。
二、Jsp与servlet的区别
1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM可以识别的java类)
2.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.
3.Servlet中没有内置对象,Jsp中的内置对象都是必须经过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象获得.
Jsp是Servlet的一种简化,使用Jsp只须要完成程序员须要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。
三、HTTP中get和post的区别
一、Get 方法经过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串链接,置于 action 属性所指程序的 url 后,如[url]http://www.mdm.com/test.asp?name=asd&password=sad[/url],数据都会 直接显示在 url 上,就像用户点击一个连接同样;Post 方法经过 HTTP post 机制,将表单内各字段名称与其内容放置在 HTML 表头(header)内一块儿传送给服务器端交由 action 属性能所指的程序处理,该程序会经过标准输入(stdin)方式,将表单的数据读出并加以处理,post方式有一块用于存放参数的区域。
二、 Get 方式须要使用 Request.QueryString 来取得变量的值;而 Post 方式经过 Request.Form 来访问提交的内容
三、Get 方式传输的数据量很是小,只能传文本。通常限制在 2 KB 左右,可是执行效率却比 Post 方法好;而 Post 方式传递的数据量相对较大,能够传送大的文本和二进制数据,如文件,它是等待服务器来读取数据,不过也有字节限制,这是为了不对服务器用大量数据进行恶意攻击,根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节
建议:除非你确定你提交的数据能够一次性提交,不然请尽可能用 Post 方法
四、Get 方式提交数据,会带来安全问题,好比一个登录页面,经过 Get 方式提交数据时,用户名和密码将出如今 URL 上,若是页面能够被缓存或者其余人能够访问客户这台机器,就能够从历史记录得到该用户的账号和密码,因此表单提交建议使用 Post 方法;Post 方法提交的表单页面常见的问题是,该页面若是刷新的时候,会弹出一个对话框
建议:出于安全性考虑,建议最好使用 Post 提交数据
四、html 和 jsp 的区别
HTML(Hypertext Markup Language)文本标记语言,它是静态页面,和JavaScript同样解释性语言,为何说是解释性 语言呢?由于,只要你有一个浏览器那么它就能够正常显示出来,而不须要指定的编译工具,只需在TXT文档中写上HTML标记就OK。
JSP(Java Server Page)看这个意思就知道是Java服务端的页面,因此它是动态的,它是须要通过JDK编译后把内容发给客户端去显 示,咱们都知道,Java文件编译后会产生一个class文件,最终执行的就是这个class文件,JSP也同样,它也要编译成class文件!JSP不 止要编译,它还得要转译,首先把JSP转译成一个Servlet文件,而后在编译成class文件。当用户访问JSP时就执行了class文件,最 终......
1.最简单的区别就是,HTML能直接打开,jsp只能发布到Tomact等服务器上才能打开 。
2.定义上HTML页面是静态页面能够直接运行,JSP页面是动态页它运行时须要转换成servlet。
3.他们的表头不一样,这个是JSP的头“ <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>”在表头中有编码格式和倒入包等。
4.也是很好区分的在jsp中用<%%>就能够写Java代码了,而html没有<%%>。
感谢您的阅读,若是有其余知识或者错误的地方,但愿共享一下,相互学习!