1:JSP基本语法
- Html注释
两种注释,一种是可见的,标准的HTML注释。
<!-- 这里三注释-->
另一种是对客户端隐藏的,也就是再浏览器中查看源代码的时候不会显示。
<%-- 这里是注释 --%>
- 声明
用来插入servlet类准哦概念的方法和成员变量。语法如下:
<% Java Code %>
PS:声明必须以分号结尾,一个声明仅在当前页面有效。
- 表达式
JSP计算表达式并且将计算结果输出到页面上。语法如下:
<%= Java Expression %>
例如输入日期:
<%= new java.util.Date() %>
PS:表达式结尾没有分号,前面有等号。
- 脚本段
插入复杂的Java代码。语法如下:
<% java code %>
PS:可以和html代码混合在一起。
2:JSP核心元素
JSP的核心元素可以用6 3 8 来概括。具体说来就是6个Action标签。3个Directive命令。8个内置对象。
JSP动作可以动态的插入文件、重用JavaBean组件、把用户重新定向到另外的页面、为java插件生成HTML代码。
- Jsp:useBean 寻找或者实例化一个JavaBean.
<jsp:useBean id="name" class="package.class" />
意思是创建一个class指定类的实例,给这个实例取名叫“name"
- Jsp:getProperty 提取指定bean属性的值,转换成字符串,输出。
<jsp:getProperty name="myName" property="someProperty" />
提取bean名称叫myName的bean的someProperty这个属性的值
- Jsp:setProperty 同getProperty对象,这个是写属性,那个是读属性。
<jsp:setProperty name="myName" property="someProperty" />
给bean名称为myName的bean的属性someProperty赋值
- Jsp:include 在页面被请求时引入一个文件
<jsp:include page="relative Url" flush="true" />
将relative URL指定的文件引入当前请求页面的文件
- Jsp:forward 把请求转换到另外一个文件可以三jsp或者servlet
<jsp:forward page={"相对URL值L" 或者 "<%=表达式%>} />
将当前请求request发送到URL指定的文件中。
- Jsp:plugin 根据浏览器类型为java插件生成OBJECT或EMBED标记。
下载运行java插件时运行
- 3个Directives行为命令
这三个命令与Action命令不同。这个三jsp编译成servlet文件时候执行的。
<%
@pagelanguage=“script language”|
extends=“className”|
import=“importList”|
buffer=“none|kbsize”| --none:不缓冲,默认8k
session=“true|false”| --是否可以使用session,默认true
autoFlush=“true|false” --缓冲器是否自动清除,默认true
isThreadSafe=“true|false”| --默认false(永远不要设成true)
info=“infoText”| --任何字符
errorPage=“errorPageUrl”|
isErrorPage=“true|false”|
contentType=“contentTyepInfo”|
pageEncoding=“gb2312”
%>
例子
<%@page import="java.util.*, java.lang.*" %>
<%@page buffer="5kb" autoFlush="false" %>
<%@page errorPage="error.jsp" %>
描述
<%@page %>指令作用于整个JSP页面,同样包括静态的包含文件。但是<% @ page %>指令不能作用于动态的包含文件,比如<jsp:include>
你可以在一个页面中用上多个<%@ page%>指令,但是其中的属性只能用一次,不过也有个例外,那就是import属性。因为import属性和Java中的import语句差不多(参照JavaLanguage),所以你就能多用此属性几次了.
无论你把<%@ page%>指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性,以及好的编程习惯,最好还是把它放在JSP文件的顶部.
- Include 指令 用于jsp转换成servlet时引入其他文件。这个和前面提到的Action中的include不同前面的是页面请求时引入,这个是编译成servlet时引入。
<% @ include file="relative url" %>
- Taglib指令
定义标签库以及自定义标签的前缀。
<%@ taglib url="URIToTagLibrary" prefix="tagPrefix" %>
- 8个内置对象
这8个内置对象就是我们常用到的一些jsp应用的抽象,封装。就相当于我们程序中的类一样。只不过这个是系统已经提供的类。其中很多对象与servlet的对象完全相同。
- Request 对象封装了客户端到服务器的数据。这些数据有客户提交的数据,也有客户端的一些配置信息。比如客户的IP,主机名等。通过getAttribute方法和setAttribute方法页面获得服务器的数据和向request添加数据。可以利用getParameter查看请求参数。也可以查看请求类型,请求的HTTP头等。
- Respose 对象从服务器到客户端的响应封装。用来将服务器的内容写入客户端。常用的是getWriter方法。在客户端打印数据。
- Out 对象 用来向客户端打印数据。它就像是response的一支笔。执行具体的打印动作。
- Session 对象提供服务器和客户端的会话。一个session就像是一次对话。对话的内容是用户的状态和一些认证信息。
- Application 对象。就是一个公用的会话。与session相对。session是每个用户独有的。Application 是这些用户共享的一些数据。
- Config 提供servlet的一些配置信息。仅在当前页有效。
- pageContext 提供存取所有关于JSP程序执行时所需的属性和方法。如session application config out。有效范围为当前页。这个就像是这些对象的一个大容器。
- Page 相当于java类中的this。用处不大。表示当前页面。