• [Jsp] JSP的三个编译指令和七个动作指令



    一、概述
    编译指令是通知Servlet引擎的处理消息,在将JSP编译成Servlet时起作用。
    动作指令只是运行时的动作,通常可以替代JSP脚本,是JSP脚本的标准化写法。


    二、三个编译指令

    ① page
    常用的page指令标签
    <%@ page contentType="text/html;charset=GBK" language="java" pageEncoding="GBK"%>
    <%@ page import="package.className"%>


    ② include
    <%@ include file="file path"%>
    注意:如果两个页面的编译指令冲突,那么页面就会出错。因为这里的include是静态包含,是全部集中了之后,再一次编译成一个Servlet。


    ③ taglib:自定义标签,使用标签。


    三、七个动作指令

    第一种页面的参数传递(forward指令)
    ① jsp:forward
    <jsp:forward page="forward-result.jsp">
       <jsp:param name="age" value="29">
    </jsp:forward>

    另一个页面使用request.getparameter("age")接收此参数

    第二种页面的参数传递(Form表单转发)
    <form method="post" action="jsp-forward.jsp">
    <input type="text" name="username">

    另一个页面使用request.getparameter("username")接收此参数

    ② jsp:param
    param指令用于设置参数值,指令不能单独使用,可与以下三个指令结合使用。
    jsp:include
    jsp:forword
    jsp:plugin

    语法:<jsp:param name="paramName" value="paramValue">

    ③ jsp:include
    <jsp:include page="待导入的页面路径">
    这是动态包含,是先将待导入的页面编译成Servlet,再将多个Servlet整合在一起。

    ④ jsp:useBean
    <jsp:useBean id="name" class="className Path" scope="page|request|session|application">


    ⑤ jsp:setProperty
    <jsp:setProperty name="BeanName" property="propertyName" value="value" />


    ⑥ jsp:getProperty
    <jsp:getProperty name="BeanName" property="PropertyName" />


    举例:
    先编写一个PersonBean.java(在WEB-INF\src\lee包中)
    public class PersonBean{
     private String name;
     private int age;

     public Person(){
     }

     public Person(String name,int age){
       this.name=name;
       this.age=age;
     }
     setters and getters...
    }

    再编写一个BeanTest.jsp页面
    <jsp:useBean id="p1" class="lee.PersonBean" scope="page" />
    <jsp:setProperty name="p1" property="name" value="yeqing" />
    <jsp:getProperty name="p1" property="name" />
    <jsp:setProperty name="p1" property="age" value="23" />
    <jsp:getProperty name="p1" property="age" />

    注:
    1)这里取得的name age就是在PersonBean中定义的私有属性,是利用了反射机制。
    2)PersonBean.java放在了src文件夹中,实际上Java源文件对Web应用不起作用,
       所以我们使用Ant等来编译得到二进制文件,然后放入WEB-INF/classes路径下。
       而且,在为Web应用提供了新的class文件后,必须重启该应用,让它可以重新加载这些新的class文件
    3) 二进制文件就是使用记事本等程序打开后是乱码的文件
    4) 上面的三个标签实现的功能在jsp页面可以用以下的代替

    <%
    PersonBean p1=new PersonBean();
    pageContext.setAttribute("p1",p1);
    //request.setAttribute("p1",p1);
    //session.setAttribute("p1",p1);
    //application.setAttribute("p1",p1);
    p1.setName("yeqing");
    p1.setAge(21);
    %>

    <%=p1.getName()%>
    <%=p1.getAge()%>

    ⑦ jsp:plugin

    用于下载服务器端的JavaBean或Applet到客户端执行。

  • 相关阅读:
    C#方法Extra
    C#方法
    C#类型与变量
    归并排序算法
    2020 CiGA Game Jam活动总结
    插入排序算法
    游戏开发随笔
    2019厦门大学信息学院人工智能/智能科学与技术系夏令营(非计算机系)
    基于Dlib、OpenCV开发人脸识别程序的开发建议
    CCF CSP 201703
  • 原文地址:https://www.cnblogs.com/avivaye/p/2660507.html
Copyright © 2020-2023  润新知