web jsp
概述
简单概述
- JSP(Java Servlet Pages)
- 建立在Servlet规范之上的动态网页开发技术
- 在JSP文件中,html和java代码共存。Html代码来实现网页中静态内容的显示,Java代码来实现网页中动态内容的显示
- jsp只是在原有的html文件中加入了一些具有java特点的代码,这些代码具有其独有的特点,称为jsp的语法元素
和html的区别
- 后缀名是jsp,而不是html
- 比html多一条page指令
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
- jsp文件必须发布到web容器中的某个web应用才能查看效果。
运行原理
jsp的工作模式就是请求/响应的工作模式。
- 客户端发出HTTP请求,请求访问JSP文件。
- JSP引擎(容器,本身也是一个Servlet)把该JSP文件转换成一个Java Servlet源文件。只有在访问的时候,才编译,而不是在启动的时候
- 如果在转换过程中,发生语法错误,则中断转换,并将错误信息返回给客户端。
- 如果转换成功,则JSP引擎会将Servlet源文件编译成字节码文件。编译后的java和class文件,tomcat的work目录下
- JSP就是Servlet
脚本元素
JSP Scriptlets
- 基本概述
- JSP Scriptlets 就是 代码段。当需要java完成一些比较复杂的逻辑的时候,可以使用 JSP Scriptlets
- 语法格式
- <% java代码(变量、方法、语句等)%>
- 注意事项
- 在 JSP Scriptlets 中声明的遍历时JSP页面的局部变量。
- 调用时分配空间,调用结束释放空间
JSP 声明语句
- 基本概述
- JSP 声明语句用于声明变量和方法
- 语法格式
- <%! 定义的变量和方法 %>
- 注意事项
- 声明语句中的代码会被编译在Servlet的_jspService()方法之外
- 声明语句中声明的代码都是被编译成成员变量、成员方法、静态变量、静态方法
- 一个JSP页面中可以有多个声明语句,一个声明语句可以是不完整的,但是多个声明语句组合起来必须是完整的。
JSP 表达式
- 基本概述
- JSP表达式用于将程序数据输出到客户端
- 语法格式
- <%= expression表达式 %>
- 注意事项
- 只能是表达式,不能插入语句
- <%和=是完整的,不能有空格
- 表达式中的变量或者表达式后面不可以加分号
JSP注释
- <%-- 注释信息 --%>
- 在编译成servlet时,会自动过滤掉注释信息;但是其页面的html注释不会被过滤掉
JSP指令
为了设置JSP页面的一些信息,SUN公司提供了一些JSP指令,总共三种:page、include、taglib。
page
通过page指令来确定页面的编码方式、语言等。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
page 常用指令:https://www.cnblogs.com/sharpest/p/10068832.html
- 除import属性外,其他属性只能出现一次
- page指令属性名称区分大小写
- page指令对整个页面有效,与位置无关(习惯上写在第一行)
include
通过include指令来让一些静态文件(html、txt)等嵌入jsp页面
<%@ include file="被包含的文件地址" %>
- include指令只有一个file属性
- 被引入的文件必须遵循jsp语法
taglib
用于页面中引入标签库
JSP内置对象
为了JSP方便,JSP2.0规范了9个隐式对象
- 通过pageContext对象可以获取其他八个内置对象
- pageContext的作用范围有4个值,寻找其属性时,可指定;如果没有制定,就会从小往大获取。
- JSP的四个域