五(1)、JSP的——Javabean

来源:互联网 发布:美白牙齿知乎 编辑:程序博客网 时间:2024/06/05 23:56

    • Javabean
      • 一普通方式创建JavaBean
      • 二第二种创建JavaBeanuseBean动作元素创建传统获取
      • 三通过getProperty获取JavaBean对象属性值

Javabean

1.Javabean的简介:
Javabean就是符合某种特定的规范的Java类。使用Javabeans的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码维护性。

2.Javabean设计原则:
公有类、属性私有、无参的公有构造方法、getter和setter方法。

3.JSP动作元素
动作元素为请求处理阶段提供信息。动作元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签。

如下
(1)第一类:与Javabean有关的(重点介绍)

<jsp:useBean><jsp:setProperty><jsp:getProperty>

(2)第二类:基本元素,包括6个

<jsp:include><jsp:foward><jsp:param><jsp:plugin><jsp:params><jsp:fallback>

(3)第三类:JSP Document有关

<jsp:root><jsp:declaration><jsp:scriptlet><jsp:expression><jsp:text><jsp:output>

(4)第四类:主要是用来动态生成XML元素标签值

<jsp:attribute><jsp:body><jsp:element>

(5)第五类:Tag File

<jsp:invoke><jsp:dobody>

一、普通方式创建JavaBean

这里写图片描述

1.创建项目DeMo在src中创建User类

package com.po;public class User {    private String username;    private String password;    public User(){    }    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;    }}

2.在WebRoot中编辑index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="com.po.*"   %>//引入java类<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">    <title>My JSP 'index.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">    <!--    <link rel="stylesheet" type="text/css" href="styles.css">    -->  </head>  <body>    <%    User user=new User();    user.setPassword("1234");    user.setUsername("admin");     %>     用户名:<%=user.getPassword() %>  密码:<%=user.getUsername() %>  </body></html>

二、第二种创建JavaBean(useBean动作元素创建“传统获取”)

1.<jsp:useBean>
作用:在jsp页面中实例化或者在指定范围内使用javabean。导入java类

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

(1)id是实例名可随便设
(2)scope的作用范围

  • page:仅在当前页面有效(获取不到)
  • request:可以通过HttpRequest.getAttribute( )方法取得JavaBean对象
    scope=“request”时必须用服务器跳转来传递参数
request.getRequestDispatcher("testScope.jsp").forward(request, response)
  • session:可以通过HttpSession.getAttribute( )方法取得JavaBean对象
  • application:可以通过application.getAttribute( )方法取得JavaBean对象

(3)测试
创建testScope.jsp

<body>  <h1>测试scope动作元素</h1>     <jsp:useBean id="myUsers" class="com.po.User" scope="application">     </jsp:useBean>     <hr>     <!-- 通过URL传参给属性赋值 -->    用户名: <jsp:getProperty property="username" name="myUsers" />       密码:  <jsp:getProperty property="password" name="myUsers"/></body>

创建dologin.jsp

<h1>setProperty动作元素</h1>     <jsp:useBean id="myUsers" class="com.po.User" scope="application"></jsp:useBean>     <hr>    用户名: <jsp:getProperty property="username" name="myUsers" />       密码:  <jsp:getProperty property="password" name="myUsers"/>      <br> <a href="testScope.jsp">测试</a>

2.<jsp:setProperty>
作用:给已经实例化的javabean对象的属性赋值,一共四种形式。

(1):

<jsp:setProperty name="JavaBean实例名" property="*" />(跟表单关联)

注:property=”*”:表示自动匹配表单中password、username和java类中的password、username。

例子:<根据表单自动匹配所有属性>

1)创建login.jsp

<body> <form action="dologin.jsp"method="post" name="loginFrom">  用户名:<input type="text" name="username">  密码:<input type="password" name="password">          <input type="submit" value="登入"> </form></body>

2)创建dologn.jsp

<body>  <h1>setProperty动作元素</h1>     <jsp:useBean id="myUsers" class="com.po.User">     </jsp:useBean>     <hr>     <!-- 根据表单匹配所有属性 -->     <jsp:setProperty property="*" name="myUsers"/>     用户名:<%=myUsers.getUsername() %>     密码:<%=myUsers.getPassword() %></body>

注: “jsp:useBean” 中的id和 “jsp:setProperty”中的name一样。property表示自动匹配“login.jsp”表单中的属性“username”,“password”和“User”类中的“username”,“password”
(3)创建User类

package com.po;public class User {    private String username;    private String password;    public User(){    }    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;    }}

2:

<jsp:setProperty name="JavaBean实例名" property="JavaBean属性名(User类)" />(跟表单关联)

注:property=“JavaBean属性名”(User类)表示匹配部分属性

例子:<根据表单匹配部分属性 >
(1)User类同上

(2)login.jsp同上

(3)创建dologin.jsp

<body>  <h1>setProperty动作元素</h1>     <jsp:useBean id="myUsers" class="com.po.User">     </jsp:useBean>     <hr>    <!-- 根据表单匹配部分属性 -->  <jsp:setProperty property="username" name="myUsers"/>     用户名:<%=myUsers.getUsername() %>     密码:<%=myUsers.getPassword() %></body>

3:

<jsp:setProperty name="JavaBean实例名" property="JavaBean属性名(User类)" value="BeanValue" />(手工设置)

property=“JavaBean属性名”表示User类中的任意属性名,value表示我们手动赋值
例子:< 跟表单无关 >
(1)User类同上

(2)login.jsp同上

(3)创建dologin.jsp

<body>  <h1>setProperty动作元素</h1>     <jsp:useBean id="myUsers" class="com.po.User">     </jsp:useBean>     <hr>      <!-- 跟表单无关,自己赋值 -->      <jsp:setProperty property="username" name="myUsers" value="cxg"/>     <jsp:setProperty property="password" name="myUsers" value="123"/>     用户名:<%=myUsers.getUsername() %>     密码:<%=myUsers.getPassword() %></body>

4:

<jsp:setProperty name="JavaBean实例名" property="JavaBean属性名(User类)" param="request对象中的参数" />(跟request参数关联)

param表示在表单中action传参的值
(1)login.jsp

<body><form action="dologin.jsp?mypass=999"method="post" name="loginFrom">  用户名:<input type="text" name="username"> 密码:<input type="password" name="password">   <input type="submit" value="登入"></form></body>

(2)创建dologin.jsp

<body>  <h1>setProperty动作元素</h1>     <jsp:useBean id="myUsers" class="com.po.User">        </jsp:useBean>     <hr>     <!-- 通过URL传参给属性赋值 -->     <jsp:setProperty property="password" name="myUsers" param="mypass"/>            用户名:<%=myUsers.getUsername() %>            密码:<%=myUsers.getPassword() %></body>

三、通过getProperty获取JavaBean对象属性值

<jsp:getProperty>

作用:获取指定JavaBean对象属性值

<jsp:getProperty name="JavaBean实例名" property="JavaBean属性名(User类)" />

(1)创建login.jsp

  <body>  <form action="dologin.jsp"method="post" name="loginFrom">  用户名:<input type="text" name="username"> 密码:<input type="password" name="password">   <input type="submit" value="登入">  </form>  </body>

(2)创建User类

package com.po;public class User {    private String username;    private String password;    public User(){    }    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;    }}

(3)创建dologin.jsp

<body>  <h1>setProperty动作元素</h1>     <jsp:useBean id="myUsers" class="com.po.User"></jsp:useBean>     <hr>     <jsp:setProperty property="username" name="myUsers"/>     <jsp:setProperty property="password" name="myUsers" />     <!-- 通过 -->    用户名:<jsp:getProperty property="username" name="myUsers" />     密码: <jsp:getProperty property="password" name="myUsers"/></body>