JSP 2.0(java server pages):html
EL 算法(Arithmetic)表达式:java
EL Expression | Result |
${1} | 1 |
${1 + 2} | 3 |
${1.2 + 2.3} | 3.5 |
${1.2E4 + 1.4} | 12001.4 |
${-4 - 2} | -6 |
${21 * 2} | 42 |
${3/4} | 0.75 |
${3 div 4} | 0.75 |
${3/0} | Infinity |
${10%4} | 2 |
${10 mod 4} | 2 |
${(1==2) ? 3 : 4} | 4 |
EL 比较(comparions):web
Numberic: 算法
EL Expression | Result |
${1 < 2} | true |
${1 lt 2} | true |
${1 > (4/2)} | false |
${1 gt (4/2)} | false |
${4.0 >= 3} | true |
${4.0 ge 3} | true |
${4 <= 3} | false |
${4 le 3} | false |
${100.0 == 100} | true |
${100.0 eq 100} | true |
${(10*10) != 100} | false |
${(10*10) ne 100} | false |
Alphabeticexpress
EL Expression | Result |
${'a' < 'b'} | true |
${'hip' > 'hit'} | false |
${'4' > 3} | true |
EL implicit object(内置对象): 浏览器
其中application、request、session,pageContext的获取方式都为 ${***}也可以使用${***Scope.****}加快访问。缓存
而param为页面参数对象,所以获取方式为 param['****']或者为param.***,多常见jsp页面之间自身传值或刷新时,参数获取。安全
※因jsp大多放在web-inf下,所以没法直接被访问。所以这种jsp(必须放在web-inf外)直接调用的方式不是不少见。服务器
<input type="text" name="foo" value="${param.foo}" /> <a href="elLearn.jsp?foo=zhangsan">刷新本身</a>
header信息的展现 header['']或者为header.***:cookie
${header.user-name}
${header.host}
cookie的获取方式为: ${cookie.****.name} ${cookie.****.value}
<% Cookie cok = new Cookie("secondName", "wangliwei"); cok.setDomain("/"); response.addCookie(cok); %> ${cookie.secondName.name} ${cookie.secondName.value}
JSP 运行在服务端的语言,以 Java 语言做为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序。是一种动态网页开发技术。
JSP 基于Java Servlet API,以<% ... %>开头结束。
request 请求对象 类型 javax.servlet.ServletRequest 做用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 做用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 做用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 做用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 做用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 做用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 做用域 Page
page 页面对象 类型 javax.lang.Object 做用域 Page
exception 例外对象 类型 javax.lang.Throwable 做用域 page
获取当前访问路径:${pageContext.requext.contextPath}
JSP指令用来设置与整个JSP页面相关的属性。
<%@ directive attribute="value" %>
指令有3种:
指令 | 描述 | |
---|---|---|
<%@ page ... %> | Page指令为容器提供当前页面的使用说明。一个JSP页面能够包含多个page指令。 定义页面的依赖属性,好比脚本语言、error页面、缓存需求等等 |
|
<%@ include ... %> | 包含其余文件,这种是静态引入,即引入的jsp的路径必须指定好。jsp在造成时会将此include的jsp页面copy进来, 所以被引入的页面的tag-lib的prefix不能和当前页面重复。<c:important 和 <jsp:include 为动态引入, 即各自编译本身的jsp页面,在展示时再合为一体。适合将一个大的页面切割成几个部分,方便维护。 <%@ include file="./myJstl.jsp" %> |
|
<%@ taglib ... %> | 引入标签库的定义,能够是自定义标签参见 JSTL-tagLib |
page 指令属性:
属性 | 描述 |
---|---|
buffer | 指定out对象使用缓冲区的大小 |
autoFlush | 控制out对象的 缓存区 |
contentType | 指定当前JSP页面的MIME类型和字符编码 |
errorPage | 指定当JSP页面发生异常时须要转向的错误处理页面 |
isErrorPage | 指定当前页面是否能够做为另外一个JSP页面的错误处理页面 |
extends | 指定servlet从哪个类继承 |
import | 导入要使用的Java类,做为当前使用类的引用类,注意类之间的使用顺序 <%@ page import="bean.Book" %> |
info | 定义JSP页面的描述信息 |
isThreadSafe | 指定对JSP页面的访问是否为线程安全 |
language | 定义JSP页面所用的脚本语言,默认是Java |
session | 指定JSP页面是否使用session |
isELIgnored | 指定是否执行EL表达式 |
isScriptingEnabled | 肯定脚本元素可否被使用 |
写法以下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page errorPage="error.jsp" %> <%@ page import="bean.Book" %> <% Book book = new Book(1234,"java","Denny","java content"); out.print(book.getBookAuthor()); %>
名称(Xml格式) | 描述 | 对等 | Example |
<jsp:scriptlet> |
代码片断 | <%****%> | <% int a=5; %> |
<jsp:declaration> |
声明变量,页面全局用 | <%!****%> | <%! int i = 0; %> |
<jsp:expression> |
表达式,用于输出内容 | <%=****%> | <%= i %> |
<%-- 注释 --%> | 注释,在html页面看不到 | <!--注释 --> html注释,页面上能够看到 | |
全部的动做要素都有两个属性:id属性和scope属性。
id属性是动做元素的惟一标识,能够在JSP页面中引用。动做元素建立的id值能够经过PageContext来调用。
该属性用于识别动做元素的生命周期。 id属性和scope属性有直接关系,scope属性定义了相关联id对象的寿命。
scope属性有四个可能的值: (a) page, (b)request, (c)session, 和 (d) application
<jsp:action_name attribute="value" />
语法 | 描述 | Example |
---|---|---|
jsp:include | 在页面被请求的时候引入一个文件。 | <jsp:include page="date.jsp" flush="true" /> |
jsp:useBean | 寻找或者实例化一个JavaBean。 | <jsp:useBean id="books" class="bean.Book" /> <% books.setBookDes("java is content"); %> <jsp:setProperty property="bookAuthor" value="DennyZhao" name="books"></jsp:setProperty> <jsp:getProperty property="bookAuthor" name="books" /> <jsp:getProperty property="bookDes" name="books" /> |
jsp:setProperty | 设置JavaBean的属性。 | |
jsp:getProperty | 输出某个JavaBean的属性。 | |
jsp:forward | 把请求转到一个新的页面。 | <jsp:forward page="**" /> 仅可定向到项目内 至关于 <c:redirect url="***"/> 可定向到项目外连接 |
jsp:plugin | 根据浏览器类型为Java插件生成OBJECT或EMBED标记。 | java插件引入java类,Java组件能够是一个applet或一个JavaBeanplugin,动做有多个对应HTML元素的属性用于格式化Java 组件。param元素可用于向Applet 或 Bean 传递参数。 用于java在浏览器嵌入applet。 |
jsp:element | 定义动态XML元素 | 至关于在html中自定义标签 |
jsp:attribute | 设置动态定义的XML元素属性。 | 定义元素属性。<jsp:element><jsp:attribute /></jsp:element> 至关于 <input type="text" |
jsp:body | 设置动态定义的XML元素内容。 | <jsp:element name="inputX" > |
jsp:text | 在JSP页面和文档中使用写入文本的模板 | 文本模板,内部只能放文本和el表达式其中el表达式中的<>要使用gt;lt来表示。 在新版本中已经去除了此属性。 |