zoukankan      html  css  js  c++  java
  • JSP 的脚本,指令,动作

    JSP 脚本元素 
    Java代码  收藏代码
    1. 表达式:<%= xx%>  
    2. Scriptlet:<% xxx %>  
    3. 声明  :<%!xxx %>    


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

    Html代码  收藏代码
    1. <body>  
    2.     <h1>JSP 表达式</h1>  
    3.     <b>pi的值</b><%=Math.PI %>   <br/>   
    4.     <b>110,119中最大的值</b><%=Math.max(110,119)%>   <br/>    
    5.     <b>110,119中最小的值</b><%=Math.min(110,119)%>   <br/>   
    6.     <b>3+2-5的值</b><%=3+2-5%>   <br/>   
    7.     <b>(3+2)==5的值</b><%=(3+2)==5%>   <br/>    
    8.     <b>(3+2)!=5的值</b><%=(3+2)!=5%>   <br/>     
    9.   </body>  


    JSP ScriptLet 
    Java代码  收藏代码
    1. 1.就是在JSP页面嵌入 java脚本  

    Html代码  收藏代码
    1. <body>  
    2.  <%   
    3.         String name="toy";   
    4.         System.out.println(name); //打印到 控制台 去了哦!  
    5.           
    6.         //打印到 页面中去  
    7.         for(int i=1;i<10;i++){  
    8.             for(int j=0;j<i;j++){  
    9.                 out.println(j);  //调用 jsp的 out对象  在页面上显示了哦  
    10.             }  
    11.             out.println("<br/>");  
    12.         }  
    13.      %>  
    14. </body>  


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

    Html代码  收藏代码
    1. <body>  
    2. <%!  
    3.       // 声明 servlet中的 成员变量和方法  
    4.         int numTimes=3;  
    5.           
    6.         public String sayHello(String name){  
    7.            return "Hello  "+name+"!";  
    8.         }  
    9.       %>  
    10.        <br/>  
    11.       <%  
    12.          //每刷新页面一下  numTimes就会累加 这样说明是 成员变量  
    13.          //而且 说明 JSP (servlet) tomcat启动的时候  就只实例化一次 然后被缓存起来了 所以  这个变量 就会一直累加  
    14.         out.println(numTimes);  
    15.         numTimes++;  
    16.         out.println("<br/>");  
    17.         out.println(sayHello("admin"));  
    18.        %>  
    19.   </body>  


    JSP 的指令 
    Java代码  收藏代码
    1. 1.page  
    2. 2.include  
    3. 3.taglib  
    4. 语法为:  
    5. <%@ 指令名称  属性1="值1" .....%>  


    page 指令 
    Java代码  收藏代码
    1. 1.用于设置JSP的属性  
    2. 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"

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

    Html代码  收藏代码
    1. <body>  
    2.   <%@ include file="/head.jsp" %>   
    3.        <%=basePath%><br/>  
    4.        <b>嵌套的页面中不能 在 脚本中 定义 父页面 相同的 变量 否则会报错</b>  
    5.        <b>嵌套的页面 中能用父页面中的变量</b>  
    6.        <b>父页面中可以 用 子页面中的变量</b>  
    7. </body>  


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

    Html代码  收藏代码
    1. <body>  
    2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>  
    3.   
    4. </body>  


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

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


    JSP的标准动作的分类 6组 
    Html代码  收藏代码
    1. 1.jsp中使用大JavaBean的标准动作<jsp:userBean>定义一个使用JavaBean,实例,ID属性定义实例名称,<jsp:getProperty> 从一个JavaBean中获取一个属性值,并将其添加到响应中;<jsp:setProperty> 设置一个JavaBean的属性  
    2.   
    3. 2.在jsp中包含其他jsp文件或者web资源的标准动作,<jsp:include> 在请求处理阶段包含来之一个Servlet或者jsp文件的响应,注意和include指令不同  
    4.   
    5. 3.将到达的请求 转发到另一个jsp页面或者web资源,以便进行下一步的操作的标准动作,<jsp:forward>   
    6.   
    7. 4:在其他标准动作中间指定参数的标准动作,<jsp:param>对使用<jsp:include> 或者 <jsp:forward>传递到另一个Servlet和jsp页面请求添加一个传递参数  
    8.   
    9.   
    10. 5.在客户端的页面嵌入java对象 (例如 applet,是运行在客户端的小java程序)的标准动作  
    11. <jsp:plugin>根据浏览器类型为java插件生成 Object或者 Embed标记 <jsp:params><jsp:fallback>  
    12.   
    13. 6.仅仅用户标记文件的标准动作  
    14.  <jsp:attribute>  <jsp:body> <jsp:invoke>  <jsp:dobody> <jsp:element> <jsp:text> <jsp:output>  


    <jsp:userBean> 
    Html代码  收藏代码
    1. <jsp:useBean id=”name” class=”package.class” scope=”….” type=”…”/>  
    2. id:给一个类实例取名并且作为整个JSP页面的唯一标记,如果需要创建一个新的JavaBean,这也是引用这个JavaBean的实例的名称  
    3.   
    4. class:javaBean组将的完整java类名,,一定要包括包名,如果容器没有找到指定的类实例,则会根据这个class属性指定的完整类名来创建一个新的javaBean的实例进行引用  
    5.   
    6.  type:告诉容器这里的javaBean实例需要实现 一个Java接口或者一个 超类,class和type 必须选其中一个  
    7.   
    8.  scope: 这个这个JavaBean的在那种上下文中可用,page(PageContext):在当前页面  request(ServletRequest):请求方法, session(httpSession)会话范围,appliaction 应用程序范围.  


    <jsp:setProperty> 
    Html代码  收藏代码
    1.  1:  
    2. <jsp:userBean id="myName" ...>  
    3.    <jsp:setProperty name="myName" property="someProperty" .../>  
    4. </jsp:userBean>  
    5.   
    6.  2.  
    7.  <jsp:userBean id="myName" ...>   
    8.  <jsp:setProperty name ="myName" property="somePropery" .../>  
    9.   
    10. name:是必须设置 知道是javaBean的名称  
    11.   
    12. property:必须的,指定对javaBean 的属性中那些值进行设置,有个特殊的用法 "* "表示在设置所有名字与javaBean 属性名称匹配的请求参数都被传递到相应属性的get方法  
    13.   
    14. value:指定属性的值  
    15.    
    16.  param:这个属性 和value 不能同时使用,只能用一个, 如果都没有使用,就会为 使用javaBean中的默认值,如果使用property属性,容器就会把property指定的属性变量设置为param指定的请求的参数值.  


    <jsp:setProperty> 
    Java代码  收藏代码
    1. name:表示javaNean在jsp中的标记  
    2. property:表示提取javaBean中那个属性的值  


    Html代码  收藏代码
    1. <jsp:userBean id="testBean" class="com.helloworld.SimpleBean">  
    2.    <jsp:setProperty name="testBean" property="message" value="Hello"/>  
    3. </jsp:userBean>  
    4.   
    5. <h1>取值/h1>  
    6. <jsp:getProperty name="testBean" property="message"/>  
    7.   
    8. <h1>重新赋值</h1>   
    9. <jsp:setProperty name="testBean" property="nessage" value="hello World" >  
    10.   
    11. <h1>使用EL表达式取值</h1>   
    12. ${testBean.message}  


    <jsp:include> 
    Java代码  收藏代码
    1. <jsp:include page="...URL..." flush="true|false"/>  
    2.    
    3. <jsp:include page=" ...URL... flush="true|false">  
    4.   <jsp:param ..../>  
    5. </jsp:include>  


    include指令 和include动作的差别 
    (有的称为 动态导入 和  静态导入) 
    Java代码  收藏代码
    1. 1.语法不同   
    2.   指令: <%@ include file="..url.." %>  
    3.   动作: <jsp:include page="..url" />  
    4.   
    5. 2. 编译合并顺序不同  
    6.   指令:先合并后在进行一起编译  (只有一个编译文件)  
    7.   动作:单独编译 然后合并 编译后的二进制文件 (会有多个编译文件)  
    8.   
    9. 3.变量的使用  
    10.   指令:不能定义 父页面的 同名变量 ,可以修改 和使用 父页面的变量,父页面也可以使用子页面的变量   
    11.   动作:能定义 父页面的同名变量 ,不可以修改和使用 父页面的变量.父页面不能使用 子页面的变量  
    12.   
    13. 4.变量的作用域  
    14.   指令:会延长 父页面变量的生命周期 注意 变量的值的变化   
    15.   动作:不会影响变量的作用域和值  
    16.   
    17. 5.编译报错  
    18.   指令:使用 父页面的变量的时候 子页面会报编译异常,页面前面会有 "红叉叉"(但是能正常使用,可以忽略)  
    19.   动作:不会有编译异常   


    <jsp;forward> 
    Html代码  收藏代码
    1. <jsp:forward page="/util/errorPage.jsp">  //一个相对的路径  
    2. <jsp:forward page="<%=someJavaExpression%>">  // 一个 动态值  


    <jsp:param> 
    Html代码  收藏代码
    1. 一般与<jsp:include > 和<jsp:forward> 一起使用  
    2. lt;body>  
    3.  <jsp:include page="date.jsp">  
    4.      <jsp:param name="" value=""/>  
    5.  </jsp:include>   
    6. lt;/body>  


    <jsp:plugin> 
    Java代码  收藏代码
    1. <jsp:plugin type=" ..applet 或者  javaBean " code=""  codebase="" archive=" ." >  
    2. </jsp:plugin>  
    3.   
    4. type:用来指定 该插件是applet 或者 javaBean  


    <jsp:params> 
    Html代码  收藏代码
    1. <body>  
    2.    <jsp:plugin type="applet|JavaBean" code="">  
    3.      <jsp:params>  
    4.         <jsp:param name="" property=""  value=""/>  
    5.         <jsp:param name="" property=""  value=""/>  
    6.         <jsp:param name="" property=""  value=""/>  
    7.      </jsp:params>  
    8.    </jsp:plugin>  
    9. </body>  


    <jsp:fallback> 
    Html代码  收藏代码
    1. <jsp:fallback>  
    2.    客户端不支持插件运行时候显示的 html和 jsp 代码  (只有客户端不支持的时候才能运行)  
    3. </jsp:fallback>  
     
  • 相关阅读:
    网站安全编程 黑客入侵 脚本黑客 高级语法入侵 C/C++ C# PHP JSP 编程
    【算法导论】贪心算法,递归算法,动态规划算法总结
    cocoa2dx tiled map添加tile翻转功能
    8月30日上海ORACLE大会演讲PPT下载
    【算法导论】双调欧几里得旅行商问题
    Codeforces Round #501 (Div. 3) B. Obtaining the String (思维,字符串)
    Codeforces Round #498 (Div. 3) D. Two Strings Swaps (思维)
    Educational Codeforces Round 89 (Rated for Div. 2) B. Shuffle (数学,区间)
    洛谷 P1379 八数码难题 (BFS)
    Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords (贪心)
  • 原文地址:https://www.cnblogs.com/jifeng/p/2941179.html
Copyright © 2011-2022 走看看