JavaWeb学习笔记1- javaBean

340 查看

JavaBean

JavaBean规范

  • JavaBean是一个公共的类

  • JavaBean有一个不带参数的构造函数

  • JavaBean通过setXXX方法设置属性,并且通过getXXX方法获取属性

  • 属性私有

package com.po;

public class Users {
    private String username;
    private String password;
    
    public Users() {
        
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
    
}

jsp访问javaBean

和普通java类使用相同

1. 导入javaBean类

<%@ page import = "com.po.Users" %>
<%

2. 声明javaBean对象

<% 
      Users user = new Users();
      user.setUsername("admin");
      user.setPassword("12345");
   %>

3. 访问对象

用户名: <%= user.getUsername() %><br>
密码: <%= user.getPassword() %><br>

useBean动作

<jsp:useBean id = "user" class = "com.po.Users" scope = "page"/>

javaBean动作元素

useBean()

<jsp:useBean id="标示符" class="java类名" scope="作用范围"/>

getPropertyName()

作用:获取指定javabean对象的属性值。

<jsp:getProperty name="JavaBean实例名" property=“属性名”/>

setPropertyName()

  1. 需要表单提交属性:

<jsp:setProperty name="Javabean实例名" property="*"/>

与之前页面提交的表单的【所有属性进行匹配】,若有与javabean类属性名相同的,则进行赋值。比如表坛提交了username="xxx",而javabean里有username属性,则对其进行赋值

  1. 需要表单提交属性

<jsp:setPropery name="Javabean实例名" property="javabean属性名" 
/>

:对【指定的属性进行匹配】

  1. 手动设置属性:

<jsp:setProperty name = "Javabean实例名" property="Javabean属性名" value="BeanValue" />
  1. 与request参数有关,通过url传参 :

<jsp:setProperty name="Javabean实例名" property="propertyName" param="request对象中的参数名" />

javaBean范围

使用useBeans的scope属性可以用来指定javabean的作用范围, <jsp:useBean>标签中的scope属性决定了JavaBean对象存在的范围,scope可选值包括:

scope="page"

仅在当前页面有效(重定向或者服务器内部转发均后均无效)
客户每次请求访问JSP页面时,都会创建一个JavaBean对象。JavaBean对象的有效范围是客户请求访问的当前JSP页面,JavaBean对象在以下两种情况下会结束生命周期:

  • 通过<jsp:forward>标签将请求转发到另一个文件。

  • 客户请求访问的JSP页面执行完毕并向客户端发送响应。

scope="request"

可用request.getAttribute()方法获得javabean对象.

在request范围内,JavaBean对象的有效范围为:

  • 客户请求访问的当前JSP页面

  • 和当前JSP页面共享同一个请求的页面,包括<%@ include%>指令以及<jsp:forward>标记包含的其他JSP文件。

  • 当所有共享同一个客户请求的JSP页面执行完毕并向客户端发回响应时,JavaBean对象结束生命周期。

scope="session"

可用session.getAttribute()方法获得javabean对象。在当前会话session有效期间,该对象均有效。
JavaBean对象被创建后,它存在于整个Session的生命周期内,同一个session中的所有JSP文件共享这个JavaBean对象。

scope="application"

可用application.getAttribute()方法获得javabean对象。范围最广
在整个Web应用的生命周期内,Web应用中的JSP文件都能共享同一个JavaBean对象。

  • 作用域范围从小到大依次为:page < request < session < application.