《JSP学习笔记二》

声明:以下内容是本人在B站上观看动力节点视频后总结的,侵删!
1、什么是JSP:
JSP本质上就就是一个servlet;将jsp页面翻译成servlet的过程是由tomcat完成的,在tomcat中内置了一个jsp翻译引擎,当第一次访问该jsp页面时,翻译引擎会将jsp页面servlet的.java文件,再将其编译为.class文件进行运行。

2、JSP的注释:
JSP注释方式 <%-- JSP注释 --%>,tomcat翻译引擎会翻译HTML注释到servlet的out.write方法中输出至页面上, 不会翻译jsp注释即客户端看不到注释内容;

3、JSP的java代码块:
由于jsp小脚本是被翻译到servlet的jspService方法中,所以<% %>中不能出现如下内容:
①声明变量不能添加权限访问控制符,
②不能定义方法
③不能定义静态语句块

4、JSP的声明语句块
在jsp中使用<%! %> 括起来的部分,称为声明语句块,声明语句块中的内容,将jsp引擎翻译到Servlet的类体中,没有包含到哪个方法体中。
在jsp声明语句块中可以声明实例变量,静态方法、静态代码块等。这些内容均可以被jsp的java代码块中的代码访问。因为他原本就是一个Servlet类中的代码。不过,不建议在jsp的声明中声明实例变量,因为Servlet是运行在单例多线程的环境中,实例变量会引起线程安全问题。

5、JSP的表达式快
在jsp页面中使用<%= %>括起来的部分,称为表达式块。其可在jsp页面输出变量,常量,以及他们组成的各种表达式。注意,是表达式 而不是语句,是没有分号的。该表达式将被jsp引擎翻译到jspServlet的out.write()中输出。

二、JSP核心
1、九大内置对象

  1. PageContext:页面上下文,其具有只在当前页面范围的域属性空间,即其具有getAttribute()方法与getAttribute()方法。在同一页面中,为了使用el表达式,来访问某变量的值,此时一般使用PageContext。
    PageContext具有一些get方法,可以获取到request、response、session、out、config、application、exception、page(当前Servlet对象);
  2. out ,类型为javax.servlet.jsp.JspWriter。查看java文档,发现JspWriter类继承自IO流的Writer类 。即out就是一个输出流对象。

2、JSP指令(directive)
jsp指令的作用是为当前页面做一些基本的属性设置,为当前页面的运行提供基本的环境。
根据功能的不同,JSP中包含三类指令:page指令,即页面指令;include指令,即包含指令;taglib指令,即标签库指令。无论哪种指令,其使用的语法格式均为如下形式:
<%@ 指令名称 属性名=属性值 属性名=属性值…%>
1)page指令
page指令用于设置当前JSP页面的相关信息。一个JSP文件中可以包含多个page指令。常用的page指令的属性意义及用法如下:
①pageEncoding
用于设置当前JSP页面使用的字符集编码<%@ page pageEncoding=“utf-8”%>
其被翻译引擎翻译到Servlet中的语句,是jspService()方法中的setContentType()
②import属性
用于完成JSP页面中导入的类。其被JSP引擎翻译为Servlet中的import语句。例如
<%@page import=“java.util.Date” %>
③errorPage属性
当页面报错时,可以在报错页面添加<%@ page errorPage = “/error.jsp”%>属性,当页
抛出异常后会自动跳转到error.jsp页面
④isErrorPage属性
在error.jsp页面中添加<%@ page isErrorPage = “true”%>就可以使用页面的exception
对象,通过exception.getMessage()方法可以获取错误信息。
⑤session属性
使用request的getSession()原则;
若向Session域中存放数据,则使用getSession(true),即getSession().
若从session中取数据,则使用getSession(false)

2)include指令
①静态联编

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值