jsp定义
jsp全称为 java server page,用来代替servlet程序回传html页面的数据。
jsp页面的本质就是一个Servlet程序,在第一次访问jsp页面时,Tomcat服务器就会把jsp页面翻译成一个java源程序,并对它进行编译成.class字节码文件。
jsp语法
jsp头部的page指令
jsp 的page 指令可以修改jsp 页面中一些重要的属性,或者行为。
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
i. language 属性表示jsp 翻译后是什么语言文件。暂时只支持java。
ii. contentType 属性表示jsp 返回的数据类型是什么。也是源码中response.setContentType()参数值
iii. pageEncoding 属性表示当前jsp 页面文件本身的字符集。
iv. import 属性跟java 源代码中一样。用于导包,导类。
v. autoFlush 属性设置当out 输出流缓冲区满了之后,是否自动刷新冲级区。默认值是true。
vi. buffer 属性设置out 缓冲区的大小。默认是8kb
vii. errorPage 属性设置当jsp 页面运行时出错,自动跳转去的错误页面路径。
jsp中的常用脚本
1、声明脚本
作用:可以给jsp 翻译出来的java 类定义属性和方法甚至是静态代码块,内部类等。
格式:<%! java代码%>
2、表达式脚本
作用:在jsp页面上输出数据
格式:<%= 表达式 %>
3、代码脚本
作用:可以在jsp页面中,编写我们需要的功能(java代码)
格式:<% java代码 %>
jsp九大内置对象
jsp在翻译成servlet代码后内部提供的九个对象。
request 请求对象
response 响应对象
pageContext jsp上下文对象
session 会话对象
application ServletContext对象
config ServletConfig对象
page 当前的jsp对象
exception 异常对象
out 向客户端输出内容常用的对象
四个域对象:
page (PageContextImpl类) 当前的jsp页面有效
request (HttpServletRequest类) 一次请求有效
session (HttpSession类) 一次会话范围内有效(打开浏览器访问服务器,直到关闭浏览器)
application (ServletContext类) 整个web工程范围内都有效(只要web工程不停止,数据一直都在)
域对象是可以像Map一样存取数据的对象。四个域对象的功能一样,不同的是它们对数据的存取范围。
jsp中的out输出与response.getWriter()输出的区别:
统一使用out.print()输出
jsp常用标签
静态包含
格式:<%@ include file="/"%>
file属性指定要包含的页面路径
静态包含的特点:
1、静态包含不会翻译被包含的jsp 页面。
2、静态包含其实是把被包含的jsp 页面的代码拷贝到包含的位置执行输出。
动态包含
格式:<jsp:include page="/"></jsp:include>
动态包含特点:
1、动态包含会把包含的jsp页面也翻译成java代码。
2、通过调用被包含的jsp页面进行输出。
3、动态包含可以传递参数。
转发
格式:<jsp:forward page="/"></jsp:forward>
Listener监听器
1、Listener 监听器是javaweb三大组件之一(Servlet程序,Filter过滤器,Listener监听器)。
2、Listener是javaEE接口规范,就是接口。
3、监听器的作用是,监听某种事物的变化。然后通过回调函数,反馈给客户(程序)去做一些相应的处理。ServletContextListener 它可以监听ServletContext 对象的创建和销毁。
ServletContext 对象在web 工程启动的时候创建,在web 工程停止的时候销毁。
监听到创建和销毁之后都会分别调用ServletContextListener 监听器的方法反馈。
使用ServletContextListener 监听器监听ServletContext 对象步骤如下:
1、编写一个类去实现ServletContextListener
2、实现其两个回调方法
3、到web.xml 中去配置监听器
1 | package listener; |
1 |
|