JSP基础语法:
1.概念:
java server pages:java服务器端页面
功能:一个特殊的页面,可以写html标签,可以写java代码
作用:用于简化书写
原本输出html数据到页面是我们程序员做,现在交给了jsp做
2.原理:
步骤:
1,服务器解析请求消息,找是否有index.jsp资源
2.如果找到了,会将index.jsp转换为.java文件(存储在tomcat的work文件夹下)
Using CATALINA_BASE:路径/work下
3.编译.java文件,生成.class字节码文件
4.由字节码文件提供响应访问
JSP本质是一个Servlet
index_jsp
extends org.apache.jasper.runtime.HttpJspBase
extends HttpServlet implements HttpJspPage
3.脚本:
JSP的脚本定义了代码的方式
1.<% 代码 %>
定义的java代码,在service方法中
service方法中可以定义什么,该脚本中就可以定义什么
2.<%! 代码 %>
定义的java代码,在JSP转换后的java类成员位置
3.<%= 代码 %>
定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么(优先输出局部变量)
4.内置对象
在JSP页面中不需要获取和创建,可以直接使用的对象
JSP一共有9个内置对象
1.域对象request:和service中一样
对应数据类型:HttpServletRequest
作用:一次请求访问多个资源(转发)
2.域对象pageContext:
对应数据类型:PageContext
作用:
1.当前页面数据的共享
2.获取其他8个内置对象
3.域对象session:
对应数据类型:HttpSession
作用:
一次会话的多个请求间共享数据
4.域对象application:
对应数据类型:ServletContext
作用:所有用户间共享数据
5.response:和service中一样
对应数据类型:HttpServletResponse
作用:响应对象
6.page:
对应数据类型:Object
作用:当前页面Servlet类的实例对象this
7.config:
对应数据类型:ServletConfig
作用:Servlet的配置对象
8.out:字符输出流对象。可以将数据输出到页面。和response.getWriter()类似
对应数据类型:JspWriter
作用:输出对象,数据输出到页面
response.getWriter()和out.write()区别
在tomcat服务器真正给客户端做出响应前,会先找
response缓冲区数据,再找out缓冲区数据
也就是说response.getWriter()输出数据
永远在out.write()前面
9.exception:
对应数据类型:Throwable
作用:异常对象,进行异常的处理
5.指令:
作用:用于配置JSP页面,导入资源文件
格式:
<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ...%>
分类:
1.page:配置JSP页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
contentType:等同于response.setContentType("设置Mine类型;字符集")
1.设置响应体的mine类型以及字符集
2.设置当前jsp页面的编码(高级IDE才生效,低级工具需要设置pageEncoding)
import:导包,类似java导包
errorPage:当前页面发生异常后,会自动跳转到其指定的错误页面
isErrorPage:标识当前是否是错误页面
true:是,可以使用内置对象exception
可以将错误信息写入日志
false:否,默认值。不可以使用内置对象exception
2.include:页面包含其他页面。导入页面的资源文件
<%@ include file="xxx"%>
应用场景:如果每个页面都会有重复的一个部分可以用该指令导入重复的页面文件
3.tablib:导入标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
prefix:前缀,自定义类型
6.注释:
1.html注释:
<!-- -->:只能注释html代码片段
2.jsp注释:推荐使用
<%-- --%>:可以注释所有的代码
3.jsp脚本中也可以使用java的注释