• jsp>JavaBean 小强斋


    一、Java 命名规范:
     1、包命名:全部字母小写:cn.mldn.lxh
     2、类命名:单词的首字母大写:SimpleBean
     3、属性名称:第一个单词的首字母小写,之后每个单词的首字母大写:studentName ;
     4、方法命名:与属性命名相同:public void sayHello() ;
     5、常量命名:全部单词大写:final String DBDRIVER ="MLDN"
     
    二、JavaBean 就是一个Java 类,也就意味着,JAVA 的一切特性,此处都可以使用,此javaBean 没有图形显示代码,只是完成基本业务逻辑。JavaBean 可以使用JAVA 的封装、继承、多态。使用 JavaBean 封装许多可重复调用的代码,使用 JavaBean 可以达到显示与业务的分离
     显示:JSP
     业务:JavaBean
     将 JavaBean 编译好的*.class 文件拷贝到WEB-INF/classes 文件夹之下
     
    三、编写 JavaBean 必须满足以下几点:
     · 所有的 JavaBean 必须放在一个包中
     · JavaBean 必须声明成public class 类型文件名称与类名称一致
     · 所有的属性必须封装(属性私有的,提供get和set 方法)
     · 设置和取得属性可以通过setter、getter
     · 使用 JSP 标签去调用JavaBean 时必须有一个无参构造方法


    四、打包编译:

    javac -d . SimpleBean.java  (javac后面和-d后面各有一个空格,然后又一个点),点表示当前目录
     
    五、JavaBean在JSP 中的调用过程:


     1、使用<%@page import=""%>使用导入指令
     实际上 WEB-INF/classes 是一个classpath 路径,所有的class 文件,只要放在此目录都可以被访问到,与其他类的调用方式是一样的

    <%@page contentType="text/html;charset=gb2312"%>
    <%@page import="cn.mldn.lxh.*"%>
    <%
    	// 实例化对象
    	SimpleBean sb = new SimpleBean() ;
    	sb.setName("李兴华") ;
    	sb.setPassword("zzzzzz") ; 
    %>
    <h1>姓名:<%=sb.getName()%></h1>
    <h1>密码:<%=sb.getPassword()%></h1>

     2、使用JSP 的标签指令调用
    <jsp:useBean
     id="sb" 表示实例化对象的名称
     scope="page" 表示使用范围
     class="cn.mldn.lxh.SimpleBean"/> 对象所属的包.类名称路径
     如果使用此标签,则 JAVABEAN 中必须有一个无参构造方法,此为明确规定

     

    Tomcat 服务器,在默认情况下是不能读取修改后的JavaBean,如要读取有以下两种方法:
     1、重新启动服务器
     2、配置参数:reloadable="true":<Context path="/test" docBase="f:\testWeb" reloadable="true"/>
     
    六、设置javabean属性值

    使用下面代码,可以替代掉一切的 setter 方法调用,表单提交的参数直接被设置到javabean对象上。
     <jsp:setProperty name="sb" property="*"/>
     · name:已经声明过的JavaBean 对象的(id)
     · property:表示要设置的属性,如果为“*”,则表示自动匹配
    javabean.html

    <form action="javabeandemo.jsp" method="post">
     用户名:<input type="text" name="name"><br>
     密  码:<input type="text" name="password"><br>
     <input type="submit" value="提交">
     <input type="reset" value="重置">
     </form>

    javabeandemo.jsp

    <%@page contentType="text/html;charset=gb2312"%>
     <jsp:useBean id="sb" scope="page" class="cn.mldn.lxh.SimpleBean"/>
     <jsp:setProperty name="sb" property="*"/>
     <%--
      // 如果有20个数据需要设置,则使用JavaBean的设置属性方式,可以自动完成
     --%>
     <h1>姓名:<%=sb.getName()%></h1>
     <h1>密码:<%=sb.getPassword()%></h1>

    SimpleBean

    // 所有的JavaBean必须放在一个包中
    package cn.mldn.lxh ;
    
    public class SimpleBean
    {
    	private String name ;
    	private String password ;
    	
    	// 如果没有指定构造方法,则会自动生成一无参的什么都不做的构造方法
    	public SimpleBean()
    	{
    		System.out.println("** public SimpleBean() .") ;
    		System.out.println("-------------------------------------------") ;
    	}
    	
    	public void setName(String name)
    	{
    		this.name = name ;
    	}
    	public void setPassword(String password)
    	{
    		this.password = password ;
    	}
    	public String getName()
    	{
    		return this.name ;
    	}
    	public String getPassword()
    	{
    		return this.password ;
    	}
    };

    为什么能够通过 property="*"的方式,将内容设置到Bean 中,其根本原因是使用Java 的反射机制,根据传递参数的名称找到相应的方法,比如:参数名称为name,则自动找到setName 方法
     原则:使用 JavaBean 自动设置内容时,一定要让参数名称与Bean 中的属性名称一致,这样通过Java 的命名规范,可以达到统一。
     当需要指定某个属性设置内容的时候,可以在 property 中指定参数
     · <jsp:setProperty name="sb" property="*"/>:自动匹配
     · <jsp:setProperty name="sb" property="name"/>:可以根据自己的需要设置需要的属性值
     · <jsp:setProperty name="sb" property="name" param="password"/>:可以根据自己的需要,任意选择传递的参数
     · <jsp:setProperty name="sb" property="name" value="password"/>:根据用户需要,自己设置参数的值如果输入的值是一个变量,则需要用表达式输出

    JSP 取得属性
     <jsp:getProperty name="id" property="具体属性"/>
     
    七、javabean范围
     page 范围:属性只在当前页有效,如果跳转到其他页面,则需要重新实例化
     适用于:JSP 页面操作资源时使用
     request 范围:属性只保存在一次服务器跳转中
     前提:使用<jsp:forward>跳转才行
     session 范围:属性保存在一次会话之中,可以使用任意方式连接其他页面,则此对象只实例化一次
     application 范围:属性公有,此对象在整个服务器上只实例化一次
     尽量少用,因为 application 会占用资源

  • 相关阅读:
    Java 入门 9 Random 类 随机数
    Java 入门16 面向对象实现之前的小案例购物车
    Java 入门10 java的内存分配,数组内存图( 方法区 栈内存 堆内存)
    JAVA 12 联系回顾之前知识
    Java 13 面向对象的编程 小案例 实现购物车
    面试泛型
    面试反射
    从HashMap的执行流程开始 揭开HashMap底层实现
    面试什么是面向对象?面向对象三大特性?
    面试JMM内存模型
  • 原文地址:https://www.cnblogs.com/xiaoqiangzhaitai/p/5637583.html
Copyright © 2020-2023  润新知