Know@01
JSP简介
(1), JSP---Java Server Pages
(2), 拥有 servlet 的特性与优点(本身就是一个 servlet )
(3), 直接在 HTML 中内嵌 JSP 代码
(4), JSP 程序由 JSP Engine 先将它转换成 Servlet 代码,接着将它编译成类文件载入执行
只有当客户端第一次请求 JSP 时,才需要将其转换、编译
JSP中可直接嵌入 java 代码。
http://127.0.0.1:8888/docs/
http://127.0.0.1:8888/docs/api/index.html 联网才能看到文档
JSP 看起来不像 html, 所以推出 JSTL(jsp2.0) - JSF(jsp3.0), sun一向情愿的想法。
Know@02
JSP编程—基本语法
JSP传统语法
Declaration
Scriptlet
Expressionz
Comment
Directives
Action动作指令
内置对象
(1), JSP编程---Declaration
基本语法 : <%! %>
说明:在此声明的变量、方法都会被保留成唯一的一份,直到 JSP 程序停止执行.(成员变量,不是局部)
例 : <%!
int i;
public void setName(){… …}
%>
示例程序 : AccessCounts.jsp
(2), Scriptlet
基本语法 :<% 程序代码区 %>
可以放入任何的 Java 程序代码
例: <%
for (int i = 0; i < 10; i++) {
… …
}
%>
其他 : 程序猿经常与 IE 缓存做斗争。
html的注释,无法阻止java jsp代码<%%>的执行,但是不会在html的浏览器中显示
<%%> 是在服务端执行的java代码。
HttpJspBase
(3), 表达式
基本语法 : <%= … … %>
=后面必须是字符串变量或者可以被转换成字符串的表达式
不需要以;结束
只有一行
例:
<%=“hello world”%>
<%=i+1%>
<%=request.getParameter(“name”)%> 示例程序 : Expressions.jsp
(4), Directive (编译指令)相当于在编译期间的命令
格式 : <%@Directive 属性=“属性值”%>
常见的Directive:
*1, page
*2, include
*3, taglib
**1), Directive--page
指明与JSP Container 的沟通方式
基本格式:
<%@page language=“script language”| -- 默认就是 java
extends=“className”| -- 基本用不上
import=“importList”| -- 很好, 可以用
buffer=“none|kb size”| --none:不缓冲,默认8k
session=“true|false”| --是否可以使用session,默认true
autoFlush=“true|false” --缓冲器是否自动清除,默认true
isThreadSafe=“true|false”| --默认false(永远不要设成true)
errorPage=“errorPageUrl”|
isErrorPage=“true|false”|
contentType=“contentTyepInfo” | pageEncoding=“gb2312” 很好!
相当于这句话 (response.setContentType("text/html;charset=gb2312");)
%>
示例程序 : TestDirective.jsp
<%@page import="java.util.*" session="false"%>
<%@page contentType="text/html;charset=gb2312"%>
<%= new Date() %>
<%
out.println("你好!");
%>
JSP简介
(1), JSP---Java Server Pages
(2), 拥有 servlet 的特性与优点(本身就是一个 servlet )
(3), 直接在 HTML 中内嵌 JSP 代码
(4), JSP 程序由 JSP Engine 先将它转换成 Servlet 代码,接着将它编译成类文件载入执行
只有当客户端第一次请求 JSP 时,才需要将其转换、编译
JSP中可直接嵌入 java 代码。
http://127.0.0.1:8888/docs/
http://127.0.0.1:8888/docs/api/index.html 联网才能看到文档
JSP 看起来不像 html, 所以推出 JSTL(jsp2.0) - JSF(jsp3.0), sun一向情愿的想法。
Know@02
JSP编程—基本语法
JSP传统语法
Declaration
Scriptlet
Expressionz
Comment
Directives
Action动作指令
内置对象
(1), JSP编程---Declaration
基本语法 : <%! %>
说明:在此声明的变量、方法都会被保留成唯一的一份,直到 JSP 程序停止执行.(成员变量,不是局部)
例 : <%!
int i;
public void setName(){… …}
%>
示例程序 : AccessCounts.jsp
(2), Scriptlet
基本语法 :<% 程序代码区 %>
可以放入任何的 Java 程序代码
例: <%
for (int i = 0; i < 10; i++) {
… …
}
%>
其他 : 程序猿经常与 IE 缓存做斗争。
html的注释,无法阻止java jsp代码<%%>的执行,但是不会在html的浏览器中显示
<%%> 是在服务端执行的java代码。
HttpJspBase
(3), 表达式
基本语法 : <%= … … %>
=后面必须是字符串变量或者可以被转换成字符串的表达式
不需要以;结束
只有一行
例:
<%=“hello world”%>
<%=i+1%>
<%=request.getParameter(“name”)%> 示例程序 : Expressions.jsp
(4), Directive (编译指令)相当于在编译期间的命令
格式 : <%@Directive 属性=“属性值”%>
常见的Directive:
*1, page
*2, include
*3, taglib
**1), Directive--page
指明与JSP Container 的沟通方式
基本格式:
<%@page language=“script language”| -- 默认就是 java
extends=“className”| -- 基本用不上
import=“importList”| -- 很好, 可以用
buffer=“none|kb size”| --none:不缓冲,默认8k
session=“true|false”| --是否可以使用session,默认true
autoFlush=“true|false” --缓冲器是否自动清除,默认true
isThreadSafe=“true|false”| --默认false(永远不要设成true)
errorPage=“errorPageUrl”|
isErrorPage=“true|false”|
contentType=“contentTyepInfo” | pageEncoding=“gb2312” 很好!
相当于这句话 (response.setContentType("text/html;charset=gb2312");)
%>
示例程序 : TestDirective.jsp
<%@page import="java.util.*" session="false"%>
<%@page contentType="text/html;charset=gb2312"%>
<%= new Date() %>
<%
out.println("你好!");
%>