[Jweb] JSP 编程 00 -Declaration- Scriptlet-表达式-Directive (推出原因 : Servlet写标签非常麻烦!)

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("你好!");
%>
原文地址:https://www.cnblogs.com/robbychan/p/3786866.html