【023】JavaWeb面试题(四):JSP
2021-04-10 17:26
标签:servlet 发送 表单提交 无法 red 内嵌 容器 使用 问题 大家好,我是Java最全面试题库的提裤姐,今天这篇是JavaWeb系列的第四篇,主要总结了JavaWeb中JSP相关的问题,在后续,会沿着第一篇开篇的知识线路一直总结下去,做到日更!如果我能做到百日百更,希望你也可以跟着百日百刷,一百天养成一个好习惯。 定义: 区别: Jsp 运行机制: JVM 只能识别 Java 类,并不能识别 jsp 代码; 四大域对象: 区别: 实现方式: 1.JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览 1、JSP页面显示乱码 当客户端向一个jsp页面发送请求时,Web Container将jsp转化成servlet的源代码(只在第一次请求时),然后编译转化后的servlet并加载到内存中执行,执行的结果response到客户端 jsp只在第一次执行的时候会转化成servlet,以后每次执行,web容器都是直接执行编译后的servlet,所以jsp和servlet只是在第一次执行的时候不一样,jsp慢一点,以后的执行都是相同的。 【023】JavaWeb面试题(四):JSP 标签:servlet 发送 表单提交 无法 red 内嵌 容器 使用 问题 原文地址:https://www.cnblogs.com/hongcaixia/p/13365549.html开篇介绍
什么是 jsp,什么是Servlet?jsp 和Servlet 有什么区别?
jsp
本质上就是一个 Servlet
,它是 Servlet 的一种特殊形式(由 SUN 公司推出),每个 jsp 页面都是一个 servlet实例。
Servlet 是由 Java 提供用于开发 web 服务器应用程序的一个组件,运行在服务端,由 servlet 容器管理,用来生成动态内容。
一个 servlet 实例是实现了特殊接口 Servlet 的 Java 类,所有自定义的 servlet 均必须实现 Servlet 接口。
页面显示
;逻辑控制
,mvc 设计思想中 jsp 位于视图层,servlet 位于控制层
web 容器收到以.jsp
为扩展名的 url 请求时,会将访问请求交给tomcat 中 jsp 引擎
处理,每个 jsp 页面第一次被访问时,jsp 引擎将 jsp 代码解释为一个 servlet
源程序,接着编译servlet 源程序生成.class
文件,再由web 容器 servlet 引擎去装载执行 servlet 程序,实现页面交互。jsp 有哪些域对象?
pageContext page 域
:指当前页面,在当前 jsp 页面有效,跳到其它页面失效request request 域
:指一次请求范围内有效,从 http 请求到服务器处理结束,返回响应的整个过程。在这个过程中使用 forward(请求转发)方式跳转多个 jsp,在这些页面里你都可以使用这个变量session session 域
:指当前会话有效范围,浏览器从打开到关闭过程中,转发、重定向均可以使用application context 域
:指只能在同一个 web 中使用,服务器未关闭或者重启,数据就有效jsp有哪些内置对象?
对象
生命周期
作用域
使用情况
request
一次请求
只在 Jsp 页面内有效
用于接受通过 HTTP 协议传送到服务器的数据(包括头信息、系统信息、请求方式以及请求参数等)。
Reponse
一次响应
只在 Jsp 页面内有效
表示服务器端对客户端的回应。主要用于设置头信息、跳转、Cookie 等
Session
从存入数据开始,默认闲置 30 分钟后失效
会话内有效
用于存储特定的用户会话所需的信息
Out
用于在 Web 浏览器内输出信息,并且管理应用服务器上的输出缓冲区
PageContext
用于存取其他隐含对象,如 request、reponse、session、application 等对象。(实际上,pageContext 对象提供了对 JSP 页面所有的对象及命名空间的访问。
Page
page 对象代表 JSP 本身(对应 this),只有在 JSP 页面内才是合法的
Exception
显示异常信息,必须在 page 指令中设定才能使用,在一般的 JSP 页面中使用该对象将无法编译 JSP 文件
Application
服务器启动发送第一个请求时就产生了Application 对象,直到服务器关闭。
用于存储和访问来自任何页面的变量所有的用户分享一个 Application 对象
Config
取得服务器的配置信息
和的区别
用于在JSP页面中嵌入Java脚本
用于在JSP页面中申明变量或方法,可以在该页面中的脚本中调用,声明的变量相当于Servlet中的定义的成员变量。
forward与redirect 的区别?有哪些方式实现
response.sendRedirect("重定向的路径")
request.getRequestDispatcher("转发路径").forward(request, response);
浏览器与jsp,html之间的关系
2.在大多数Browser/Server结构的Web应用中,浏览器直接通过HTML或者JSP的形式与用户交互,响应用户的请求
3.JSP在服务器上执行,并将执行结果输出到客户端浏览器,我们可以说基本上与浏览器无关jsp乱码如何解决,给出对应解决方案
2、表单提交中文时出现乱码request.seCharacterEncoding("gb2312″)
对请求进行统一编码
3、数据库连接出现乱码 要涉及中文的地方全部是乱码,解决办法:在数据库的数据库URL中加上useUnicode=true&characterEncoding=GBK
就可以了。
4、通过过滤器完成
5、在server.xml
中的设置编码格式Servlet和CGI的区别?
如何避免jsp页面自动生成session对象?
JSP是如何被执行的?执行效率比SERVLET低吗?
文章标题:【023】JavaWeb面试题(四):JSP
文章链接:http://soscw.com/index.php/essay/73885.html