简述什么是jsp
- Jsp就是java服务页面,本质上就是select
- 特点:
- 跨平台,一次编写处处运行
- 组件跨平台
- 健壮性和安全性
- HTML和Java代码共同存在
Jsp的访问原理流程
浏览器发送请求,请求jsp,请求被tomcat服务器接收,执行jspservlet将请求的jsp文件转义成对应的java文件(也是servlet)然后执行转移好的java文件
Jsp的引擎
jspservlet
![eab964c207e01566196cd9f42c36699d.png](https://i-blog.csdnimg.cn/blog_migrate/4ed197d5c184cd3842c77c215ffbccc0.png)
page指令的属性及作用
- language="java" 声明转译的语言
- import="java.util.*" 设置转译时导入的java包文件
- pageEncoding="utf-8" 设置jsp的数据保存的编码格式
- contentType="text/html; charset=utf-8" 设置数据的响应编码格式
- session="false" 设置session的状态,默认为true,也就是转译的servlet文件中session是开启的,使用false关闭
- isErrorPage="true" 默认false true表示开启exception异常对象的使用
- errorPage="error.jsp" 指定当jsp运行出现异常错误时跳转指定的页面
page指令session属性的作用
- 设置session的状态,默认为true,也就是转译的servlet文件中session是开启的,使用false关闭
局部代码块和全局代码和脚本段语句的声明
- 局部代码块 声明方式:<% java代码%>
- 全局变量声明方式:<%! 声明全局java代码%>
部代码块声明和全局代码块声明的区别
- 使用局部代码块声明的java代码会被原样转译到_jspService方法中。也就是局部代码。使用全局代码块中声明的java代码,在转译时,会转译成jsp对应的java的文件全局的代码。
jsp的注释
![19b2434248de814d7c916f3696d05ad4.png](https://i-blog.csdnimg.cn/blog_migrate/c83ef96b40d03a4edbda87fda6c2cde4.png)
jsp的注释<%%>的特点
- 注释内容不会被转译也不会执被行,不能嵌套使用
静态引入和动态引入的标签
- 静态引入:<%@include file="引入文件的相对路径" %>
- 动态引入:<jsp:include page="引入文件的相对路径"></jsp:include>
静态引入和动态引入的区别
- 静态引入:被引入的jsp文件和原有的jsp文件被转译成一个java文件使用,相关的jsp文件中不能声明同名变量
- 动态引入:被引入的文件会被单独转译,原有jsp文件会调用被引入的jsp文件,相关的jsp文件中可以声明同名变量
forward标签的作用及使用注意事项
- 解决不同的jsp在处理请求时,将当前的请求转发给其他的jsp,实现从一个jsp页面跳转到另一个jsp页面
- 注意事项:forward标签中除了 <jsp:param value="" name=""/>子标签以外不能出现其他内容,否则会报错
jsp的九大内置对象
![eebf45fdfd4d247fece768ff0e3cedea.png](https://i-blog.csdnimg.cn/blog_migrate/10a802014ac191e2133767eec52f0d2d.png)
jsp中的四个作用域对象
page域: 只能在当前jsp页面使用 (当前页面)request域: 只能在同一个请求中使用 (转发才有效,重定向无效)session域: 只能在同一个会话(session对象)中使用 (私有的,多个请求和响应之间)context域: 只能在同一个web应用中使用 (全局的)
jsp与servlet的职责
Jsp负责页面展示,servlet负责业务逻辑处理
servlet请求转发和重定向jsp页面以及相对路径
使用相对路径请求转发和重定向会出现什么问题
- 如果书写的是相对路径,请求转发和重定向进行jsp页面的跳转时,如果书写的是相对路径,这样会造成如果当前文件或目标文件的url-pattern发送改变,转发和重定向的相对路径就需要重新书写
Servlet中请求转发和重定向的绝对路径
什么请求转发和重定向的路径最好写成绝对路径
- 在求转发和重定向进行jsp页面的跳转时,如果书写的是相对路径,这样会造成如果当前文件或目标文件的url-pattern发送改变,转发和重定向的相对路径就需要重新书写。写成绝对路径则不会受到影响
请求转发和重定向路径中第一个斜杠的含义
- 请求转发:项目根目录
- 重定向:服务器根目录
jsp中的绝对路径和basePath方式
jsp中的路径的第一个斜杠的含义
- 在jsp中路径中的第一个/表示服务器根目录
jsp中的basePath设置的作用
- basePath的值为当前项目的根目录,并且在head标签中使用了<base href="<%=basePath%>">相当于将当前页面的资源全部默认定位为从项目根目录开始查找,