java web中bean_【javaWeb】Bean包中简单说明应用

‍jsp:useBean

jsp:useBean用来加载JSP页面中的JavaBean 使用语法如下

id="beanInstanceName"

scope="page|request|session|application"

class="package.class"

type=“指定应用该对象的变量类型,他必须是Bean类的名称,超类的名称,该类所实现接口名字之一。记住变量的名字是由id属性所指定的”

beanName=“指定Bean的名称,如果提供了type和beanName的属性,允许省略class属性”、、后两者属性不常用。

>

其中id指明该JavaBean的实例变量的名称,scope指定该bean变量的有效范围,

page仅仅在该页面有效。

request在本次请求有效。

session在本次回话有效

4.    application在服务器运行期间一直有效。

Bean在自己的域内只加载一次!!!

scope之所以很重要是因为jsp:useBean只在不存在相同id和scope的对象时才会实例化出新的对象,如果已有id和scope都相同的对象,则直接使用已有的对象,此时jsp:useBean开始标记和结束标记之间的任何内容都将被忽略。

jsp:setProperty

jsp:setProperty可以设置已经实例化的bean对象的属性(每次使用useBean就为创建了一个实例),他有两方法:

第一在jsp:useBean 元素的后面使用jsp:setProperty。

......

//在此可以把所有请求提交过来的链接里的参数和bean中一一对应的赋值,前提是bean中和///请求的的元素名字一样,包括大小写也一样。

在上面设置参数过程中,name属性,property属性是必须有的,value和param是选填的。

第二种是直接把放入到jsp:useBean的元素内部。

....

此时只有在新建实例bean的时候会执行,如果使用现有的实例,则不执行

jsp:getProperty

jsp:getProperty可以获取Bean的值,用于在页面显示。语法格式为

name="已经存在bean实例的名称"

property=“指定bean中的属性名称”

注意事项

不能检索一个已经被检索一次的属性,也就是说一个实例中的属性只能被检索一次。

如果getProperty 检索出来的是空值,则系统会抛出NullPointException。

font

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
servlet+jsp+javaBean开发的网站书店(完整源码) java,jsp,web,servlet,j网上商城源码 package com.lovo.cq.shopping10_1.daoimpl; import com.lovo.cq.shopping10_1.common.DbUtil; import com.lovo.cq.shopping10_1.dao.OrderDao; import com.lovo.cq.shopping10_1.po.Order; import com.lovo.cq.shopping10_1.po.OrderItem; import com.lovo.cq.shopping10_1.po.User; import java.sql.*; import java.util.ArrayList; import java.util.List; public class OrderDaoImpl implements OrderDao { /** * 添加订单,并返回订一个单号 * @param order 一个订单 * @return int 返回一个整型的订单号 */ public int addOrder(Order order) { int orderId = 0; PreparedStatement pstmt_order = null; //用于对订单进行操作的预定义语句 PreparedStatement pstmt_item = null; //用于对订单项进行操作的预定义语句 ResultSet rs = null; DbUtil dbUtil = null; String sql_order = "insert into tb_order values(null,?,?,?,?,?,null,?)"; try { //事物处理 dbUtil = new DbUtil(); dbUtil.getCon().setAutoCommit(false); //将订单的数据录入数据库 pstmt_order = dbUtil.getCon().prepareStatement(sql_order); pstmt_order.setString(1, order.getUser().getName()); pstmt_order.setString(2, order.getUser().getAddress()); pstmt_order.setString(3, order.getRecvName()); pstmt_order.setString(4, order.getUser().getPostcode()); pstmt_order.setString(5, order.getUser().getEmail()); pstmt_order.setInt(6,order.getFlag() ); pstmt_order.executeUpdate(); rs = pstmt_order.getGeneratedKeys();//取得主键 rs.next(); orderId = rs.getInt(1); //返回一个订单号 //将订单项的数据录入数据库 String sql_item = "insert into tb_orderItem values(null,?,?,?,?,?)"; pstmt_item = dbUtil.getCon().prepareStatement(sql_item); List orderItem = order.getOrderItem();//得到所有订单项 for(int i=0;i<orderItem.size();i++) { OrderItem orderItems = (OrderItem)orderItem.get(i); pstmt_item.setInt(1, orderId); pstmt_item.setInt(2, orderItems.getBookId()); pstmt_item.setString(3, orderItems.getBookName()); pstmt_item.setFloat(4, orderItems.getPrice()); pstmt_item.setInt(5, orderItems.getBookNum()); pstmt_item.addBatch(); } pstmt_item.executeBatch(); dbUtil.getCon().commit(); } catch (SQLException e) { e.printStackTrace(); try { dbUtil.getCon().rollback(); } catch (SQLException e1) { e1.printStackTrace(); } }finally { try { rs.close(); pstmt_order.close(); pstmt_item.close(); dbUtil.close(); } catch (SQLException e) { e.printStackTrace(); } } return orderId; } //根据当前用户的用户名查订单 public List selectOrder(String name) { List list = new ArrayList(); Order or = null ; DbUtil dao = new DbUtil(); PreparedStatement pre = null; ResultSet re = null; String sql = "select * from tb_order where name=?"; try { pre = dao.getCon().prepareStatement(sql); pre.setString(1, name); re =pre.executeQuery(); while(re.next()){ or = new Order (); User user = new User(); or.setOrderId(re.getInt("orderId")); user.setName(re.getString("name")); or.setRecvName(re.getString("recvName")); user.setAddress(re.getString("address")); user.setPostcode(re.getString("postcode")); user.setEmail(re.getString("email")); or.setUser(user); or.setOrderDate(re.getString("orderDate")); or.setFlag(re.getInt("flag")); list.add(or); } } catch (SQLException e) { e.printStackTrace(); } return list; } // 根据订单号查订单项 public List selectOrderItem(int id ) { List list = new ArrayList(); OrderItem ordetrItem = null ; DbUtil dao = new DbUtil(); PreparedStatement pre = null; ResultSet re = null; String sql = "select * from tb_orderItem where orderId = ? "; try{ pre = dao.getCon().prepareStatement(sql); pre.setInt(1, id); re =pre.executeQuery(); while(re.next()){ ordetrItem = new OrderItem(); ordetrItem.setBookId(re.getInt("bookId")); ordetrItem.setBookName(re.getString("bookName")); ordetrItem.setBookNum(re.getInt("bookNum")); ordetrItem.setOrderId(re.getInt("orderId")); ordetrItem.setOrderItemId(re.getInt("orderItemId")); ordetrItem.setPrice(re.getFloat("price")); list.add(ordetrItem); } }catch (Exception e) { } return list; } }

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值