Jsp技术
一、jsp简介:
Jsp技术,jsp在运行时有jsp编译器进行转换,解析出jsp代码的所有特性,并将它们转换成java代码,有jsp创建得到的java类都将实现servlet,具有生命周期,其实jsp就是特殊的servlet。
编译时刻:①在被请求时转换并编译。之后的请求可以使用编译好的jsp。
②在部署应用程序的时候进行转换编译。
Jsp默认的内容类型为text/html,默认的编码ISO-8859-1;
二、jsp技术指令、生命、脚本和表达式
①<%@这是一个指令 %>
规定导入类,使用哪种脚本语言等
②<%! 这是一个声明 %>
相当于servlet中的实例变量,在类中。
③<% 这是一个脚本 %>
Jsp脚本代码最终被转换成servlet后,存在于service方法中。Service方法中的所有局部变量都可以在脚本中使用。在脚本中可以定义局部变量而不是实例变量。
④<%= 这是一个表达式%>
作用域与脚本相同。将被复制在service方法中。
三、jsp中的代码注释
①XML注释
<!-- -->
在这种注释中所有的jsp标签都会被执行处理,不会阻止java代码的执行。而且这个注释将会被发送到浏览器中。
②传统java注释
不会进行任何处理。不会发送到客户端。
③jsp注释<%-- --%>
不会发送到客户端,jsp编译器都不会转换它,不会出现在servlet中。
四、jsp指令
1、更改界面属性
①pageEncoding // 设置字符编码看,当前页面的编码,在服务器转换的时候用到此编码
contentType //表示添加了一个响应头,等同于response.setContentType("text/html;charset=utf-8");
两者之间的关系:如果两个属性只提供一个,那么另外一个的默认值为设置的哪一个,如果两个都不出现默认值为 iso
②session //设置是否参与HTTP回话,默认为真
③isELgnored //设置是否解析转换EL语言,默认为真
④buffer和autoFlush //设置jsp的传输方式,buffer为缓冲区大小,默认8k bautoFlush为缓冲区满是否自动刷新,默认为真
⑤errorPage //设置错误页面,出错转发到某一个页面
⑥isErrorPage //设置当前页面为错误页面,默认为假 只有当该属性为true时可以设置exception内置对象
⑦isThreadSafe // 设置当前页面是否为线程安全,默认为真
⑧extends //指定当前jsp servlet的父类,使用后jsp不能迁移到另一个容器。
2、包含其他jsp
①方法一:<%@ include file = “地址”%>
在转换时执行,在转换的时候替换,静态,只发生一次,使jsp变大,但是反应灵敏。可以用主jsp变量。
②方法二:<jsp:include page = “地址”>
这种方法是动态的,不是在转换的时候替换,动态,被包含的文件单独编译,在运行的时候,请求将被临时的重定向到包含的文件中。然后在返回到主jsp中。
Org.apache.jasper.runtime.JspRuntimelibrary.include(request,response,”.jsp”,out,false);通过这行代码执行包含的jsp;
Java编译后最多字节:65534
3、包含标签库
<%@taglib uri = “url”>
五、使用jsp中隐式的变量(内置对象),拥有方法作用域。
①request和response
②session
③out
④application //对web应用程序配置的访问
⑤config //对 jsp servlet的配置
⑥pageContext
一个jsp页面,一个顶九个
⑦page //相当于this
⑧exception //只能在错误页中使用