• JavaBean的学习




    可以在<jsp:setProperty>中通过param参数为bean的属性动态赋值。
    <jsp:setProperty property="age" name="person" param="helloword"/> <br>
      <jsp:getProperty property="age" name="person"/>
    对应的servlet代码:
     org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("person"), "age", request.getParameter("helloworld"), request, "helloworld", false);

    JavaBean的范围:
    Scope属性决定了JavaBean对象的存活范围。
    scope可选值(page  request  session  application);

    page:只能在同一个页面内被转发;客户每次请求访问jsp页面时,都会创建一个JavaBean对象。
     page属性生命期结束的标志:
    a: 客户请求访问的当前jsp页面通过<forward>标记将请求转发到另一个页面;
    b:客户请求访问的当前的JSP页面执行完并向客户端发回响应。

    request:在请求对象存活期间,可以访问这个范围内的对象。(客户请求访问的当前jsp页面;和当前jsp页面共享同一个客户请求的页面,包含<%@ include>指令 以及<forward>指令)。
     当所有的共享同一个客户请求的JSP页面执行完毕并向客户端返回响应时,JavaBean对象结束生命周期。

    session:再回话期间(不关闭这个浏览器),可以访问这个范围的对象。
    注意:当JavaBean放在session范围内。

    application:在web程序运行期间(服务器不关闭),可以访问这个范围的任何对象。

    注意在这个代码中只要不停的换scope="{page,request,session,application}"这几个变量,就能从jsp页面的变化和servlet源代码的变化,体会到这几个属性的不同。

    Student.java

    package com.javabean.test;

    public class Student
    {
    private long classNo;

    private String name;

    private int age;

    private boolean sexy;

    public Student()
    {
    classNo = 000101;    

    name = "mingming";

    age = 20;

    sexy = true;
    }
    public long getClassNo()
    {
    return classNo;    
    }
    public void setClassNo(long classNo)
    {
    this.classNo = classNo;
    }
    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;
    }
    public boolean isSexy()
    {
    return sexy;    
    }
    public void setSexy(boolean sexy)
    {
    this.sexy = sexy;    
    }
    }

    javabean.jsp

    <%@ page language="java" import="com.javabean.test.Student"
        pageEncoding="UTF-8"%>
    <html>
        <body>
            
            <%-- 引用自己编写的javaBean生成的bean组件 --%>
            <jsp:useBean id="student" scope="page"
                class="com.javabean.test.Student" />
            
            <%=student.getName()%><br>
            
            <%
                student.setName("hheheh");
            %>
            <%-- 用getProperty动作来返回bean组件的属性值 --%>
            <jsp:getProperty name="student" property="classNo" />
            <br>
            <jsp:getProperty name="student" property="name" />
            <br>
            <jsp:getProperty name="student" property="age" />
            <br>
            <jsp:getProperty name="student" property="sexy" />
            <br>
            <%-- 取属性值 --%>
            <%=student.getClassNo()%>
            <br>
            <%=student.getName()%>
            <br>
            <%=student.getAge()%>
            <br>
            <%=student.isSexy()%>
            <br>
            
            <jsp:useBean id="date" class="java.util.Date" scope="application"></jsp:useBean>
            
            <%= date.toLocaleString() %>    
        </body>
    </html>

  • 相关阅读:
    如何防止表单重复提交
    二、编程题
    Java 基础测试题
    常见异常
    Hibernate工作原理及为什么要用?
    简述拦截器的工作原理以及你在项目中使用过哪些自定义拦截器。
    拦截器和过滤器的区别
    浏览器默认样式
    数组去重
    数组排序
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3000663.html
Copyright © 2020-2023  润新知