转载自Servlet面试题归纳

1、说一说Servlet生命周期

Servlet生命周期包括三部分:

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

处理请求:当请求到达时,运行其service()方法。service()自动派遣运行与请求相对应的doXXX(doGet或者doPost)方法。

销毁:服务结束,web容器会调用servlet的distroy()方法销毁servlet。

2、get提交和post提交有何区别

(1)get一般用于从服务器上获取数据,post一般用于向服务器传送数据

(2)请求的时候参数的位置有区别,get的参数是拼接在url后面,用户在浏览器地址栏可以看到。post是放在http包的包体中。

比如说用户注册,你不能把用户提交的注册信息用get的方式吧,那不是说把用户的注册信息都显示在Url上了吗,是不安全的。

(3)能提交的数据有区别,get方式能提交的数据只能是文本,且大小不超过1024个字节,而post不仅可以提交文本还有二进制文件。

所以说想上传文件的话,那我们就需要使用post请求方式

(4)servlet在处理请求的时候分别对应使用doGet和doPost方式进行处理请求

3、JSP与Servlet有什么区别

Servlet是服务器端的程序,动态生成html页面发送到客户端,但是这样程序里会有很多out.println(),java与html语言混在一起

很乱,所以后来sun公司推出了JSP.其实JSP就是Servlet,每次运行的时候JSP都首先被编译成servlet文件,然后再被编译成

.class文件运行。有了jsp,在MVC项目中servlet不再负责动态生成页面,转而去负责控制程序逻辑的作用,控制jsp与javabean

之间的流转。

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

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

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

5、request.getAttribute()和request.getParameter

(1)有setAttribute,没有setParameter方法

(2)getParameter获取到的值只能是字符串,不可以是对象,而getAttribute获取到的值是Object类型的。

(3)通过form表单或者url来向另一个页面或者servlet传递参数的时候需要用getParameter获取值;getAttribute只能获取setAttribute的值

(4)setAttribute是应用服务器把这个对象放到该页面所对应的一块内存当中,当你的页面服务器重定向到另一个页面的时候,应用服务器

会把这块内存拷贝到另一个页面对应的内存当中。通过getAttribute可以取得你存下的值,当然这种方法可以用来传对象。

用session也是一样的道理,这是说request和session的生命周期不一样而已。

6、JSP有哪些内置对象,作用是什么?

JSP内置对象
名称 作用
request 包含用户端请求的信息
response 包含服务器传回客户端的响应信息
session 与请求有关的会话期
pageContext 管理网页属性
application 服务器启动时创建,服务器关闭时停止,为多个应用程序保存信息
out 向客户端输出数据
config servlet的架构部件
page 指网页本身
exception 针对错误页面才可使用

7、四种会话跟踪技术作用域

(1)page:一个页面

(2)request::一次请求

(3)session:一次会话

(4)application:服务器从启动到停止。

7、JSP中动态INCLUDE和静态INCLUDE有什么区别

include指令用于把另一个页面包含到当前页面中,在什么时候包含的?再转换成servlet的时候包含进去的。

动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,

并且可以带参数.

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

8、forward和redirect的区别

转发与重定向

(1)从地址栏显示来说

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送

的内容从哪里来的,所以它的地址栏还是原来的地址.redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是

新的URL.

(2)从数据共享来说

forward:转发页面和转发到的页面可以共享request里面的数据.

redirect:不能共享数据.

(3)从运用地方来说

forward:一般用于用户登陆的时候,根据角色转发到相应的模块.

redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.

(4)从效率来说

forward:高.

redirect:低.

Servlet面试题归纳相关推荐

  1. Tomcat+Servlet面试题都在这里(修订版)

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 下面是我整理下来的Servlet知识点:  图上的 ...

  2. 【每日一看】数据分析面试题归纳整理总结

    [每日一看]数据分析面试题归纳整理总结 刷题方向 统计理论知识 业务思维逻辑 机器学习.数据挖掘.工具类 算法编程.SQL 其他 刷题方向 目前看到的面经总结为分五大块: 统计理论知识 业务思维逻辑 ...

  3. JSP和Servlet面试题精选

    1,JSP的内置对象有哪些? 答:JSP共有9个内置对象分别是: request:用户端请求,此请求会包含来自GET/POST请求的参数 response:网页传回用户端的回应 pageContext ...

  4. 一家美资企业的java servlet面试题

    filter 的作用是什么?主要实现什么方法?dofilter方法里面的2个参数request 和 response  他问 这两个接口的全称是什么? 1.filter使用户可以改变一个request ...

  5. jsp因为端口无效不能启动_Java:JSP和Servlet面试题总结

    1.Get和Post的区别 在页面提交数据时,get的数据大小有限制4k,post没有限制,get请求提交的数据会在地址栏显示,post不显示,所以post比get安全. 2. servlet的执行流 ...

  6. java servlet面试题_Java面试题总结系列 Servlet

    Servlet技术主要是为了使用Web上的HTTP协议而设计的.servlet是在WEB服务器上运行的程序.Java Servlet可以用于处理客户请求或生成动态Web网页.先一个实例.然后解释. 先 ...

  7. python 试题归纳及答疑 更新中.....

    一.Python基础篇(80题) 1.你为什么学习Python? 一.答题思路 1.阐述 python 优缺点 2.Python应用领域说明 3.根据自身工作情况阐述为什么会使用python 1)py ...

  8. Java核心技术及面试指南 异常部分的面试题归纳以及答案

    4.2.4.1 throw和throws有什么差别?异常(Exception)和错误(Error)有什么差别? throw语句表示抛出异常,由方法体内的语句处理.throws语句用在方法声明后面,表示 ...

  9. 2021前端JavaScript、ES6面试题归纳

    JS.ES6篇 es6的新特性 const let 模板字符串 箭头函数 函数的参数默认值 对象和数组解构 for...of 和 for...in(for in更适合遍历对象,for of更适合遍历数 ...

  10. (22)计算机硬件能直接执行的只有,计算机应用基础试题归纳

    一.选择题 1.计算机硬件能直接执行的只有( ) A)符号语言 B)机器语言 C)算法语言 D)汇编语言 2.下列关于世界上第一台电子计算机ENIAC的叙述中,不正确的是( ). A)ENIAC是19 ...

最新文章

  1. python怎么写csv文件_python怎么写csv文件
  2. matlab编程风格
  3. JS 匿名函数 自执行
  4. 安信三级分销商城系统源码 带有安装介绍
  5. 安卓蓝牙USB连接热敏打印机二
  6. 开元酒店在中国的签约及在营酒店规模正式超过600家
  7. 中国计算机省份排名,2019中国省份经济排行_中国各省份经济排名
  8. 小程序授权登录注册自有账户体系
  9. POI加密Excel文件导出
  10. asp.netcore 关于静态文件的访问权限控制(UseStaticFiles)
  11. Win10安装Neo4j
  12. iPhone6对flex的兼容
  13. sequoia 的详细安装步骤
  14. 用openAI写个js的排序算法(快速排序算法)
  15. 何洋开讲丨“云”将如何在中国制造2025中起到颠覆作用?
  16. Android开发之自定义View(一)
  17. 语音识别领域公司分析
  18. There are multiple modules with names that only differ in casing.This can lead to unexpected behavi
  19. c语言教工工资管理系统课程设计
  20. ethereum 黄皮书 难度值计算

热门文章

  1. firefox改html内容,可以firefox扩展修改HTML文档的DOM然后保存为HTML吗?
  2. 检测VC++Redistributable运行库 vcredist_x86.exe
  3. apue.3e环境配置
  4. js复制操作,复制成功弹出提示框
  5. vb阶乘计算机代码,速求100的阶乘的代码
  6. 【元胞自动机】基于元胞自动机实现双车道靠右行驶交通流模型matlab代码
  7. 全国计算机一级word题库,2016全国计算机一级《MS Office》选择题题库
  8. sitemesh学习
  9. ansi编码转换器安卓版_ANSI Converter-ANSI码转换器
  10. dev cpp编译c语言,C语言实践|Dev cpp开发环境及其介绍