`
Luob.
  • 浏览: 1592502 次
  • 来自: 上海
社区版块
存档分类
最新评论

JSP 的脚本,指令,动作

    博客分类:
  • JSP
阅读更多
JSP 脚本元素
  表达式:<%= xx%>
  Scriptlet:<% xxx %>
  声明  :<%!xxx %>  


表达式 的概念
1.是对数据的显示,系统将其对作为一个值进行计算并显示
2.不能以 分号 " ; " 结尾
3.表达式的值 直接嵌入到html页面即可以直接在浏览器中输入结果

<body>
    <h1>JSP 表达式</h1>
    <b>pi的值</b><%=Math.PI %>   <br/> 
    <b>110,119中最大的值</b><%=Math.max(110,119)%>   <br/>  
    <b>110,119中最小的值</b><%=Math.min(110,119)%>   <br/> 
    <b>3+2-5的值</b><%=3+2-5%>   <br/> 
    <b>(3+2)==5的值</b><%=(3+2)==5%>   <br/>  
    <b>(3+2)!=5的值</b><%=(3+2)!=5%>   <br/>   
  </body>


JSP ScriptLet
1.就是在JSP页面嵌入 java脚本
2.JSP小脚本,被转换成servlet中的方法,因此脚本中 不能定义方法.
3.JSP脚本中,可以声明变量,但是 局部变量,不能用 private,public等访问限定修饰符来修饰,也不能用static修饰

<body>
 <% 
    	String name="toy"; 
    	System.out.println(name); //打印到 控制台 去了哦!
    	
    	//打印到 页面中去
    	for(int i=1;i<10;i++){
    		for(int j=0;j<i;j++){
    			out.println(j);  //调用 jsp的 out对象  在页面上显示了哦
    		}
    		out.println("<br/>");
    	}
     %>
</body>


JSP 声明
1.就是在JSP中声明 java 的方法和 变量 (用于定义JSP代表Servlet的成员变量和方法名)
2.JSP的声明的变量 是针对所有的请求,且生命周期是整个WEB应用程序

<body>
<%!
      // 声明 servlet中的 成员变量和方法
        int numTimes=3;
        
        public String sayHello(String name){
           return "Hello  "+name+"!";
        }
      %>
       <br/>
      <%
         //每刷新页面一下  numTimes就会累加 这样说明是 成员变量
         //而且 说明 JSP (servlet) tomcat启动的时候  就只实例化一次 然后被缓存起来了 所以  这个变量 就会一直累加
      	out.println(numTimes);
      	numTimes++;
      	out.println("<br/>");
      	out.println(sayHello("admin"));
       %>
  </body>


JSP 的指令
1.page
2.include
3.taglib
语法为:
<%@ 指令名称  属性1="值1" .....%>


page 指令
1.用于设置JSP的属性
2.<%@ page contentType="text/html;charset=GBK" %>

language 定义要使用的脚本语言,如果在将来的JSP容器支持 多种语言可以使用它"java"
import定义以","分割的类或者包名的列表,就像通常在java代码中使用的import语句那样
pageEncoding指定JSP文件本身的字符集编码GBK
contentType定义JSP字符编码方法和JSP页面响应的MIME类型cha'tset=iso-8859-1
isErrorPage表示当前页面作为 错误页面true ,false
errorPage定义处理异常的JSP页面 error_url
isELIgnored设置是否忽略JSP页面中的EL表达式的执行 "fasle"
session指定这个页面是否参与一个HTTP会话 "true"
extends指定这个页面编译生成的servlet所继承的父类,或者所实现的接口 package.class
autoFlush当输出缓冲区即将溢出的时候,是否强制输出缓冲区的内容,true:正常输出,false:在buff移除的时候出现一个异常 "true"

include 指令
1.用于在运行时将html 或者 JSP 嵌入到另一个 JSP 页面
2.先合并,再编译

<body>
  <%@ include file="/head.jsp" %>	
       <%=basePath%><br/>
       <b>嵌套的页面中不能 在 脚本中 定义 父页面 相同的 变量 否则会报错</b>
       <b>嵌套的页面 中能用父页面中的变量</b>
       <b>父页面中可以 用 子页面中的变量</b>
</body>


taglib 指令
1.可以让JSP页面使用 标签
2.是在JSP页面中,将标签描述符文件引用到该页面中,并且 设置前缀,利用前缀 使用标签文件中的标签

<body>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>

</body>


JSP 的动作
JSP 动作的介绍
在该JSP被翻译成Servlet源代码的过程中,当容器遇到标准动作元素时,就调用与之对应的Servlet的方法来替代它,所有标准动作元素的前面都有一个JSP前缀作为标记,一般形式如下:
<jsp:标签名 ...属性.../>

1.<jsp:userBean>:在JSP中定义使用一个JavaBean的实例
2.<jsp:setProperty>: 设置一个JavaBean的属性
3:<jsp:getProperty>:从JavaBean中获取一个属性值
4:<jsp:include>:在JSP页面包含一个外部的文件
5:<jsp:forward>:把到达的请求转发另一个页面进行处理
6:<jsp:param>:用于传递参数值
7:<jsp:plugin>:用户在指定的客户浏览器中插入插件的属性
8:<jsp:params>:用户向HTML页面的插件传递参数值
9:<jsp:fallback>:指定如何处理客户点不支持插件运行的情况
10<jsp:root>:
11<jsp:declaration>:
12<jsp:scriptlet>:
13<jsp:expression>:
14<jsp:text>:
15<jsp:output>:
16<jsp:attribute>:
17<jsp:body>:
18<jsp:element>:
19<jsp:invoke>:
20<jsp:doBody>:


JSP的标准动作的分类 6组
1.jsp中使用大JavaBean的标准动作<jsp:userBean>定义一个使用JavaBean,实例,ID属性定义实例名称,<jsp:getProperty> 从一个JavaBean中获取一个属性值,并将其添加到响应中;<jsp:setProperty> 设置一个JavaBean的属性

2.在jsp中包含其他jsp文件或者web资源的标准动作,<jsp:include> 在请求处理阶段包含来之一个Servlet或者jsp文件的响应,注意和include指令不同

3.将到达的请求 转发到另一个jsp页面或者web资源,以便进行下一步的操作的标准动作,<jsp:forward> 

4:在其他标准动作中间指定参数的标准动作,<jsp:param>对使用<jsp:include> 或者 <jsp:forward>传递到另一个Servlet和jsp页面请求添加一个传递参数


5.在客户端的页面嵌入java对象 (例如 applet,是运行在客户端的小java程序)的标准动作
<jsp:plugin>根据浏览器类型为java插件生成 Object或者 Embed标记 <jsp:params><jsp:fallback>

6.仅仅用户标记文件的标准动作
 <jsp:attribute>  <jsp:body> <jsp:invoke>  <jsp:dobody> <jsp:element> <jsp:text> <jsp:output>



<jsp:userBean>
 <jsp:useBean id=”name” class=”package.class” scope=”….” type=”…”/>
 id:给一个类实例取名并且作为整个JSP页面的唯一标记,如果需要创建一个新的JavaBean,这也是引用这个JavaBean的实例的名称

 class:javaBean组将的完整java类名,,一定要包括包名,如果容器没有找到指定的类实例,则会根据这个class属性指定的完整类名来创建一个新的javaBean的实例进行引用
 
  type:告诉容器这里的javaBean实例需要实现 一个Java接口或者一个 超类,class和type 必须选其中一个

  scope: 这个这个JavaBean的在那种上下文中可用,page(PageContext):在当前页面  request(ServletRequest):请求方法, session(httpSession)会话范围,appliaction 应用程序范围.


<jsp:setProperty>
  1:
 <jsp:userBean id="myName" ...>
    <jsp:setProperty name="myName" property="someProperty" .../>
 </jsp:userBean>

  2.
  <jsp:userBean id="myName" ...> 
  <jsp:setProperty name ="myName" property="somePropery" .../>

 name:是必须设置 知道是javaBean的名称

 property:必须的,指定对javaBean 的属性中那些值进行设置,有个特殊的用法 "* "表示在设置所有名字与javaBean 属性名称匹配的请求参数都被传递到相应属性的get方法
 
 value:指定属性的值
  
  param:这个属性 和value 不能同时使用,只能用一个, 如果都没有使用,就会为 使用javaBean中的默认值,如果使用property属性,容器就会把property指定的属性变量设置为param指定的请求的参数值.



<jsp:setProperty>
  name:表示javaNean在jsp中的标记
  property:表示提取javaBean中那个属性的值


  <jsp:userBean id="testBean" class="com.helloworld.SimpleBean">
     <jsp:setProperty name="testBean" property="message" value="Hello"/>
  </jsp:userBean>

  <h1>取值/h1>
  <jsp:getProperty name="testBean" property="message"/>

  <h1>重新赋值</h1> 
  <jsp:setProperty name="testBean" property="nessage" value="hello World" >

  <h1>使用EL表达式取值</h1> 
  ${testBean.message}


<jsp:include>
 <jsp:include page="...URL..." flush="true|false"/>
  
 <jsp:include page=" ...URL... flush="true|false">
   <jsp:param ..../>
 </jsp:include>
 


include指令 和include动作的差别
(有的称为 动态导入 和  静态导入)
1.语法不同 
  指令: <%@ include file="..url.." %>
  动作: <jsp:include page="..url" />

2. 编译合并顺序不同
  指令:先合并后在进行一起编译  (只有一个编译文件)
  动作:单独编译 然后合并 编译后的二进制文件 (会有多个编译文件)

3.变量的使用
  指令:不能定义 父页面的 同名变量 ,可以修改 和使用 父页面的变量,父页面也可以使用子页面的变量 
  动作:能定义 父页面的同名变量 ,不可以修改和使用 父页面的变量.父页面不能使用 子页面的变量

4.变量的作用域
  指令:会延长 父页面变量的生命周期 注意 变量的值的变化 
  动作:不会影响变量的作用域和值

5.编译报错
  指令:使用 父页面的变量的时候 子页面会报编译异常,页面前面会有 "红叉叉"(但是能正常使用,可以忽略)
  动作:不会有编译异常 


<jsp;forward>
 <jsp:forward page="/util/errorPage.jsp">  //一个相对的路径
 <jsp:forward page="<%=someJavaExpression%>">  // 一个 动态值
 


<jsp:param>
  一般与<jsp:include > 和<jsp:forward> 一起使用
 <body>
   <jsp:include page="date.jsp">
       <jsp:param name="" value=""/>
   </jsp:include> 
 </body>


<jsp:plugin>
  <jsp:plugin type=" ..applet 或者  javaBean " code=""  codebase="" archive=" ." >
  </jsp:plugin>

  type:用来指定 该插件是applet 或者 javaBean


<jsp:params>
<body>
   <jsp:plugin type="applet|JavaBean" code="">
     <jsp:params>
        <jsp:param name="" property=""  value=""/>
        <jsp:param name="" property=""  value=""/>
        <jsp:param name="" property=""  value=""/>
     </jsp:params>
   </jsp:plugin>
</body>


<jsp:fallback>
   <jsp:fallback>
      客户端不支持插件运行时候显示的 html和 jsp 代码  (只有客户端不支持的时候才能运行)
   </jsp:fallback>


修改jsp 中 tomcat 的标致 准备一个 .ico的图标
//在jsp 的 head 中 加入 

<link rel="Shortcut Icon" type="image/x-icon" href="${pageContext.request.contextPath}/images/favicon.ico"/>
2
2
分享到:
评论
2 楼 crazywen2011 2012-11-29  
标签啦……
1 楼 傲世凡尘 2012-11-29  
JSP中嵌入JAVA脚本?为什么还采用Model1

相关推荐

    02-JSP脚本元素指令及动作.ppt

    02-JSP脚本元素指令及动作.ppt

    jsp语法(jsp脚本元素、jsp指令和jsp动作)

    JSP脚本元素用于嵌入Java代码,这些代码最终会成为由JSP页面转换生成的Servlet的一部分。脚本元素主要包括以下三种格式: ##### 1. 声明格式 (`!code%&gt;`) 这种格式用于定义变量或方法,并且这些定义仅在当前页面中...

    Jsp脚本元素指令以及动作课后作业

    ### JSP脚本元素指令及动作知识点解析 #### 一、选择题解析 **1.1 关于jsp指令描述正确的是:** - **正确答案:A** - **解析:** JSP指令是用来设置JSP页面的一些特性或者行为的,它们以`开始,以`%&gt;`结束。例如`...

    jsp简单语法,servlet,JSP概述,JSP页面构成,注释,指令,脚本元素,动作元素,错误处理

    - **动作元素**:用于调用JSP组件,如`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:param&gt;`等。 **3. 注释** 在JSP中,可以使用HTML注释(`&lt;!-- ... --&gt;`)或Java注释(`//`, `/* ... */`)。Java注释在JSP被翻译成...

    JSP脚本指令

    ### JSP脚本指令详解 #### 一、脚本元素:连接Java与Web的桥梁 在JSP(Java Server Pages)技术中,脚本元素扮演着至关重要的角色,它们允许开发者将Java代码直接嵌入到网页中,实现动态内容的生成。主要包含三种...

    JSP指令与动作熟悉

    实验目的:掌握3种脚本、page和include指令、&lt;jsp:include&gt;和&lt;jsp:forward&gt;动作。 实验内容: 1. 编写一个页面片段top.jspf,作用是显示网站名称和日期(服务器时间)。显示内容如下: 作业3网站 今天是:2014-02-...

    实验2 JSP动作标记.pdf )

    为了完成实验,要求编写三个JSP页面,并且在实验过程中可能会用到JSP的基本语法,如EL表达式(Expression Language)和JSP脚本片段等来实现动态内容的展示和逻辑处理。此外,文件的读取操作可能需要了解Java I/O...

    JSP脚本元素、指令、内建对象

    主要介绍JSP的两种注释、三脚本、七动作、九内建对象

    JSP指令和脚本元素.ppt

    JSP 指令和脚本元素 JSP(JavaServer Pages)是一种将 Java 与 HTML 相结合的规范,由 Sun Microsystems 公司开发。JSP 是使用 Java 开发基于 Web 的应用程序不可或缺的部分,可以结合其他 Java 组件一起使用。 ...

    JSP基本语法指令和动作元素_couldzfw_JSP基本语法、指令和动作元素_

    在这个主题中,我们将深入探讨JSP的基本语法、指令和动作元素。 ### **一、JSP基本语法** 1. **脚本元素**: - **&lt;% %&gt;:** 这是Java脚本let区,用于编写Java表达式,它们会被Java编译器转换为等效的Java语句。 -...

    JavaWeb上机实验9 JSP脚本、指令与动作标记(二)

    搭建Java Web应用的开发环境即部署Tomcat服务器、用eclipse创建Server服务、构建Java Web项目、建立第一个JSP文件、 运行JSP文件。 第一个要点是掌握tomcat的安装和部署。在Windows系统上安装Tomcat相对简单,下载...

    JavaWeb上机实验8 JSP脚本、指令与动作标记(一)

    搭建Java Web应用的开发环境即部署Tomcat服务器、用eclipse创建Server服务、构建Java Web项目、建立第一个JSP文件、 运行JSP文件。 第一个要点是掌握tomcat的安装和部署。在Windows系统上安装Tomcat相对简单,下载...

    JSP脚本小总结

    ### JSP脚本小总结 #### 一、指令元素 指令元素是JSP页面中用于控制JSP容器行为的关键组成部分,这些指令告诉JSP引擎如何处理特定页面。 1. **page指令** - `import`:指定在当前JSP页面中可以使用的类或包。 `...

    对初学者非常有帮助,JSP脚本技术概述

    - JSP页面主要由三部分组成:HTML标记、JSP指令(Directives)和JSP脚本元素。HTML标记用于定义页面的布局和样式,JSP指令用于配置页面行为,而JSP脚本元素则包含了实际的Java代码。 2. **JSP脚本元素** - JSP...

    jsp的常用指令有哪些(编译指令 动作指令整理).docx

    除了编译指令外,JSP还提供了一组动作指令,用于实现更复杂的功能,如页面跳转、数据处理等。 ##### 1. Jsp:Forward **功能描述**: - 用于在应用程序内转发请求到另一个资源。 **语法**: ```jsp &lt;jsp:forward ...

    jsp指令,page指令简单介绍

    总结一下,JSP的`page`指令是设置页面全局属性的关键,包括定义页面的编码、导入的Java包、使用的脚本语言等。`errorPage`和`isErrorPage`属性则提供了优雅的错误处理机制,使得开发者能更好地控制程序的异常流程,...

    JSP动作和指令.ppt

    JSP 动作元素的使用使得开发者能更灵活地控制页面的行为,而指令则提供了对页面整体配置的能力。两者结合,使得JSP成为了一个强大的动态网页开发工具。在实际应用中,合理运用这些指令和动作元素,能够提高代码的...

    模块一语言基础模块教学单元4JSP指令元素和动作元素公开课获奖课件.pptx

    其次,JSP脚本元素包括申明、表示式和脚本程序。申明用于定义变量和方法,例如`! int i = 0; %&gt;`。表示式 `&lt;%= expression %&gt;` 用于在HTML输出中插入计算结果,而脚本程序 `&lt;% script %&gt;` 允许编写完整的Java代码段...

    模块一语言基础模块教学单元JSP指令元素和动作元素(“程序”文档)共43张.pptx

    《JSP指令元素和动作元素详解》 JSP(JavaServer Pages)是Java技术中用于构建动态网页的应用程序,它允许开发者将静态HTML与动态Java代码结合在一起。本讲主要探讨的是JSP中的指令元素和动作元素,这些是构建高效...

Global site tag (gtag.js) - Google Analytics