JSP学习
什么是JSP
jsp全称是 java server pages。Java的服务器页面
jsp的主要作用是代替Servlet程序回传HTML页面的数据
因为Servlet程序回传HTML页面数据是一件非常繁琐的事情,开发成本极高。
jsp的本质
jsp的本质就是一个servlet程序
当我们第一次访问jsp页面的时候。tomcat服务器会帮我们把jsp页面翻译成为一个Java源文件。并且对它进行编译成.class的字节码文件。
<%@ page contentType="text/html;charset=UTF-8" language="java" %> // jsp的配置指令,可以修改jsp页面中一些重要的属性,或者行为。
language属性 表示jsp翻译后是什么语言文件。只支持java
contentType属性 表示jsp返回的数据数据类型是什么。也只源码中response.setContentType()参数的值
autoFlush属性 设置当out输出流缓冲区满了之后,是否自动刷新缓冲区。默认是true
buffer属性 设置out缓冲区大小。默认是8k
errorPage属性 设置当jsp页面运行时出错,自动跳转去的错误页面路径
isErrorPage属性 设置本页面是不是异常页面
session属性 设置访问当前jsp页面,是否会会创建HttpSession对象。默认是true
jsp中的常用脚本
声明脚本
<%! 脚本内容 %> // 声明式脚本
<%= 表达式 %>
表达式脚本的作用是在jsp页面上输出数据
表达式脚本的特点,
-
所有式表达是脚本都会被翻译到_jspService()方法中
-
表达是脚本都被翻译为outprint输出到页面上
-
由于表达式脚本翻译的内容都在jspService方法中所以jspService方法中的对象都可以直接使用
代码脚本
<% Java语句 %>
代码脚本特点
-
代码脚本都会被翻译到_jspService()方法中
-
代码脚本翻译的内容都在jspService方法中所以jspService方法中的对象都可以直接使用
-
代码脚本还可以由多个代码脚本块组合完成一个java语句
jsp中的三种注释
-
html注释
-
-
jsp注释
<%-- --%>jsp中的四个域对象
PageContext 当前jsp页面范围有效
Request 一次请求有效
session 一个会话有效
application 整个web工程有效(只要工程不停,数据都在)
域对象是可以存储数据的对象,四个域对象功能一样,不同的是他们存取对象范围不同
jsp中out输出和response.getWriter输出的区别
response表示响应
-
执行out.flush()操作,会把out缓冲区的数据追加写入到response缓冲区的末尾
-
会执行response的刷新操作,将全部数据写给客户端
由于jsp翻译后,底层源代码都是使用out输出,所以一般情况下都用out输出,避免打乱顺序
-
jsp常用标签
静态包含
<%@ include file="" %>
-
-
静态包含其实是把被包含的jsp页面的代码拷贝到包含的位置执行输出
<jsp:include page=""></jsp:include>
动态包含也可以像静态包含一样,把被包含内容执行输出到包含位置
特点:
-
动态包含会把jsp页面也翻译成java代码
-
动态包含底层代码使用调用代码执行输出
-
动态包含还可以传递参数
请求转发
<jsp:forward page=""></jsp:forward>

浙公网安备 33010602011771号