【Xmind】Servlet 面试相关

原文:https://blog.csdn.net/zks_4826/article/details/81010270 
 

1、servlet生命周期

初始化:web容器加载servlet,调用init()方法;

处理请求:允许service()方法,service()自动运行与请求对应的doXXX方法(doGet或doPost) 

销毁:服务结束后,web容器调用servlet的distory()方法销毁servlet

2、jsp与servlet 有什么区别。

jsp在本质上就是servlet,但是两者的创建方式不同,servlet都是java程序代码构成,用于流程控制和事务处理,而jsp由html和jsp标签构成,可以方便地编写动态网页。jsp和servlet主要有两方面不同:编译:jsp修改后就可立刻看到效果,不需要编译,而servlet需要编译。转换:jsp是动态网页开发技术是运行在服务端的脚本语言,而servlet是web服务器的编程技术,所以jsp运行时就是转换为servlet。

3、get和post有何区别

get参数传递通过url,post放在resquest body中;

get请求参数有长度限制,post没有

get不安全,因为参数暴露在url中。

get请求只能进行url编码。post支持多种编码

get请求参数会被完整保留在浏览历史记录,而post不会被保留。

get和post本质就是tcp链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

get产生一个tcp数据包;post产生两个tcp数据包。

4、doGet与doPost方法的两个参数是什么

HttpServletRequest:封装与请求相关的信息

HttpServletResponse:封装了与响应相关的信息 

5、jsp有哪些内置对象

request :包含用户端请求的信息

response:包含服务器传回客户端的响应信息

session:与请求有关的会话期

pageContext:管理网页属性

application:服务器启动创建,服务器关闭停止,为多个应用程序保存信息

out:向客户端传输数据

config:servlet的架构组件

page:指网页本身

exception:针对错误页面才可使用

6、四大作用域

page:(当前页面)一个页面,是代表与一个页面相关的对象和属性

request:(请求作用域,就是客户端的一次请求一次请求,代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关系)

session:(会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态一次会话,是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求

application:(全局作用范围服务器从启动到停止,是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域

7、jsp中动态include和静态include有什么区别

动态include用jsp:include动作实现<jsp:include page="include.jsp" flush="true"/> 他总是会检查所含文件中的变化,适合用于包含动态页面并且可以带参数。

静态include用include伪代码实现,定不会检查所含文件的变化,适用于包含静态界面<%@ include file="included.htm"%>

8、forward和redirect的区别

转发与重定向:

第一点:从地址栏来说forward是服务器请求资源,服务器直接访问目标地址的url,把目标url的响应内容读取过来,然后发给浏览器,浏览器并不知道服务器发送的内容从哪来的,所以地址栏还是原来的url。redirect是服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏会显示新的url 。

第二点:从数据共享来说,forward转发页面和转发到的页面共享request里面的数据,redirect不能共享数据。

第三点:从运行地方来说,forward一般用于登陆的时候,根据角色转发到相对于的模块。

redirect一般用于用户注销登陆时返回主页或者跳转到其他页面时。

第四点:从效率来说forward高,redirect低。 

9.Servlet工作原理:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值