JAVA jsp技术
JSP的本质是一个类文件,它存储于tomcat(如果你使用tomcat)目录下的work文件夹中,该类文件继承了HttpJspBase类,而HttpJspBase类继承了HttpServlet类,所以其实质是一个servlet的类文件
JSP脚本:
1)<%java代码%> ----- 内部的java代码翻译到service方法的内部
2)<%=java变量或表达式%> ----- 会被翻译成service方法内部out.print()
3)<%!java代码%> ---- 会被翻译成servlet的成员的内容
java注释:
1)Html注释:<!--注释内容--> ---可见范围 jsp源码、翻译后的servlet、页面显示html源码
2)java注释://单行注释 /*多行注释*/ --可见范围 jsp源码 翻译后的servlet
3)jsp注释:<%--注释内容--%> ----- 可见范围 jsp源码可见,安全性更高
java输出:
response和<%= 参数>输出,response输出更快,因为程序会先去读取response的缓存再把<%= 参数>输出读取到response缓存中去读,
out缓存默认大小为8kb,可以以page指令的buffer设置,如果设为0,则response的输出流和out输出流按正常排序的先后顺序输出。
三大指令:
page的指令:在页面开发中是默认的,格式;<%@ page 属性名1= "属性值1" 属性名2= "属性值2" ...%>
language:jsp脚本中可以嵌入的语言种类
pageEncoding:当前jsp文件的本身编码---内部可以包含contentType(写了它不用再写下面的了)
contentType:response.setContentType(text/html;charset=UTF-8)
session:是否jsp在翻译时自动创建session
import:导入java的包
errorPage:当当前页面出错后跳转到哪个页面
isErrorPage:当前页面是一个处理错误的页面
include的指令:
页面静态包涵,将一个jsp文件写到另一个jsp文件
<%@ include file="被包涵的文件地址” %>
静态的页面包涵内容以代码的形式写进jsp文件中,动态的页面是写入的地址,把要包涵文件地址写进去
动态; 页面包含(动态包含):<jsp:include page="被包含的页面"/>
taglib指令:
在jsp页面中引入标签库(jstl标签库、struts2标签库)
格式:<%@ taglib uri="标签库地址" prefix="前缀"%>
java9大隐式对象
out-------输出信息
request---------页面的请求
respose-------客户端的回复
apploaction--------web环境上下文对象(servletcontext)
session---------服务器存储信息
config-----------服务器配置,可以获得初始化配置
exception----在jsp错误页面的异常
page-----------指当前页转换后serlet的实例
pagecontext------jsp页面的容器,作用域
servlet有3个作用域,applocation,request,session
jsp里有4个作用域 ,applocation,request,session,pagecontext
application:范围整个web应用
request:范围一次请求
session:范围一次会话
pagecontex:范围jsp页面
pagecontent作用域和其他作用域方法基本一致,有个新方法
findAttribute(String name)
依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找