第89次(JSP)
学习主题:JSP
学习目标:
1 掌握 JSP访问原理
2 掌握JSP引擎
3 掌握JSP指令
对应视频:
http://www.itbaizhan.cn/course/id/85.html
对应作业
- jsp的概念特点和第一个jsp页面
- 简述什么是jsp
JSP全名为Java Server Pages,中文名java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导,许多公司参加与一起建立的一种动态网页技术标准.
- jsp的访问原理图
- 简述Jsp的访问原理流程
浏览器发起请求,请求JSP,请求被Tomcat服务器接收,执行JSPServlet将请求的JSP文件转义为对应的java文件(也是Servlet),然后执行转义好的java文件.
- Jsp的引擎是?
JspServlet:jsp引擎.
把要访问的jsp文件,编译成java文件.
- jsp的访问原理总结
- 视频中的注意是什么,请写出
Jsp中可以执行 java,HTML,scc,js多种语言,当编写java代码时会被原样输出,其他语言会通过JSPServlet引擎加工后在执行.
![28a81e4dd0bd3d7b9f41001909e6e069.png](https://i-blog.csdnimg.cn/blog_migrate/0b1eb690c90a8c51070c4bec54b7b004.jpeg)
- jsp的page指令
- 请列出视频中讲解的page指令的属性及作用
<%@page language="java" %><%--声明转义的语言 --%>
<%@page session="true" %><%--设置是否开启session对象 --%>
<%@page import="java.util.*,java.lang.*" %><%--声明转译时导入的java包文件--%>
<%@page pageEncoding='utf-8' %><%--设置jsp的数据保存的编码格式 --%>
<%@page contentType="text/html; charset=utf-8" %><%--设置数据相应的编码格式 --%>
<%@page isErrorPage="false" %><%--默认为false true表示开启Exception异常对象的使用--%>
<%@page errorPage="index.jsp" %><%--页面发生错误时转向的页面--%>
Page指令的作用:设置jsp转译的时候的一些配置信息.
- 请说明page指令session属性的作用
<%@page session="true" %><%--设置是否开启session对象 --%>
设置是否开启session对象
- jsp的局部代码块和全局代码块和脚本段语句
- 局部代码块和全局代码和脚本段语句的声明分别是
<%!
全部代码
%>
<%
局部代码
%>
<%=add() %> 脚本段语句 这里输出add()的返回值
全局和局部以是否有!(感叹号)区分
- 局部代码块声明和全局代码块声明的区别是?
局部代码声明是在_jspService方法中声明,所以不可以声明方法,而且声明的变量也只能在局部代码块中使用.
全局代码块.相当于在当前jsp对应的java文件中类中声明的,可以声明变量和方法,声明的变量为全局变量.方法必须在局部代码块中调用才能有作用.
第90次(JSP)
学习主题:JSP
学习目标:
1 掌握JSP注释
2掌握JSP引入
3 掌握JSP内置对象
4 掌握JSP四大作用域
5 掌握servlet和jsp中的路径问题
对应作业
- jsp的注释
- jsp的注释
HTML注释:会被转译也会被响应给浏览器,但不会被浏览器执行.
CSS注释: 会被转译也会被响应给浏览器,但不会被浏览器执行.
JS注释: 会被转译也会被响应给浏览器,但不会被浏览器执行.
Java注释:会被转译,但不会执行
- jsp的注释<%-- --%>的特点是什么
格式:<%-- 注释内容 --%> 内容不会被转移,更不会被执行.
- jsp的静态引入和动态引入
- 静态引入和动态引入的标签分别是?
<!-- 静态引入.-->
<%@include file="index.jsp" %>
<%--动态引入 --%>
<jsp:include page="index.jsp"></jsp:include>
- 静态引入和动态引入的区别是?
静态引入:
- 会将两个jsp合拼成一个效率相对较高
- 因为会合拼成一个jsp,所以不要再两个jsp中声明同名的变量否则会报错
动态引入:
- 两个jsp各级会生成独立的java文件,不必担心变量名重复问题
- 效率可能会低于静态引入
作用:减少了代码的冗余.实现资源的共享
- jsp的forward标签学习
- forward标签的作用及使用注意事项是?
<jsp:forward page="text.jsp">
<jsp:param value="12321312" name="uname"/>
</jsp:forward>
作用:从一个jsp页面跳转到另一个jsp页面
特别注意:标签中除了<jsp:param>标签(用于传递数据),不允许出现任何内容,甚至空格.
- jsp的内置对象学习
- jsp的九大内置对象分别是?。
<!-- 9个对象的使用 这9个对象为内置对象可以直接使用-->
<!-- pageContext:页面上下文对象,此对象封存了下面的8个对象.
注意:一个jsp页面一个pageContext对象,pageContext对象每次请求都会重新创建.
作用域:当前jsp页面
session:解决了同一个用户请求之间的数据共享问题.
application:ServletContext对象,解决了不同用户之间的数据共享问题
config:ServletConfig对象,使用此对象完成资源的初始化.
out:响应数据的对象,较于response对象,out对象底层使用了缓冲区,out对象的效率高于response
page:代表当前被执行的jsp专业的java文件的对象
request:封存了请求相关数据,由服务器创建
response:响应对象,设置编码格式.
- jsp中的四个作用域对象是?
PageContext 作用域最小, 当前jsp页面
Request 一次请求.
Session: 一个会话(一个用户)
Application:不同用户
- jsp和Servlet的职责讲解
- 简述jsp与servlet的职责
Jsp:负责页面展示
Servlet:负责逻辑处理
- servlet请求转发和重定向jsp页面以及相对路径讲解
- 使用相对路径请求转发和重定向会出现什么问题?
一定要搞清楚项目所存在的路径.
分清项目根目录和服务器更目录
- Servlet中请求转发和重定向的绝对路径
- 简述为什么请求转发和重定向的路径最好写成绝对路径
当servlet的别名是一个目录时,相对路径就会发生错误.
- 说明请求转发和重定向路径中第一个斜杠的含义
在重定向中 第一个斜杠”/” ---服务器根目录(如下)
这里这是到达了 webapps 服务器根目录下
![6fa30f2c6ce7efe18298bdb5037d456c.png](https://i-blog.csdnimg.cn/blog_migrate/dac5bfc114603707e3aa645a2bb792a3.png)
请求转发中第一个斜杠”/” ---项目根目录(这里用text项目举例)
这里到达了 text项目根目录下
![590f04ee760867e3f7b47cbb2ca2e78e.png](https://i-blog.csdnimg.cn/blog_migrate/53e28daded777665ba95f3e5ee0e366a.png)
这两句到达的位置一样.
//重定向转发
resp.sendRedirect("/text/index.jsp");
//请求转发
req.getRequestDispatcher("/index.jsp").forward(req, resp);
相对路径(当这里设置的为对个斜杠时,相对路径就会报错)
![b71cb9cd17dc84898d1f9f73e344b697.png](https://i-blog.csdnimg.cn/blog_migrate/0fef0e36daf1ee3396d4a823f10a406f.png)
相对路径
![665ade34ebacf123abdad0ce3dd7c3c4.png](https://i-blog.csdnimg.cn/blog_migrate/7077e102c2606fcbc9e1edbf51df8de2.png)
- jsp中的绝对路径和basePath方式
- 简述jsp中的路径的第一个斜杠的含义
第一个斜杠代表:服务器根目录
- 简述jsp中的basePath设置的作用
BasePath:当前项目的根目录.
![b0bbf796b6bc6529faf48172f6c36416.png](https://i-blog.csdnimg.cn/blog_migrate/1a8a2b7d43272926de8c9302ce216b84.png)
basePath:存储的是当前项目下的根目录
<base href=”<%=basePath>”>:
相当于将当前页面的词源默认定位从项目根目录开始查找.我们就不需要在从服务器根目录开始写目录了(不用写”/”)