文章目录

  • 1、静态包含和动态包含的区别
  • 2、jsp有哪些内置对象?作用分别是什么?
  • 3、get和post的请求的区别
  • 4、JSP属性作用域
  • 5、JSP和Servlet的区别
  • 6、JSP运行原理
  • 7、5中常用的JSTL常用标签
  • 8、JSP运行过程
  • 9、会话开启/结束的标志
  • 10、servlet的生命周期
  • 11、转发和重定向的区别
  • 12、在访问Servlet时,在浏览器地址栏中输入的路径是在什么地方配置的?
  • 13、J2EE中,Servlet API为使用Cookie,提供了``javax.servlet.http.HttpCookie``类
  • 14、能够保留请求作用域中数据的转向方式是
  • 15、jsp中${}取值的顺序为
  • 16、Servlet的线程特性是
  • 17、描述Jsp页面的五类脚本元素的功能、写法、并示例
  • 18、描述Bean的四种scope
  • 19、XML主要作用

1、静态包含和动态包含的区别

语法:

静态包含:include指令是静态包含,静态包含的意思就是:把文件的代码内容都包含进来,再编译!<%@ include file=""%>
动态包含:include行为是动态包含。其实include行为就是封装了request.getRequestDispatcher(String url).include(request,response) <jsp: include page=""%>

区别:

  • <%@include file="xxx.jsp"%>为jsp中的编译指令,其文件的包含是发生在jsp向servlet转换的时期,而<jsp:include page="xxx.jsp">是jsp中的动作指令,其文件的包含是发生在编译时期,也就是将java文件编译为class文件的时期
  • 使用静态包含只会产生一个class文件,而使用动态包含会产生多个class文件
  • 使用静态包含,包含页面和被包含页面的request对象为同一对象,因为静态包含只是将被包含的页面的内容复制到包含的页面中去;而动态包含包含页面和被包含页面不是同一个页面,被包含的页面的request对象可以取到的参数范围要相对大些,不仅可以取到传递到包含页面的参数,同样也能取得在包含页面向下传递的参数

2、jsp有哪些内置对象?作用分别是什么?

共有九个内置对象:

  • request ==> 用户端请求,此请求会包含来自GET/POST请求的参数
  • response ==> 网页传回用户端的回应
  • page ==> JSP网页本身
  • pageContext ==> 管理网页的属性,代表编译后JSP内容
  • config ==> servlet的构架部件
  • session ==> 与请求有关的会话期
  • application ==> 正在执行的内容
  • out ==> 用来传送回应的输出
  • exception ==> 由其它JSP页面抛出的Throwable对象,该变量只在"JSP错误页面"中可用

在JSP中,尤其重要的是pageContext对象,它代表着jsp页面编译后的内容(也就是jsp页面的运行环境)

3、get和post的请求的区别

  1. get请求的数据会在地址栏中显示,而post请求提交的数据存放在HTTP请求的请求体中,所以post请求更加安全
  2. get请求上传的数据不能大于2kb,而post请求对于传输的数据理论上来说是没有限制的
  3. a标签用get请求

4、JSP属性作用域

4个JSP内置对象的作用域分别为:application、session、request、page

  • application 在所有应用程序中有效
  • session 在当前会话中有效
  • request 在当前请求中有效
  • page 在当前页面有效

5、JSP和Servlet的区别

  • JSP就是一个Servlet
  • Servlet的应用逻辑在Java文件中,并且完全从表示层的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件
  • JSP侧重于视图,Servlet主要用于控制逻辑

6、JSP运行原理

当第一次访问jsp页面时,会向一个servlet容器(tomcat等)发出请求,servlet容器先要把 jsp页面转化为servlet源代码(.java),再编译成.class 文件进行编译。当再次访问jsp页面时,跳过翻译和编译的过程 直接调用

7、5中常用的JSTL常用标签

  • <c:if>
  • <c:item>
  • <c:foreach>
  • <c:out>
  • <c:set>

8、JSP运行过程

  1. 客户端发出请求,请求进入Web容器,将JSP页面翻译成Servlet代码
  2. 编译Servlet代码,并将编译过的类文件装入Web容器(JVM)环境
  3. Web容器为JSP页面创建一个Servlet类实例,并执行jspInit方法
  4. Web容器为JSP页面调用Servlet实例的jspService方法,将结果发给用户

执行流程图

总结:JSP执行过程

  1. 首先,客户端发出请求(request),请求访问JSP网页
  2. 接着,JSP Container将要访问的.JSP文件 转译成Servlet的源代码(.java文件)
  3. 然后,将产生的Servlet的源代码(.java文件)经过编译,生成.class文件,并加载到内存执行
  4. 最后把结果响应(response )给客户端

执行JSP网页文件时,需要经过两个时期:转译时期(TranslationTime)和请求时期(RequestTime)。

  • 转译时期:JSP转译成Servlet类(.class文件)。

  • 请求时期:Servlet类(.class文件)执行后,响应结果至客户端。

转译期间主要做了两件事情:

  • 将JSP网页转译为Servlet源代码(.java),此段称为转译时期(Translation time);

  • 将Servlet源代码(.java)编译成Servlet类(.class),此阶段称为编译时期(Compilation time)。

9、会话开启/结束的标志

开启:开启浏览器进行访问
关闭:关闭浏览器结束访问
不同的浏览器访问时是不同的会话

10、servlet的生命周期

(1)加载和实例化

当Servlet容器启动或客户端发送一个请求时,Servlet容器会查找内存中是否存在该Servlet实例,若存在,则直接读取该实例响应请求;如果不存在,就创建一个Servlet实例。

(2) 初始化

实例化后,Servlet容器将调用Servlet的init()方法进行初始化(一些准备工作或资源预加载工作)。只执行一次

(3)服务

初始化后,Servlet处于能响应请求的就绪状态。当接收到客户端请求时,调用service()的方法处理客户端请求,HttpServlet的service()方法会根据不同的请求 转调不同的doXxx()方法。

(4)销毁

当Servlet容器关闭时,Servlet实例也随时销毁。其间,Servlet容器会调用Servlet 的destroy()方法去判断该Servlet是否应当被释放(或回收资源)。只执行一次

11、转发和重定向的区别

  1. 重定向访问服务器两次转发只访问服务器一次
  2. 重定向可以看见目标页面的url,转发只能看见第一次访问的页面url,以后的工作都是由服务器来做的
  3. 转发可携带数据,重定向可以访问自己web应用以外的资源

12、在访问Servlet时,在浏览器地址栏中输入的路径是在什么地方配置的?

<url-pattern/>中配置

13、J2EE中,Servlet API为使用Cookie,提供了javax.servlet.http.HttpCookie

14、能够保留请求作用域中数据的转向方式是

request.getRequestDispatcher().forward(request,response)

15、jsp中${}取值的顺序为

pageContext,request,session,application

16、Servlet的线程特性是

多线程单例

17、描述Jsp页面的五类脚本元素的功能、写法、并示例

  • 注释 <%-- --%>
  • 指令标记 <%@ %> 指令标记影响JSP页面的翻译阶段
  • 声明标记 <%! %> 声明标记允许JSP页面开发人员包含类级声明
  • 脚本标记 <% %> 脚本标记允许JSP页面开发人员在_jspService方法中包含任意的Java代码
  • 表达式标记 <%= %> 表达式标记封装Java运行时的表达式,其值被送至HTTP响应流

18、描述Bean的四种scope

  • Request
  • Session
  • Application
  • Page

19、XML主要作用

  • 数据交换
  • 信息配置

5、JSP面试题总结相关推荐

  1. JSP面试题都在这里

    下面是我整理下来的JSP知识点: 图上的知识点都可以在我其他的文章内找到相应内容. JSP常见面试题 jsp静态包含和动态包含的区别 jsp静态包含和动态包含的区别 在讲解request对象的时候,我 ...

  2. 练习:JSP相关试题

    文章目录 一.简答题 1.简述在JSP页面中能够包含哪些内容?各有什么作用? 2.Jsp有哪些内置对象,作用分别是什么? 3.简述什么是转发?以及如何实现转发? 4.简述转发和重定向有什么区别? 二. ...

  3. Java -- JSP面试题及答案(需更深入了解)

    JSP方面 1.forward 和redirect的区别 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,其实客户端浏览器只 ...

  4. [转载] JAVA面试题大全(part_1)

    参考链接: 对Java中派生类方法更严格的访问 JAVA面试题大全(part_1) 1.面向对象的特征有哪些方面 (1)抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目 ...

  5. JAVA面试题大全(part_1)

    JAVA面试题大全(part_1) 1.面向对象的特征有哪些方面 (1)抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只 是 ...

  6. JAVA程序员笔试面试题汇总及答案 .

    1.面向对象的特征有哪些方面 (1)抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只 是选择其中的一部分,暂时不用部分细节. ...

  7. 一份超详细的IBM公司JAVA基础面试题附答案以及解析(题库)

    第一章 Java概述 笔试题 一.填空题 1.[基础题]Java是一种先 编译 后 解释 运行的语言. 二.选择题 三.名词解释 1.[基础题]J2SE:Java 2 Standard Edition ...

  8. java代码在jsp中怎么写_在jsp中写java代码

    该服务器上的所有的访问者的所有 jsp 页面 D.该服务器上的所有的访问者的所有 jsp 页面和 Java 程序 6.在 JSP 中调用 JavaBean 时不会用到的标记是( )...... jav ...

  9. 腾讯(求丢失的元素)

    一.从1~100中随机抽走一个数字,剩下的99个数字被打乱顺序放到数组 a[99].int a,k=0; srand(time(NULL)); a = rand()%100+1;//随机从0~100抽 ...

  10. 推荐一个java技术文章公众号

    ☕️Java基础 2018年如何快速学Java 泛型就这么简单 注解就这么简单 Druid数据库连接池就是这么简单 Object对象你真理解了吗? JDK10都发布了,nio你了解多少? COW奶牛! ...

最新文章

  1. 图案研究2--斜线续
  2. 浅谈Android Fragment嵌套使用存在的一些BUG以及解决方法
  3. python批量处理jira上的issue
  4. Android中handler的使用及原理---学习笔记
  5. javascript第三天(2)
  6. IDEA 创建 SpringCloud项目-多项目方式
  7. 面试:整理面试中常被问到的8种数据结构
  8. USB 设备类代码表
  9. linux ubuntu 编写c/c++ 获取命令行传入参数示例
  10. C++优先队列priority_queue详解
  11. bmaplib vue 调用_Vue集成百度地图
  12. 两台服务器身份验证,OAuth 2 从入门到精通(一) - 身份认证服务器
  13. 一步一步往前冲-WCF
  14. 各品牌路由器默认账号密码
  15. python转txt到xml并编译为exe
  16. HDU-2036 改革春风吹满地
  17. ssm+jsp计算机毕业设计车辆违章查询系统2hie7(程序+LW+源码+远程部署)
  18. 用MDT 2012为企业部署windows 7(十)--制作windows 7标准模板机
  19. 软件测试项目管理平台
  20. 17开头的是什么号码?为什么17开头手机号最好不要用

热门文章

  1. DirectX修复工具使用技巧之二——手动修复C++创建失败的文件
  2. web应用程序的部署
  3. 测试人员如何分析需求文档
  4. 传输线阻抗方程的推导
  5. 通俗理解贝叶斯,全概率定理
  6. python 组态_西门子组态WinCC自学入门视频教程资源_48讲
  7. ddr42400和2660混插_DDR4 3000与DDR4 3200性能相差多少?为什么不能混插使用?
  8. 关于在Ubuntu上安装EPSON打印机驱动小记
  9. 上位机和下位机通信故障判断方法
  10. No.11软件工程的过程管理