JSP -java service pages
jsp的运行机制:
1客户端(请求jsp页面)------->JSP页面(转换为java源文件)------->Selvet文件(.java) (编译成相应的字节码文件也就是后缀名是.class的文件)------>(加载Servlet类创建Servlet实例)Servlet------->(实例调用相应的方法完成请求处理,把html格式的相应对象返回给客户端)------>客户端
JSP注释:
HTML注释:<!-- 注释内容 -->
JSP注释:<%-- 注释内容 --%>
JSP指令:<%@指令标记 [属性="值" 属性="值"]%>
jsp指令在整个页面范围内有效
page指令:页面指令,用来定义jsp页面的全局属性,该配置会作用于整个jsp页面,page指令用来定义所使用的脚本语言,导入指定的类及软件包
语法格式:<%@ page 属性1="属性值1" 属性2="属性值2" .......%>
include指令:是文件加载指令,用于在jsp文件中插入一个包含文本或代码的文件。需要注意的是如果被插入的文件本身发生了变化,那么包含这个文件的jsp文件需要被重新编译
语法格式:<%@ include file="被包含文件的地址" %>
taglib指令:用来引用标签库,并设置标签库的前缀。
语法各司:<%@ taglib uri="tagLibraryURI" prefix="taglibPrefix"%>其中uri用来指定标签文件或标签库的存放位置,prefix属性则用来指定该标签库所使用的 前缀
JSP脚本元素:
脚本元素是jsp中使用最频繁的元素,通过jsp脚本可以将java代码嵌入到html页面中。
JSP脚本元素主要包含如下三种类型:jsp声明语句 、 jsp表达式 、jsp Scriptlets
jsp的声明语句用于声明变量和方法。声明语句的语法格式:<%!变量或方法定义%>。使用jsp声明语句声明的变量将来会转换为servlet类中成员变量。这些变量在整个jsp页面内有效。因此也被称为jsp页面的成员变量
jsp表达式:在jsp中可以在<%=%>标记之间插入一个表达式,这个表达式必须能够求值,并且计算结果会以字符串形式发送到客户端显示出来。jsp表达式的值回作为html页面的内容。如果表达式为字符串会直接显示字符串,如果不是字符串会显示其计算结果。语法格式:<%=表达式%>
JSP Scriptlet是一段java代码段,当需要使用java实现一些复杂的操作 或控制时,jsp表达式往往不能满足需求,此时需要用到JSP Scriptlet。
在JSP Scriptlet中声明的变量是jsp页面的局部变量,调用JSP Scriptlet时,会为局部变量分配内存空间,调用结束后,释放局部变量占用的内存空间。
语法格式:<% java代码%> JSP Scriptlet 中可以包含变量方法表达式等内容。
jsp动作元素
<jsp:include>动作元素提供了一种在jsp包含页面的方式,既可以包含静态文件,也可以包含动态文件。
jsp动态包含某个文件,指的是当jsp页面运行时才会载入该文件。
<jsp:forward page="转向页面的url地址">是一种用于页面重定向的元素,他的作用是停止当前jsp页面的执行,而将客户端请求转交给另一个jsp页面。
注意:转发与重定向的区别,转发是在服务器端进行的,不会引起客户端的二次请求,因此浏览器的地址栏不会发生任何变化,效率比重定向要高。
<jsp:param name="参数名字" value=“指定给param的参数值”>是一种提供参数的附属动作元素,它以“名-值”对的形式,为其它动作元素提供附加信息。
<jsp:useBean>动作元素,用来装载一个将在jsp页面中使用的javaBean。
<jsp:setProperty>动作元素,获取大bean实例之后,便可以利用<jsp:setProperty>动作元素,来设置或修改Bean中的属性值。
<jsp:getProperty>动作元素,用来提取Bean属性的值, 并将其转换为字符串,然后输出。
servlet的生命周期
web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。
Jsp内置对象(9中内置对象)
request用于封装客户端的请求信息,请求是创建,请求后销毁。