五(1)、JSP的——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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值