Jsp是什么
HttpJSPBase是HttpServlet的子类
Java Servlet pages Java的服务器页面
主要是代替Servlet回传html页面
本质是一个Servlet程序
当第一次访问jsp页面时,Tomcat服务器会帮我们把jsp页面翻译成为一个Java源文件,并且对他们进行编译称为.class字节码程序。在该.Java文件中,该类间接继承了HTTPServlet类,翻译出来一个Servlet程序,即jsp就是Servlet程序。
jsp头部的page指令
jsp的page指令可以修改jsp页面中一些重要属性,
language:表示jsp翻译后是什么语言的文件
contentType:表示jsp返回什么数据类型,也是response.setContentType参数值
pageEncoding 属性 表示当前页面文件本身的字符集
import属性 用于导包
autoFlush设置当out输出缓冲区满了之后是否自动刷新
buffer设置缓冲区的大小,默认是8kb
errorPage属性:当jsp应用运行时产生错误自动跳转 一般表示请求地址为:http://ip:port/工程路径/ 映射到代码的web目录
isErrorPage属性 判断当前页面是否出现异常,默认是false,若是true则获取错误信息
session 属性:设置访问当前页面,是否会创建HTTPSession对象,默认是true
extendS设置:设置jsp翻译出来的Java类型默认继承谁
jsp的三种脚本
1.声明脚本 可以给jsp翻译出来的Java类定义属性和方法甚至是静态代码块,内部类等
<%! %>在内部书写
(1)声明类的属性
(2)声明静态代码块
(3)声明类的方法
(4)生成内部类
2.表达式脚本(常用) 翻译为.class文件时 会放在out.print中
<%= %>作用是在jsp页面上输出数据
1.所有的表达式脚本都会被翻译到Jspservice方法中
2.表达式脚本都会被翻译成为out.print()输出到页面上
3.由于表达式脚本翻译的内容都在_JSPService方法中。所以方法中的对象都可以使用
注意:在表达式结尾不能使用分号结尾,
3.代码脚本
格式是:<% java 语句%> 原样翻译为Java语句
1.作用是可以在jsp页面中编写自己需要的功能(写的是Java语句)
2.在其中的对象和参数都可以使用
3.还可以使用多个代码脚本组合完成一个Java语句
4.代码脚本还可以和表达式脚本一起使用在jsp页面输出数据
jsp中的三种注释
<!-- -- > html注释会被翻译到Java源代码中,在_jspService,以out.write输出到客户端 但是由于是注释所以可以在后台查看 且其注释会被jsp忽略 其中的jsp语句会被执行和声明
Java注释会被翻译到Java源代码中 一般写在声明脚本和代码脚本中
jsp注释把所有代码注释掉 在页面中也不会显示