1. jsp的概念特点和第一个jsp页面
(1) jsp的概念
Jsp名称为java服务器页面,其根本是简化的servlet,是一种动态网页技术标准
2. jsp的访问原理图
(1) Jsp的访问原理流程
浏览器发送请求,请求jsp,请求被Tomcat服务器接收,执行jspServlet(其实就是jsp驱动)将jsp文件转译为java文件(也是servlet),然后执行转译好的java文件。
jsp的访问原理图
3. jsp的访问原理总结
(1) 需要注意的地方
Jsp中可以书写java代码,但是java代码会按照原样进行转译执行,而如HTML、css、js、data数据等前端代码会被响应到浏览器,经过浏览器解析后呈现给用户。
4. jsp的page指令
(1)page指令的属性及作用
<%@page langusge=”java”%>,声明编码语言
<%@page pageEncoding=”utf-8”%>,设置jsp的数据保存的编码格式
%@page import=”java.util.*”%,声明转译时导入的Java包文件
<%@page contentType="text/html; charset=utf-8"%>,设置数据的相应编码格式
<%@page session="false"%><%-- 设置session的状态,默认为true,也就转译的servlet文件中默认session是开启的,使用false关闭--%>
<%@page isErrorPage="true"%><%-- 默认为false ture表示开启exception异常对象的使用--%>
<%@page errorPage="error.jsp"%><%-- 设置当jsp运行出现异常错误时跳转指定的页面--%>
5. jsp的局部代码块和全局代码块和脚本段语句
(1) 局部代码块和全局代码和脚本段语句的声明
局部代码块:
<%
Int a=10;
System.out.println(a);
Test();
%>
全局代码块:
<%
Int b=20;
Public void test(){
System.out.print(“全局声明”);
}
%>
脚本段语句:
声明方式:<%=变量名或者方法名()%>
(2) 局部代码块声明和全局代码块声明的区别
使用局部代码块生命的java代码会被转译为_jspServlet方法中。也就是局部代码。
使用全局代码块声明的java代码会被转译成jsp对应的java文件的全局代码。
6. jsp的注释
(1) jsp的注释
HTML注释:会被转译也会被响应给浏览器,但是浏览器不会执行。
CSS注释:会被转译也会被响应给浏览器,但是浏览器不会执行。
js注释:会被转译也会被响应给浏览器,但是浏览器不会执行。
java注释:会被转译,但不会执行
jsp注释:注释内容不会被转译,也不会被执行
7. jsp的静态引入和动态引入
(1) 静态引入和动态引入的标签
静态引入:<%@include file=”要引入的资源的相对路径”%>
动态引入:<jsp:include page=”static.jsp”></jsp:include>
(2) 静态引入和动态引入的区别
静态引入:被引入的jsp文件和原来的jsp文件会被转译为一个java文件使用。静态引入的jsp文件中不允许声明同名变量。
动态引入:被引入的jsp文件会被单独转译,原有的jsp文件会调用引入的jsp文件。动态引入的jsp文件中可以声明同名变量。
8. jsp的forward标签学习
(1) forward标签的作用及使用注意事项
可以解决不同的jsp请求在处理请求时,将当前请求转发给另外的jsp进行处理
<jsp:forward page="要转发的jsp的相对路径"></jsp:forward>
在forward标签中除了<jsp:param value=“” name=“”/>字标签意外不能出现其它内容,否则会报错。
9. jsp的内置对象学习
(1) jsp的九大内置对象
Request:封存了请求相关数据,由服务器创建
Response:响应对象,设置编码格式
Application:ServletContext对象,解决了不同用户之间的数据共享问题
Session:解决了同一用户个不同请求之间的数据共享问题
Out:响应数据的对象,交于response对象,out对象底层使用了缓冲区。out对象的效率高于response
Page:代表当前被执行的jsp转译的java文件的对象
Config:ServletConfig对象,使用此对象完成资源的初始化。
Exception:jsp页面的异常对象,封存了异常信息。
PageContext:页面上下文对象,此对象封存了另外8个对象。
注意:一个jsp页面一个pageContext对象。pageContext对象每次请求都会重新创建。
作用域:当前jsp页面
10. jsp和Servlet的职责讲解
(1) jsp与servlet的职责
Jsp负责页面展现,servlet负责业务逻辑处理
11. Servlet中请求转发和重定向的绝对路径
(1) 请求转发和重定向的路径最好写成绝对路径
如果当前文件的路径发生变更,从当前路径查找资源的相对路径都要重新进行书写。
(2) 请求转发和重定向路径中第一个斜杠的含义
在重定向中表示服务器根目录,在请求转发中表示项目根目录
12. jsp中的绝对路径和basePath方式
(1)jsp中的路径的第一个斜杠的含义
Jsp中的路径的第一个斜杠表示服务器根目录
(2) jsp中的basePath设置的作用
BasePath的值为当前根目录,并且在head标签中使用了<base href=”<%=basePath%>”>相当于将当前页面的资源全部默认定位为从项目根目录开始查找,这样就不需要写第一个 / 了。