这里写目录标题
JSP
什么是jsp,它有什么用?
jsp的全换是java server pages,Java的服务器页面。
jsp的主要作用是代替 Servlet程序回传 html页面的数据。
因为servlet程序回传 html页面数据是一件非常繁锁的事情。开发成本和维护成本都极高。
通俗版本:每次不可能都写< head></>一堆,所以需要JSP
jsp 如何访问:
jsp页面和 html页面一样,都是存放在web目录下。访问也跟访问html页面一样。
比如:
在web目录下有如下的文件:web目录
l a.html页面 访问地址是 http://ip:port/工程路径/a.html
b.jsp 页面 访问地址是 http://ip:port/工程路径/b.jsp
2.jsp的本质是什么。
jsp页面本质上是一个 servlet程序。
jsp头部的page指令
jsp的page指令可以修改jsp页面中一些重要的属性,或者行为。
<%@page contentType="text/htm1;charset=UTF-8" language="java”%>
i.language属性 表示jsp翻译后是什么语言文件。暂时只支持javao
ii. contentType属性 表示jsp返回的数据类型是什么。也是源码中response.setContentType(参数值
iii.pageEncoding属性 表示当前jsp页面文件本身的字符集。
iv. import属性 跟java源代码中一样。用于导包,导类。
v. autoFlush属性 设置当out输出流缓冲区满了之后,是否自动刷新冲级区。默认值是truel
vi. buffer属性 设置默认缓冲区的大小为8kb
viii. isErrorPage属性 设置当前jsp页面是否是错误信息页面。默认是false。如果是true可以获取异常信息。
ix. session属性 设置访问当前jsp页面,是否会创建HttpSession对象。默认是 true。
x.extends属性 设置jsp翻译出来的java类默认继承谁。
jsp常用脚本
<%! xxxx %>
作用:可以给 jsp翻译出来的java类定义属性和方法甚至是静态代码块。内部类等。
<%!
{
初始化代码块;
}
%>
<%!
static{
初始化代码块;
}
%>
<%!
HashMap
List<String>
%>
表达式脚本
<%= xxxx %>
用于输出数据
<%= 123%>
代码脚本
<% java语句 %>
比如if、for循环
代码脚本的特点是:
1、代码脚本翻译之后都在_jspService方法中
2、代码脚本由于翻译到_jspService()方法中,所以在_jspService()方法中的现有对象都可以直接使用。
3、还可以由多个代码脚本块组合完成一个完整的java语句。
4、代码脚本还可以和表达式脚本一起组合使用。在jsp页面上输出数据
三种注释
Html注释
java注释
jsp注释
jsp九大内置对象
jsp四大域对象
jsp中的out输出和response.getWriter输出的区别
jsp常用标签
jsp静态包含
一个网站每个网页下面,都有固定的一些** 信息页脚**,就需要一份源文件,一次修改,处处修改。
<%@ include file = "/include /...jsp"%>
jsp动态包含
类似于静态
<jsp:include page="/include/...jsp"></jsp:include>
底层原理不一样:
标签-转发
JSP请求与转发
Listener监听器
定义
是:一组接口 8个
- 1、Listener’监听器它是JavaWeb的三大组件之一。JavaWeb的三大组件分别是:Servlet程序、Filter过滤器、Listener监听器。
- 2、Listener它是JavaEE的规范,就是接口
- 3、监听器的作用是,监听某种事物的变化。然后通过回调函数,反馈给客户(程序〉去做一些相应的处理。
ServletContextListener 监听器
ServletContextListener 监听器使用步骤
如何使用servletContextListener监听器监听servletContext对象。
使用步骤如下:
- 1、编写一个类去实现ServletContextListener
- 2、实现其两个回调方法
- 3、到web.xml中去配置监听器
<listener>
<listener-class>Listener.MyLintenserImp</listener-class>
</listener>
在xml
文件中配置
public class MyLintenserImp implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println(
"监听器被创建!"
);
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println(
"监听器被销毁!"
);
}
}
创建类、并且实现