面试之jsp、Servlet相关知识——生命周期, 区别等

1、servlet生命周期

 

 

所谓生命周期,指的是servlet容器如何创建servlet实例、分配其资源、调用其方法、并销毁其实例的整个过程。

 

 

阶段一:  实例化 (就是创建servlet对象,调用构造器)

 

 

在如下两种情况下会进行对象实例化。

 

 

第一种情况:

 

 

当请求到达容器时,容器查找该servlet对象是否存在,如果不存在,才会创建实例。

 

 

第二种情况:

 

 

容器在启动时,或者新部署了某个应用时,会检查web.xml当中,servlet是否有 load-on-starup配置。如果有,则会创建该servlet实例。

load-on-starup参数值越小,优先级越高(最小值为0,优先级最高)。

 

 

阶段二:  初始化

 

 

为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方***执行多次。

 

 

 

2、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方法用于生成对客户端的响应。

 

 

 

3、HTTP中get和post的区别

 

 

1、 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方式有一块用于存放参数的区域。

2、 Get 方式需要使用 Request.QueryString 来取得变量的值;而 Post 方式通过 Request.Form 来访问提交的内容

3、 Get 方式传输的数据量非常小 ,只能传文本。一般限制在 2 KB 左右,但是执行效率却比 Post 方法好;而  Post 方式传递的数据量相对较大 ,可以传送大的文本和二进制数据,如文件,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进行恶意攻击,根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节

建议:除非你肯定你提交的数据可以一次性提交,否则请尽量用 Post 方法

4、 Get 方式提交数据,会带来安全问题 ,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;Post 方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框

 

建议:出于安全性考虑,建议最好使用 Post 提交数据

 

4、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没有<%%>。

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
正在热议
# 牛客帮帮团来啦!有问必答 #
1150049次浏览 17146人参与
# 通信和硬件还有转码的必要吗 #
11160次浏览 101人参与
# OPPO开奖 #
19145次浏览 267人参与
# 和牛牛一起刷题打卡 #
18735次浏览 1634人参与
# 实习与准备秋招该如何平衡 #
203250次浏览 3625人参与
# 大厂无回复,继续等待还是奔赴小厂 #
4919次浏览 30人参与
# 不去互联网可以去金融科技 #
20184次浏览 255人参与
# 通信硬件薪资爆料 #
265786次浏览 2484人参与
# 国企是理工四大天坑的最好选择吗 #
2196次浏览 34人参与
# 互联网公司评价 #
97606次浏览 1279人参与
# 简历无回复,你会继续海投还是优化再投? #
25021次浏览 354人参与
# 0offer是寒冬太冷还是我太菜 #
454707次浏览 5123人参与
# 国企和大厂硬件兄弟怎么选? #
53874次浏览 1012人参与
# 参加过提前批的机械人,你们还参加秋招么 #
14628次浏览 349人参与
# 硬件人的简历怎么写 #
82279次浏览 852人参与
# 面试被问第一学历差时该怎么回答 #
19375次浏览 213人参与
# 你见过最离谱的招聘要求是什么? #
27911次浏览 247人参与
# 学历对求职的影响 #
161173次浏览 1804人参与
# 你收到了团子的OC了吗 #
538563次浏览 6386人参与
# 你已经投递多少份简历了 #
344035次浏览 4963人参与
# 实习生应该准时下班吗 #
96929次浏览 722人参与
# 听劝,我这个简历该怎么改? #
63507次浏览 622人参与
牛客网
牛客企业服务