Java Bean技术

JavaBean

JavaBean是JavaWeb程序的重要组件,它是一些封装了数据和操作的功能类,供JSP或Servlet调用,完成数据封装和数据处理等功能。

JavaBean的设计

设计一个标准的JavaBean通常遵守以下规则

1.JavaBean是一个公共类
2.JavaBean类具有一个公共的无参的构造方法。
3.JavaBean所有属性定义为私有
4.在JavaBean中,需要对每个属性提供两种公共方法。假设属性名为xxx,两个方法为:
· setxxx():用来设置属性xxx的值
·· getxxx用来获取xxx的值(若属性是boolean类型),则方法名为isxxx()。
5.定义JavaBean时通常放在一个命名的包下。

JavaBean的安装部署

设计的JavaBean类经过编译后,必须部署到Web应用程序中,单个JavaBean类部署到相应工程的WEB-INF/classes下,JavaBean的打包类Jar部署到/WEB-INF/lib下

在JSP中使用JavaBean

在jsp页面中,可以通过脚本代码直接访问JavaBean,也可以通过jsp动作标签访问JavaBean

下面介绍用动作标签访问JavaBean
<jsp:useBean>:声明并创建JavaBean对象实例
格式:<jsp:useBean id="对象名" class="类名" scope="有效范围"/>
<jsp:setProperty>:对JavaBean对象的指定属性设置值
格式:<jsp:setProperty name="beanname" property="propertyname" value="beanvalue"/>
<jsp:getProperty>:获取JavaBean对象指定属性的值,并显示在网上。
格式:<jsp:getProperty name="beanname" property="propertyname"/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个关于数据库的问题,我会尽力回答。首先,我们需要在数据库中建立表格T_BOOK,可以使用如下的SQL语句: ``` CREATE TABLE T_BOOK ( BOOKID INT NOT NULL AUTO_INCREMENT, BOOKNAME VARCHAR(50) NOT NULL, BOOKPRICE DECIMAL(10,2) NOT NULL, PRIMARY KEY (BOOKID) ); ``` 接着,我们需要插入一些记录: ``` INSERT INTO T_BOOK (BOOKNAME, BOOKPRICE) VALUES ('Java入门', 68.00); INSERT INTO T_BOOK (BOOKNAME, BOOKPRICE) VALUES ('Spring实战', 98.00); INSERT INTO T_BOOK (BOOKNAME, BOOKPRICE) VALUES ('MyBatis深入浅出', 88.00); INSERT INTO T_BOOK (BOOKNAME, BOOKPRICE) VALUES ('Python编程', 78.00); INSERT INTO T_BOOK (BOOKNAME, BOOKPRICE) VALUES ('数据结构与算法', 58.00); ``` 然后,我们可以使用Java Bean技术的DAO和VO模式实现查询功能。首先,我们创建一个Book类作为VO(Value Object): ``` public class Book { private int bookId; private String bookName; private double bookPrice; // 省略getter和setter方法 } ``` 然后,我们创建一个BookDao类作为DAO(Data Access Object): ``` public class BookDao { public List<Book> queryBooks(double minPrice, double maxPrice) throws SQLException { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; List<Book> bookList = new ArrayList<Book>(); try { conn = DbUtil.getConnection(); String sql = "SELECT BOOKID, BOOKNAME, BOOKPRICE FROM T_BOOK WHERE BOOKPRICE >= ? AND BOOKPRICE <= ?"; pstmt = conn.prepareStatement(sql); pstmt.setDouble(1, minPrice); pstmt.setDouble(2, maxPrice); rs = pstmt.executeQuery(); while (rs.next()) { Book book = new Book(); book.setBookId(rs.getInt("BOOKID")); book.setBookName(rs.getString("BOOKNAME")); book.setBookPrice(rs.getDouble("BOOKPRICE")); bookList.add(book); } } finally { DbUtil.close(rs, pstmt, conn); } return bookList; } } ``` 其中,DbUtil是一个数据库工具类,负责获取数据库连接、关闭连接等操作。可以参考如下的实现: ``` public class DbUtil { // 数据库连接参数 private static final String URL = "jdbc:mysql://localhost:3306/test"; private static final String USER = "root"; private static final String PASSWORD = "root"; // 获取数据库连接 public static Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USER, PASSWORD); } // 关闭数据库连接 public static void close(ResultSet rs, Statement stmt, Connection conn) { try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } try { if (stmt != null) stmt.close(); } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 最后,我们可以在Servlet中调用BookDao的queryBooks方法,获取符合条件的图书信息,并将其展示在JSP页面上。 ``` public class BookServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { double minPrice = Double.parseDouble(request.getParameter("minPrice")); double maxPrice = Double.parseDouble(request.getParameter("maxPrice")); BookDao bookDao = new BookDao(); try { List<Book> bookList = bookDao.queryBooks(minPrice, maxPrice); request.setAttribute("bookList", bookList); request.getRequestDispatcher("/book_list.jsp").forward(request, response); } catch (SQLException e) { e.printStackTrace(); } } } ``` 在JSP页面上,我们可以使用JSTL标签库展示查询结果: ``` <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> ... <table> <tr> <th>书名</th> <th>价格</th> </tr> <c:forEach items="${bookList}" var="book"> <tr> <td>${book.bookName}</td> <td>${book.bookPrice}</td> </tr> </c:forEach> </table> ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值