JSP技术的出现,为我们解决了原生Servlet书写网页的代码冗余的问题,提高了开发效率,也减轻了开发者的负担,因此掌握这门技术是非常有必要的
1. jsp的概念特点和第一个jsp页面
(1) 简述什么是jsp
答: JSP 全名为 Java Server Pages,中文名叫 java 服务器页面,其根本是一个简化的 Servlet 设计,它是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。
2. jsp的访问原理图
(1) 简述Jsp的访问原理流程
答:当通过url或其他路径访问服务器中的jsp文件时,jsp文件先经JspServlet(Jsp引擎)转译成java文件,该java文件本质上还是Servlet,然后再去执行service方法,由于该java文件没有service方法,故去执行它父类HttpJspBase的service方法,其父类的service方法本质上是调用该java文件的_jspService方法,最后将处理结果响应给浏览器
(2) Jsp的引擎是?
答:JspServlet
3. jsp的访问原理总结
(1) 使用Jsp的注意事项
答:jsp中可以书写java代码,但是java代码会被原样转译到其对应的java文件中执行
4. jsp的page指令
(1) 请列出视频中讲解的page指令的属性及作用
答:language 声明转译的的语言
import 声明转译时导入的包
pageEncoding 设置jsp的数据保存的编码格式
contentType 设置数据的响应编码格式
session 设置session的状态,默认为true,也就是在转译的Servlet中默认session是开启的,使用false关闭
isErrorPage 默认为false,true表示开启exception异常对象的使用
errorPage 设置jsp运行出现异常错误时跳转指定的页面
(2) 请说明page指令session属性的作用
答: 设置session的状态,默认为true,也就是在转译的Servlet中默认session是开启的,使用false关闭
5. jsp的局部代码块和全局代码块和脚本段语句
(1) 局部代码块和全局代码和脚本段语句的声明分别是
答:局部代码块:<%局部java代码%>
全局代码块<%!全局java代码%>
(2) 局部代码块声明和全局代码块声明的区别是?
答:局部代码块中声明的代码是会原样转译到_jspService方法中
全局代码块中声明的代码会原样转译到_jspService方法外
6. jsp的注释
(1) jsp文件的注释包含哪些
答:包含HTML注释,CSS注释,JS注释,java注释以及jsp注释
(2) jsp的注释<%%>的特点是什么
答:注释内容不会被编译,也不会被执行
7. jsp的静态引入和动态引入
(1) 静态引入和动态引入的标签分别是?
答:静态引入:<%@include file=”要引入的资源的绝对路径”%>
动态引入<jsp:include page=”要引入的资源的绝对路径”></jsp:include>
(2) 静态引入和动态引入的区别是?
答:静态引入:被引入的jsp文件和原有jsp被编译成一个java文件使用,静态引入的相关jsp文件不能声明同名变量.
动态引入: 被引入的jsp文件会单独转译,原有jsp会调用被引入的jsp文件,动态引入的相关jsp文件中可以声明同名变量.
8. jsp的forward标签学习
(1) forward标签的作用及使用注意事项是?
答:作用是从当前jsp页面跳转到另外一个jsp页面
注意:forward标签中除了<jsp:param value=”” name=””/>子标签以外不能出现其他内容(注释也不行),否则会报错
9. jsp的内置对象学习
(1) jsp的九大内置对象分别是?。
答:pageContext,request,session,response,out,
application,page,config,exception
(2) jsp中的四个作用域对象是?
答:pageContext:当前页面作用域
request: 从请求创建到请求消亡这段时间
session:一次会话
application:服务器开启到服务器关闭
10. jsp和Servlet的职责讲解
(1) 简述jsp与servlet的职责
答:jsp负责页面展示,servlet负责处理复杂业务逻辑代码
11. servlet请求转发和重定向jsp页面以及相对路径讲解
(1) 使用相对路径请求转发和重定向会出现什么问题?
答:当另外一台电脑访问该路径的时候,可能会找不到对应的路径
12. Servlet中请求转发和重定向的绝对路径
(1) 简述为什么请求转发和重定向的路径最好写成绝对路径
答: 因为如果路径发生变更,或者其他电脑来使用该路径的话,可能会出现找不到文件路径的情况
(2) 说明请求转发和重定向路径中第一个斜杠的含义
答:请求转发路径的第一个斜杠代表项目根目录
重定向路径的第一个斜杠代表服务器根目录
13. jsp中的绝对路径和basePath方式
(1) 简述jsp中的路径的第一个斜杠的含义
答:表示服务器根目录
(2) 简述jsp中的basePath设置的作用
答:在Myeclipse中创建的jsp页面会自动生成路径处理代码basePath,而basePath的值为当前项目根目录,并且在head标签中使用了<base href=”<%=basePath%>”>相当于将当前页面的资源全部默认定位为从项目根目录开始查找,我们就不需要写第一个”/”了