jsp动作元素、jsp对象

3.jsp的动作元素

       <jsp:useBean id="s" class="com.briup.bean.Student" scope="page"></jsp:useBean>
       相当于代码:
       <%
        Student s = null;
        s = (Student)pageContext.getAttribute("s");
        if(s==null){
            s = new Student();
            pageContext.setAttribute("s",s);
        }
       
       %>


       <jsp:setProperty property="name" value="tom" name="s"/>
       相当于代码:
       <%
        Student s = (Student)pageContext.setAttribute("s");
        s.setName("tom");
       %>

       <jsp:getProperty property="name" name="s"/>
       相当于代码:
       <%
        Student s = (Student)pageContext.getAttribute("s");
        out.write(s.getName());
       %>
        
       
       //页面跳转
       <jsp:forward page="target.jsp"></jsp:forward>
       
       //跳转的同时还可以传参数
       <jsp:forward page="target.jsp?name=tom"></jsp:forward>
       或者
       <jsp:forward page="target.jsp">
          <jsp:param value="tom" name="name"/>
         </jsp:forward>
       

       //这个动作元素专门是传参数使用的
       <jsp:param value="tom" name="name"/>

       //动态包含
       <jsp:include page="foot2.jsp?name=tom"></jsp:include>
       
       动态包含特点:在把jsp文件翻译成java文件的期间,
动态包含并不会去把被包含的页面原封不动的拿过来,而是会把
动态包含这个标签翻译成一个方法的调用,将来运行页面调用到这
个方法的时候才会去拿被包含页面的内容.同时还可以给动态包含
的页面传参数.静态包含是不能传参数的。

       注意:总结和对比后,分析出动态包含和静态包含各自的特点,
以及哪一个执行的效率更快一些.


       //使用jsp的动作元素向浏览器输出一个标签
       <jsp:element name="font">
              <jsp:attribute name="color">blue</jsp:attribute>
              <jsp:body>hello world</jsp:body>
         </jsp:element>
       
       这个效果相当于在页面代码中直接写上<font color="blue">hello world</font>
       或者:
       <%
       out.println("<font color='blue'>hello world</font>");
       %>
        
    

    5.在jsp页面代码中可以直接使用的对象     
    一共有9个内置对象可以直接使用.
          类型           名字
    PageContext         pageContext
    HttpServletRequest  request
    HttpSession        session
    ServletContext        application
    Object            page
    HttpServletResponse response
    JspWriter        out
    ServletConfig        config
    Throwable        exception

    注意:为什么这个写对象可以直接使用,因为他们都是在
_jspService这个方法中默认声明了出来.而我们在表达式和
脚本中所写的java代码将来是要翻译到_jspService方法中的,所以我们在表达式和脚本中写java代码的时候可以直接使用这些对象.

    四个范围对象,在一定范围内可以存取数据:
    //页面范围(只能在同一个页面中起作用)
    pageContext    
    request
    session
    application

    //虽然名字叫page,但是这个并不是页面范围对象,
它是Object类型的对象,表示当前这个页面本身.
    page
    response
    //用于向浏览器输出内容的输出流.
    out
    //用于获得和servlet相关的信息.
    config
    //这个对象其实我们并不能直接使用,需要相关设置后
才能使用,这个可以算是一个隐藏对象.这个对象表示将来这个jsp
页面运行出错的时候所抛出的异常对象.
    exception

    6.jsp页面中的注释
    第一种:
    <!-- html/xml中的注释方式 -->
        特点:
    1.用户在浏览器中右键查看源代码 [能] 看到这个注释。
    2.在服务器端,这个jsp页面被翻译成的java中 [能] 看到这个注释.
    注意: jsp动作元素 放在这种注释里面是不起作用(注释不起作用,失效了)

    第二种:
    <%-- 
      jsp中的注释方式(隐藏注释)
      --%>
    特点:
    1.用户在浏览器中右键查看源代码 [不能] 看到这个注释。
    2.在服务器端,这个jsp页面被翻译成的java中 [不能] 看到这个注释.
    
    第三种:
    java中的注释方式,但是这种注释方式只能在jsp的脚本或者声明中使用。
    //String name = "tom";

    /* 
        int b = 40;
    */
               
    /**
        int a = 20;
    */
    特点:
    1.用户在浏览器中右键查看源代码 [不能] 看到这个注释。
    2.在服务器端,这个jsp页面被翻译成的java中 [能] 看到这个注释.
 

猜你喜欢

转载自blog.csdn.net/bifuguo/article/details/82965050