下面代码演示的是JavaFX进程命令行参数的实例。大家可以参阅一下。
1.概述
JSP文件是通过三大指令,九大对象以及JSP表达式等与HTML语句结合形成的一个文件,其本质为Servlet。简单来说,即Java代码+HTML语句。
2.运行原理
每个JSP页面被访问时,即被JSP引擎翻译为一个Servlet源程序,该源程序再被编译成Servlet的class类文件。之后的执行流程与普通Servlet的执行一致。Servlet引擎将class类文件装载并翻译执行。
3.九大对象
JSP有9个内置对象,不需要声明就可以使用。
(1)request:实际就是HTTPServletRequest。
(2)response:实际就是HTTPServletResponse。
(3)pageContext:代表当前JSP页面,几乎包含了当前JSP页面的所以信息,也可以从该对象中获取其它八个对象。
(4)session:代表浏览器和服务器的一次会话,是HttpSession的一个对象。
(5)out:可以直接通过该对象的方法在页面输出文字信息或者HTML代码。
(6)application:代表当前WEB应用,是ServletContext对象。
(7)exception:在声明了后可以通过该对象输出异常信息。
(8)config:当前JSP对应的Servlet的ServletConfig对象,若要访问当前JSP的配置参数,需要映射访问才可以。
(9)page:指向当前Jsp对应的Servlet对象的引用 ,但是为object类型。
其中最为常用也最为重要的四个对象按作用域范围如下:
pageContext:作用域为当前JSP页面。通过引入的文件中的变量等当前页面也可以访问。但是通过pageContext.include("file")引入文件的变量和参数并不能直接在当前页面使用和修改,该方法的实质是将file中的内容原封不动地添加在当前页面,可以理解为将HTML页面直接拼接在该位置。
request:作用范围在请求转发的过程中一直有效。
session:作用域为浏览器和服务器的一次会话。直观表现在浏览器的一次打开与关闭。应用案例如购物网站中购物车的实现。
application:当前应用装载在服务器中时有效。该应用从服务器卸载或者重新装载,以及服务器关闭等都会导致该对象失效。应用案例如网站统计访问人数。
和属性相关的方法:
Object getAttribute(String name)获取指定的属性
Enumerration getAttributeNames()获取所有属性组成的Enumeration对象
removeAttribute(String name)移除指定的属性
setAttribute(String name, Object o)设置属性
4.三大指令
(1)page:声明页面信息或导入内容
① 导入文件所需的jar包。外部添加的jar包一般存放在Web项目下 WEB-INF\lib、
<%@ page import="java.util.*"%>
② 关闭session,session默认打开。
<%@ pagesession="false" %>
③ 当前页面出错则跳转到"file"页面。并且该跳转方式为请求转发。
<%@ page errorPage="file"%>
④ 上文的"file"页面,可以对页面错误做处理或说明,可以配合exception对象使用。
<%@ page isErrorPage="true"%>
⑤ 当前JSP页面的字符编码(JSP文件编码)
<%@ page pageEncoding="utf-8"%>
⑥ 当前JSP页面的响应类型(服务器发送给浏览器的内容编码)
<%@ page contentType="text/html; charset=utf-8"%>
⑦ 是否使用EL表达式,通常为false
<%@ page isELInored="false" %>
⑧ 指定JSP页面的信息,可以使用getServletInfo()方法获取到该字符串
<%@page info="this JSP info" %>
(2)include指令:将其它文件包含进来与当前页面进行合并。这类文件通常包括文本、JSP或其他格式的文件。
① 静态引入:通知JSP引擎在翻译JSP页面时,将其他源文件合并到当前JSP页面转换成的Servlet源文件中。两个源文件合并为一个Servlet源文件。"file"为相对路径。
<%@ include page="file"%>
②动态引入:该句被执行时程序通过请求转发跳转到"file",执行当中的内容之后再返回执行当前页面的剩余部分,实际是两个Servlet源文件
<jsp:include page="file"></jsp:include>
(3) taglib: 能够让用户根据需求自定义新的标签,便于功能的实现,但因此也导致了代码易读性不高。
5.其它
(1) JSP表达式:可以直接将表达式中的内容显示在浏览器中
<%= "Hello World!" %>
(2) 声明函数
<%! pulic void function(){ out.println("Hello World!"); }%>
(3)注释
<!-- 客户端注释,客户端查看源可以看到 -->
<%-- 服务端注释,客户端查看不到 --%>