一、什么是JSP?
JSP全名Java Server Pages,在html文件中加入JAVA代码段和JSP标签形成JSP文件,后缀为 .jsp 。用JSP开发的web应用是跨平台的。
二、JSP三大指令
1、page
<%@page language="java" import="java.util.*"%>
pageEncoding:指定当前页面的编码。
contentType:等同于response.setContentType(“text/html;charset=utf-8”)。
import:导包。
errorPage:指定如果抛出异常要转发的页面。
isErrorPage:指定当前页面是否为错误处理页面。并且可以使用exception对象。
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
< /error-page>
<error-page>
<exception-type>java.lang.RuntimeException</exception-type>
<location>/exception.jsp</location>
</error-page>
autoFlush:指定jsp的输出缓冲区满时,是否自动刷新。默认true,如果为false,在缓冲区满时会抛出异常。
buffer:指定缓冲区大小。
isELIgnored:是否忽略EL表达式,默认时false,支持。
session:当前页面是否支持session,如果为false,则没有session对象。
extends:让当前jsp生成的servlet继承指定的类。
2、include:静态包含
<%@include %>
它是在jsp编译成java文件时完成的,他们共同生成一个java文件(即一个servlet),然后在生成clss文件。
作用:把页面分解了,使用了包含的方式组合在一起,这样一个页面中不变的部分就是一个独立的jsp,而只需要处理变化的页面。
3、taglib:导入标签库
prefix:指定标签库在本页面中的前缀,由我们自己命名。
url:指定标签库的位置。
三、九大内置对象
在jsp页面中无需声明既可直接使用的内置对象
1、out:JspWriter的对象,等同response.getWriter(),用来向客户端发送文本数据。
2、config:是配置文件ServerConfig的对象。
3、page:当前jsp页面对象。
4、pageContext:页面上下文对象。
5、exception:异常对象,只有在错误页面才能使用。
6、request:HttpServletRequest的对象。
7、response:HttpServletResponse的对象。
8、application:ServletContext(即web应用)的对象。
9、session:HttpSession的对象,如果设置< %@page session=false%>就不能使用session。
四大域的范围大小:
application(ServletContext,即整个web应用)> session(整个会话,一个会话只有一个用户)> request(一个请求)> pageContext(当前jsp页面)
四、JSP动作标签
JSP动作标签是由tomcat服务器解析的,而html标签是有浏览器解析执行的。
1、<jsp:include>
动态包含
< jsp:include page="xxx"/>
,用包含指定页面。
<jsp:include>
动作标签和<%@page include%>
指令的区别:
前者是生成两个java文件,后者是生成一个文件。
2、<jsp:forward>
用来转发到指定页面。
3、<jsp:param>
用来向其他页面传递参数。
<jsp:include page="/b.jsp">
<jsp:param name="username" value="zhangsan">
</jsp:include>
五、三种脚本标签
1、<% %>
用于包含java代码,类似于方法。
2、<%= %>
用于输出一个表达式或变量。
3、<%! %>
用于声明变量或方法,类似与类。
还有注释标签:<%-- --%>
六、JSP原理
jsp其实是一种特殊的servlet。
- 当jsp页面第一次被访问时,服务器会将其编译成java文件
- 然后把java文件编译成class文件
- 然后创建该类的对象
- 最后调用它的service方法 第二次请同一jsp页面时,直接调用service方法