JSP与JavaBean

5.1编写和使用JavaBean

目录

5.1编写和使用JavaBean

5.1.1编写JavaBean

5.1.2保存bean的字节码

5.1.3创建与使用bean

5.2获取和修改bean的属性

5.2.1getproperty动作标记

5.2.2setproperty动作标记

5.3bean的辅助类

5.4jsp与bean结合的简单例子

总结


5.1.1编写JavaBean


编写 JavaBean 指的是编写一个 Java 类,将其属性进行封装,提供公共的 getter、setter 方法,以及无参构造方法,并支持序列化,以便能够在网络传输中进行传递和持久化。

以下是一个简单的 JavaBean 类:

public class User {
  private String name;
  private int age;
 
  public User() {
  }
 
  public String getName() {
    return name;
  }
 
  public void setName(String name) {
    this.name = name;
  }
 
  public int getAge() {
    return age;
  }
 
  public void setAge(int age) {
    this.age = age;
  }
}


我们可以将该类编译成字节码文件 User.class,然后在 JSP 页面中使用 useBean 和 setProperty 标签设置其属性值:

<jsp:useBean id="user" class="com.example.User" scope="page" />
<jsp:setProperty name="user" property="name" value="Tom" />
<jsp:setProperty name="user" property="age" value="20" />


然后在 JSP 页面中使用 getProperty 标签获取属性值,并在代码中调用该 JavaBean 的方法:

<p>Welcome, <%=user.getName()%>!</p>
<p>You are <%=user.getAge()%> years old.</p>


这个例子展示了 JSP 页面如何创建和使用 JavaBean,在页面中设置其属性值以及在代码中调用其方法进行业务逻辑处理。

5.1.2保存bean的字节码

保存 bean 的字节码指的是将编写好的 JavaBean 类文件编译成字节码文件,通常使用 javac 命令进行编译。编译后的字节码文件可以被其他程序引用和使用。

5.1.3创建与使用bean

创建和使用 bean 需要在 JSP 页面中定义该 bean 的 useBean 标签,通常包括 id、class 和 scope 属性。其中 id 属性指定 bean 对象的名称,class 属性指定 bean 的完整类名,scope 属性指定 bean 对象的作用域。使用 jsp:setProperty 标签设置 bean 的属性值,使用 jsp:getProperty 标签获取 bean 的属性值,并在代码中调用 bean 的方法进行业务逻辑处理。

5.2获取和修改bean的属性

5.2.1getproperty动作标记

JSP 页面中显示。该标记通常包含 name 和 property 两个属性,其中 name 属性指定 JavaBean 对象的名称,property 属性指定要获取的属性名称。 例如,以下是一个使用 getProperty 标记获取 JavaBean 属性值的示例:

 <jsp:useBean id="user" class="com.example.User" scope="page" />
<p>Welcome, <%=user.getName()%>!</p>
<p>You are <%=user.getAge()%> years old.</p>

在上述示例中,我们使用 useBean 标签创建了一个名为 user 的 JavaBean 对象,并使用 <%=user.getName()%> 和 <%=user.getAge()%> 获取其属性值并在页面中显示。

5.2.2setproperty动作标记

 setProperty 动作标记用于设置 JavaBean 对象的属性值。该标记通常包括 name、property 和 value 三个属性,其中 name 属性指定 JavaBean 对象的名称,property 属性指定要设置的属性名称,value 属性指定要设置的属性值。 例如,以下是一个使用 setProperty 标记设置 JavaBean 属性值的示例:

<jsp:useBean id="user" class="com.example.User" scope="page" />
<jsp:setProperty name="user" property="name" value="Tom" />
<jsp:setProperty name="user" property="age" value="20" />


在上述示例中,我们使用 useBean 标记创建了一个名为 user 的 JavaBean 对象,并使用 setProperty 标记设置了其 name 和 age 属性值。

5.3bean的辅助类

在JSP中,可以使用JavaBean来封装业务逻辑和数据,使得JSP页面与Java代码解耦,可以更加方便地进行维护和开发。为了更方便地使用JavaBean,我们可以创建一个辅助类,它可以在JSP页面中直接使用,通过该类的方法来访问JavaBean中封装的数据和方法。 下面是一个简单的JSP中的JavaBean辅助类及示例代码:

package com.example.jsp.utils;
 
import com.example.jsp.entities.User;
 
import javax.servlet.http.HttpServletRequest;
 
/**
 * User 实体辅助类
 */
public class UserHelper {
 
    /**
     * 获取当前登录的用户
     *
     * @param request HttpServletRequest
     * @return 当前登录的用户,如果未登录则返回null
     */
    public static User getCurrentUser(HttpServletRequest request) {
        return (User) request.getSession().getAttribute("currentUser");
    }
 
    /**
     * 判断用户是否已登录
     *
     * @param request HttpServletRequest
     * @return true表示已登录,false表示未登录
     */
    public static boolean isLogin(HttpServletRequest request) {
        return getCurrentUser(request) != null;
    }
 
    /**
     * 获取用户的显示名称
     *
     * @param user User实体
     * @return 用户的显示名称,如果为空则返回用户名
     */
    public static String getDisplayName(User user) {
        if (user.getDisplayName() != null && !user.getDisplayName().isEmpty()) {
            return user.getDisplayName();
        }
        return user.getUsername();
    }
}


在JSP页面中使用该辅助类时,可以通过JSP的

<%@ page import="..." %> 

指令导入该类,然后直接使用该类的方法,例如:

<%@ page import="com.example.jsp.utils.UserHelper" %>
<%
// 判断用户是否已登录
if (UserHelper.isLogin(request)) {
    // 获取当前用户
    User currentUser = UserHelper.getCurrentUser(request);
    // 获取用户的显示名称
    String displayName = UserHelper.getDisplayName(currentUser);
    %>
    <p>当前登录用户: <%= displayName %> </p>
    <%
}
%>


在上面的示例中,我们首先导入了

UserHelper 

类,然后使用该类的

isLogin 

方法判断用户是否已登录。如果用户已经登录,则使用

getCurrentUser 

方法获取用户信息,再调用

getDisplayName 

方法获取用户的显示名称,最后将显示名称输出到页面上。如果用户未登录,则不显示任何信息。 这是一个简单的示例,实际上JavaBean辅助类的功能可以更加丰富,可以根据实际需要进行扩展,来方便地访问JavaBean中的数据和方法。

5.4jsp与bean结合的简单例子

下面是一个简单的JSP与JavaBean结合的示例。假设我们有一个名为

User 
的JavaBean,它封装了用户的信息,包括用户名、密码、Email等。我们可以创建一个JSP页面来展示用户的信息,并通过JavaBean来获取用户信息。

User.java:

package com.example.jsp.bean;
 
public class User {
    
    private String username;
    private String password;
    private String email;
    
    // 构造函数
    public User(String username, String password, String email) {
        this.username = username;
        this.password = password;
        this.email = email;
    }
    
    // getter和setter方法
    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;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
}


user.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.example.jsp.bean.User" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户信息</title>
</head>
<body>
    <h1>用户信息</h1>
    <%-- 创建一个User对象 --%>
    <% User user = new User("Alice", "123456", "alice@example.com"); %>
    <p>用户名: <%= user.getUsername() %> </p>
    <p>邮箱: <%= user.getEmail() %> </p>
</body>
</html>

总结

JSP是一种Java服务器端网页开发技术,它可以嵌入Java代码和动态网页标签,用来生成动态的网页内容。 JavaBean是一种Java语言编写的可重用组件,它提供了一种简单的封装机制,用来封装数据和业务逻辑。JavaBean通常被用作数据传输对象(DTO),用来传递和存储数据,同时也可以被用作业务逻辑对象(BO),用来处理业务逻辑。 JSP和JavaBean之间的关系是很密切的,JSP页面通常会使用JavaBean来获取和处理数据,然后生成动态的网页内容。我们可以使用<jsp:useBean>标签在JSP页面中声明JavaBean对象,并使用<jsp:setProperty>标签来设置JavaBean属性的值,使用<jsp:getProperty>标签来获取JavaBean属性的值。在JavaBean中,我们可以使用JavaBean的get和set方法来获取和设置属性的值。 JSP和JavaBean的优点是可以很好地将业务逻辑和显示逻辑分离,提高了代码的可重用性和可维护性。同时,它们也提供了一种有效的数据封装和数据传输机制,以便进行数据的安全传输和处理。 总之,JSP和JavaBean是Java Web开发过程中非常重要的组件,它们的使用可以极大地提高开发效率和代码质量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值