javabean结构

  1. package com.lesson7.bean;
  2. public class Circle{
  3. private int radius;
  4. public Circle(){
  5. radius=1;
  6. }
  7. public int getRadius(){ //get方法
  8. return radius;
  9. }
  10. public void setRadius(int newRadius){ //set方法
  11. radius=newRadius;
  12. }
  13. public double circleArea(){
  14. return Math.PI*radius*radius;
  15. }
  16. public double circlLength(){
  17. return 2.0*Math.PI*radius;
  18. }
  19. }

属性以小写字母开头,驼峰命名格式,相应的 getter/setter 方法是 get/set 接上首字母大写的属性名

javabean使用:(注意全都可以是自闭合标签)

声明javabean并实例化

  1. //在 JSP页面中通过import指令引入bean
  2. <%@ page import="com.lesson7.bean.*"%>
  3. //通过useBean标记来创建bean对象
  4. <jsp:useBean id="bean_name" class="创建bean的类" scope="bean的有效范围"/>

1.创建bean的类要带有完整的包名,如com.lesson7.bean.*
2.scope表示bean的取值范围,可取page,session,request和application,代表不同的作用范围

调用javabean

调用javabean有两种方法:
直接调用javabean方法:如circle.getRadius()
或者取得bean属性
<jsp:getProperty name="beanname" property="propertyname" />
name为bean名字,property为bean的属性。

几种设置bean属性的方法

直接设置bean属性(相比于getProperty多了个value属性):

  1. <jsp:setProperty name="Name" property="property" value="Value" />

利用表单为属性赋值:

  1. //param要和传入表单的name一致
  2. <jsp:setProperty name="student" property="name" param="xingming"/>
  3. //如果表单name和Bean的property相同 则可以省略param
  4. <jsp:setProperty name="beanName" property="xingming"/>
  5. //如果均一一对应 则可以用全部赋值
  6. <jsp:setProperty name="beanName" property="*" />

转发之前页面为一表单,跳转之后用setProperty赋值,这时就没有了value(要求表单项的name和Bean的Property相同
image.png
image.png

整体赋值(要求set方法齐全,且表单的参数name一一对应于bean的属性):

<jsp:setProperty name="beanName" property="*" />

关于生命周期(scope)

page<request < session < application

  • page

仅在一个页面上生效。

  • request
    只在一次请求上(请求转发不算,因为转发是服务器端的行为)生效,当把信息返回给客户端,该对象就被摧毁。
  • session

是服务器端的行为,一个用户对应一个,session过期或者关闭浏览器后失效,一个用户就好比一个session对象,互不干扰。
用于登录和购物车。

  • application

服务器结束后才失效,所有用户共享一个application。
用于统计网站访问总次数。