zoukankan      html  css  js  c++  java
  • JSP动作

    JSP动作元素在请求处理阶段起作用,他们会被转换成Java代码来执行操作,如访问一个Java对象或调用方法。

    JSP动作元素是用XML语法写成的。

    动作元素基本上都是预定义的函数,JSP规范定义了一系列的标准动作,这些标准动作使用jsp作为前缀:

    <jsp:动作名称 属性=“属性值” 属性=“属性值” />
    <jsp:useBean ... />      <!-- 寻找或者实例化一个JavaBean -->
    <jsp:setProperty ... />  <!-- 设置JavaBean的属性 -->
    <jsp:getPropery ... />   <!-- 获取JavaBean的属性 -->
    <jsp:include ... />      <!-- 在页面并请求的时候引入一个文件 -->
    <jsp:param ... /> <!-- 向被包含页面传递参数 --> <jsp:forward ... /> <!-- 把请求转到一个新的页面 --> <jsp:plugin ... /> <!-- 根据浏览器类型为Java插件生成OBJECT或EMBED标记 --> <jsp:element ... /> <!-- 定义动态XML元素 --> <jsp:attribute ... /> <!-- 设置动态定义的XML元素属性 --> <jsp:body ... /> <!-- 设置动态定义的XML元素内容 --> <jsp:text ... /> <!-- 在JSP页面和文档中使用写入文本的模板 -->

    所有动作元素都要有两个属性:id属性、scope属性

    id属性是动作元素的唯一标识,可以在JSP页面中引用。动作元素创建的id值可以通过pageContext来调用。

    scope属性用于识别动作元素的声明周期。scope属性有四个可能的值:page、request、session、application

    id属性和scope属性有直接关系,scope属性定义了相关id对象的寿命。

    具体的动作可查询页面:https://www.runoob.com/jsp/jsp-actions.html

    <jsp:useBean ... />动作元素

    用于加载一个将在JSP页面中使用的JavaBean

    在类加载完之后,便可通过<jsp:getProperty ... />和<jsp:setProperty ... />动作获取和修改bean的属性。

    <jsp:useBean id="name" class="package.class" />
    <!-- class属性用于指定Bean的完整类名 -->
    <!-- type属性用于指定引用该对象变量的类型 -->
    <!-- beanName属性用于通过java.beans.Beans的instantiate()方法指定Bean的名字 -->

    <jsp:setProperty ... />动作元素

    用于设置已经实例化好的Bean对象的属性,有两种用法

    第一种用法:在<jsp:useBean ... >元素的外面使用,此时,不管<jsp:useBean ... >是否找到了一个现有的Bean,还是新创建一个Bean实例,<jsp:setProperty ... > 都会执行

    第二种用法:在<jsp:useBean ... >元素的里面使用,此时,<jsp:setProperty ... >只有在新建的Bean实例中才会执行,如果使用现有的实例则不执行<jsp:setProperty ... />

    <!-- 第一种用法 -->
    <jsp:useBean id="name" ... />
    ...
    <jsp:setProperty name="myName" property="someProperty" ... />
    
    <!-- 第二种用法 -->
    <jsp:useBean id="name" ... >
      ...
      <jsp:setProperty name="myName" property="someProperty" ... />
    </jsp:useBean>
    <!-- name属性指明要设置属性的Bean -->
    <!-- property属性指明需要设置的属性 -->
    <!-- value属性指定Bean属性的值 -->
    <!-- param属性指定用哪个请求参数作为Bean属性的值,如果当前请求没有参数,则什么也不做。-->
    <!-- value和param不能同时使用,但可以使用其中任意一个 -->

    <jsp:getProperty ... />动作元素

    用于获取指定Bean属性的值,自动转换成字符串,然后调用内置对象out输出

    <jsp:useBean id="name" ... />
    ...
    <jsp:getProperty name="myName" property="someProperty" ... />
    <!-- name属性指定要检索的Bean属性名称,Bean必须已定义 -->
    <!-- property属性指明要获取的属性 -->
    // 一个JavaBean
    package app02a.beanTest;
    
    public class BeanTest {
        private String name;
        private int age;
        
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    
    }
    <!-- 一个JSP文件 -->
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
        <title>testBean</title>
    </head>
    <body>
        <h2>使用 JavaBean 的实例</h2>
        <jsp:useBean id="test" class="app02a.beanTest.BeanTest" />
        <!-- 设置属性 -->
        <jsp:setProperty name="test" property="name" value="leon" />
        <jsp:setProperty name="test" property="age" value="18" />
        <!-- 获取属性值 -->
        姓名:<jsp:getProperty name="test" property="name" /> <br />
        年龄:<jsp:getProperty name="test" property="age" />
    </body>
    </html>

    <jsp:include ... />动作元素

    用来包含静态和动态的文件,该动作把指定文件插入正在生成的页面。

    include指令是在JSP文件被转换成Servlet的时候引入文件,而include动作是在页面被请求时引入文件。

    include指令不能传递参数,而include动作可以传递参数(使用<jsp:param ... />动作)

    <jsp:include page="相对url地址" flush="true" />
    <!-- page属性指明要包含到当前页面中文件的相对url地址 -->
    <!-- flush属性指明包含资源前是否刷新缓存区 -->
    <!-- data.jsp文件代码 -->
    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
    
    <p>
        今天的日期是:<%=(new java.util.Date()).toString() %>
        所在城市是:<%=request.getParameter("city") %> <!-- 获取参数 -->
    </p>
    
    <!-- main.jsp文件代码 -->
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
        <title>include动作</title>
    </head>
    <body>
        <h2>include动作实例</h2>
        <jsp:include page="date.jsp" flush="ture" >
        <jsp:param name="city" value="Beijing" /> <!-- 向其他页面传递参数 -->
       </jsp:include>
    </body>
    </html>

    测试效果

    <jsp:param ... /> 和 <jsp:params ... />动作元素

    该动作元素不能单独使用,可以配合<jsp:include ... /> <jsp:forward ... />等动作一起使用。作用是向其他页面传递参数。

    <jsp:forward... />动作元素

     将请求转到另一个页面,是服务器内部的装发,对浏览器是透明的,浏览器的URL并不会改变。该动作只有一个属性page

    <jsp:forward page="相对url地址" />
    <!-- page属性指定转发到的地址,可以是一个JSP页面或一个Servlet -->
    <!-- date.jsp文件 -->
    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
    
    <p>
        今天的日期是:<%=(new java.util.Date()).toString() %>
        所在城市是:<%=request.getParameter("city") %>  <!-- 获取传递过来的参数 -->
    </p>
    
    <!-- main.jsp文件 -->
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
        <title>include动作</title>
    </head>
    <body>
        <h2>include动作实例</h2>
        <jsp:forward page="date.jsp" >  <!-- 将请求转发到date.jsp页面 -->
            <jsp:param name="city" value="Beijing" /> <!-- 向date.jsp页面传递参数 -->
        </jsp:forward>
    
    </body>
    </html>

    <jsp:plugin... />动作元素

    <jsp:element... />动作元素

    <jsp:attribute... />动作元素

    <jsp:body... />动作元素

    <jsp:text... />动作元素

  • 相关阅读:
    个性化联邦学习算法框架发布,赋能AI药物研发
    ES入门 (2) 数据格式/类型
    ES入门 (1) 使用基础(1)安装(1) WIN 单机
    Java 之 JDBC:(十)Spring的JDBCTemplate
    Java 之 JDBC:(九)Apache-DBUtils实现CRUD操作
    Java 之 JDBC:(八)数据库连接池
    Java 之 JDBC:(七)DAO及相关实现类
    Java 之 JDBC:(六)数据库事务
    Java 之 JDBC:(五)批量插入
    第七节:循环结构
  • 原文地址:https://www.cnblogs.com/0820LL/p/9851952.html
Copyright © 2011-2022 走看看