这个java文件不能生成字节码文件.也不能用Bean放到JSP中.

问题描述

这个就不能生成class文件packageiteam;importjava.util.*;importjava.sql.*;importjava.text.*;publicclassShoppingCart{HashMapitems=null;publicShoppingCart(){items=newHashMap();}publicsynchronizedvoidadd(StringISBN)throwsException{if(items.containsKey(ISBN)){ShoppingCartItemitem=(ShoppingCartItem)items.get(ISBN);item.quantity++;}else{Stringsql="select*fromindentwhereISBN='"+ISBN+"'";DBHandledbhandle=newDBHandle();ResultSetrs=dbhandle.executeQuery(sql);ShoppingCartItemnewItem=newShoppingCartItem();if(rs.next()){newItem.ISBN=rs.getString("ISBN");newItem.name=rs.getString("name");newItem.category=rs.getString("category");newItem.provanence=rs.getString("provenance");newItem.price=rs.getFloat("price");newItem.quantity=1;dbhandle.closeResource();items.put(ISBN,newItem);}}}publicsynchronizedvoidsetItem(StringISBN,intnum){if(items.containsKey(ISBN)){ShoppingCartItemitem=(ShoppingCartItem)items.get(ISBN);item.quantity=num;}}publicsynchronizedvoidremove(StringISBN){items.remove(ISBN);}publicsynchronizedIteratorgetItems(){Collectionc=items.values();returnc.iterator();}protectedvoidfinalize()throwsThrowable{items.clear();}publicsynchronizedintgetNumberOfItems(){returnitems.size();}publicsynchronizeddoublegetTotal(){doubleamount=0.0;for(Iteratori=getItems();i.hasNext();){ShoppingCartItemitem=(ShoppingCartItem)i.next();amount+=item.quantity*item.price;}returnroundOff(amount);}privatedoubleroundOff(doublex){longval=Math.round(x*100);returnval/100;}publicsynchronizedvoidclear(){items.clear();}publicintpayOrder(Stringusername,Stringtruename,Stringpostcode,Stringaddress,Stringtelephone,Stringmemo)throwsException{Connectionconn=null;intorderID=0;DBHandledbhandle=newDBHandle();try{conn=dbhandle.getConnection();conn.setAutoCommit(false);Statementstmt=conn.createStatement();doubletotal=getTotal();SimpleDateFormatdataFormat=newSimpleDateFormat("yyyy-MM-dd-HH:mm:ss");StringorderDate=dataFormat.format(newjava.util.Date());Stringsql="insertintoindent(username,truename,address,postcode,"+"telephone,memo,totalPrice,isPay,isDeliver,orderDate)values('"+username+"','"+truename+"','"+address+"','"+postcode+"','"+telephone+"','"+memo+"',"+total+",'0','0','"+orderDate+"')";System.out.print(sql);stmt.executeUpdate(sql);sql="selectmax(orderID)asmaxOrderIDfromindent";System.out.println(sql);ResultSetrs=stmt.executeQuery(sql);rs.next();orderID=rs.getInt(1);Iteratori=getItems();while(i.hasNext()){ShoppingCartItemitem=(ShoppingCartItem)i.next();intquantity=item.quantity;StringISBN=item.ISBN;doubleprice=item.price;sql="inserintoindent(ISBN,quantity,price,orderID)values("+ISBN+","+quantity+","+price+","+orderID+")";stmt.executeUpdate(sql);}conn.commit();conn.setAutoCommit(true);}catch(Exceptionex){conn.rollback();System.out.println(ex.getMessage());}finally{dbhandle.closeResource();}returnorderID;}....................................................................它调用的是这个类:packageiteam;publicclassShoppingCartItem{publicStringISBN=null;publicStringname=null;publicfloatprice=0.0F;publicStringimage=null;publicStringprovanence=null;publicStringcategory=null;publicintquantity;}}这个是JSP文件:<%@pagelanguage="java"contentType="text/html;charset=utf-8"pageEncoding="utf-8"%><%@includefile="common.jsp"%><jsp:useBeanid="cart"class="iteam.ShoppingCart"scope="session"/><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"><title>Inserttitlehere</title></head><body><%Stringdelete=request.getParameter("delete");Stringupdate=request.getParameter("update");Stringclear=request.getParameter("clear");StringISBN=request.getParameter("ISBN");intqty=0;intcount=0;if(ISBN!=null){cart.add(ISBN);}if(clear!=null){cart.clear();}if(delete!=null){cart.remove(delete);}if(update!=null){count=cart.getNumberOfItems();for(inti=1;i<count;i++){//ISBN=request.getParameter("no"+1);qty=Integer.parseInt(request.getParameter("qty"+i));cart.setItem(ISBN,qty);}}if(cart.getNumberOfItems()==0){out.println("您的购物车为空!<inputtype=buttonname=Gobackvalue=继续购物onclick=javascript:windows.location='goods.html'>");}else{%><formname="form1"method="post"action="add.jsp"><tablewidth="700"border="1"align="center"cellpadding="0"cellspacing="0"bordercolor="#2A9FFF"background="image/bg-0002.gif"><tr><tdwidth="99"><divalign="center">商品名称</div></td><tdwidth="111"><divalign="center">商品类别</div></td><tdwidth="73"><divalign="center">单价</div></td><tdwidth="57"><divalign="center">数量</div></td><tdwidth="57"><divalign="center">总价</div></td><tdwidth="171"><divalign="center">会员信息管理</div></td></tr><%inti=0;while(cart.getItems().hasNext()){ShoppingCartItemitem=(ShoppingCartItem)cart.getItems().next();i++;%><tr><tdheight="35"><divalign="center"><%=item.ISBN%></div></td><td><divalign="center"><%=item.category%></div></td><td><divalign="center"><%=item.price%></div></td><td><divalign="center"><inputname="qut<%=i%>"type="text"value=<%=item.quantity%>><inputname="no<%=i%>"type="hidden"></div></td><td><divalign="center"><%=item.price*item.quantity%></div></td><td><divalign="center"><ahref="shoppingcar.jsp?delete=<%=item.ISBN%>">删除</a></div></td></tr></table><%}%><palign="center">合计:<fontcolor=red><%=cart.getTotal()%></font>元<br/><br/><inputtype="button"name="back"value="继续购物"onclick=javascript:window.location='goods.html'><inputtype="button"value="去收银台结帐"onclick=javascript:window.location=''><inputtype="submit"name="update"id="button"value="更新"><inputtype="submit"name="clear"id="button"value="清空购物车"></p></form><%}%></body></html>运行后说:org.apache.jasper.JasperException:/shoopingcart.jsp(5,2)ThevaluefortheuseBeanclassattributeiteam.ShoppingCartisinvalid.帮帮忙看看!谢谢

时间: 2024-07-28 14:55:08

这个java文件不能生成字节码文件.也不能用Bean放到JSP中.的相关文章

ESD文件转换生成WIM/ISO文件图文教程

  ESD格式的文件时微软在Windows8开始使用的一种新的系统映像文件压缩格式,比WIM又更高的压缩率,但目前仅有DISM支持ESD文件的处理.另外,绝大多数的ESD文件都是加密的,DISM还无法直接处理.所以,最好的方法就是将ESD文件解密之后转换成WIM或包含WIM的ISO格式映像文件. ESD转WIM/ISO步骤 1.下载并解压esd decrypter v4c 汉化中文版,将ESD格式的文件置于esd decrypter批处理文件的目录中. 2.以管理员身份运行"decrypt_CH

Java 将字符串动态生成字节码的实现方法_java

可以生成可执行的class文件 直接上能执行代码: 复制代码 代码如下: public class Test { /**  * @param args  */@SuppressWarnings("static-access")public static void main(String[] args) {  try {   new Test().calculate("234 - ( 1 + 45 * 4 ) / 5");  } catch (Exception e)

从字节码层面看“HelloWorld” (转)

一.HelloWorld 字节码生成 众所周知,Java 程序是在 JVM 上运行的,不过 JVM 运行的其实不是 Java 语言本身,而是 Java 程序编译成的字节码文件.可能一开始 JVM 是为 Java 语言服务的,不过随着编译技术和 JVM 自身的不断发展和成熟,JVM 已经不仅仅只运行 Java 程序.任何能编译成为符合 JVM 字节码规范的语言都可以在 JVM 上运行,比较常见的 Scala.Groove.JRuby等.今天,我就从大家最熟悉的程序"HelloWorld"

Java Class字节码知识点回顾

把之前的笔记重新整理了一下,发上来供对java Class文件结构的有兴趣的同学参考一下,也算对以前知识的回顾. Java Class文件打破了C或者C++等语言所遵循的传统,用这些传统语言写的程序通常首先被编译,然后被连接成单独的.专门支持特定硬件平台和操作系统的二进制文件.通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作. Java Class文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件,Class文件中包含了java虚拟机指令集和符号表以及若干其他辅

使用ASM操作Java字节码,实现AOP原理

本文通过一个的例子来实现:使用ASM动态生成Java字节码文件(.class) 或者 加载字节码后动态修改字节码,添加我们需要执行的代码,来模拟实现Spring AOP. 年底了,也没心情抠字了,把写demo包含的几个类代码直接贴出来吧,代码拷贝下来后可以直接使用,不会有什么其他错误. 使用 asm-5.0.3.jar demo工程的package为com.shanhy.demo.asm.hello 5个Java文件: AopClassAdapter.java 用来处理哪些方法需要进行修改 Ao

关于java字节码框架ASM的学习

一.什么是ASM ASM是一个java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能.ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为.Java class 被存储在严格格式定义的 .class文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称.方法.属性以及 Java 字节码(指令).ASM从类文件中读入信息后,能够改变类行为,分析类信息,甚至能够根据用户要求生成新类. 使用ASM框架需要导入asm的jar包,下载链接:

请帮忙把字节码翻译成java代码

问题描述 请帮忙把字节码翻译成java代码 有人能帮忙把下面的字节码翻译成对应的java代码吗,谢谢 // Byte code: // 0: ldc 40 // 2: dup // 3: astore_2 // 4: monitorenter // 5: aconst_null // 6: astore_3 // 7: aconst_null // 8: astore 4 // 10: aconst_null // 11: astore 5 // 13: aload_1 // 14: invok

掌握Java字节码(转)

Java是一门设计为运行于虚拟机之上的编程语言,因此它需要一次编译,处处运行(当然也是一次编写,处处测试).因此,安装到你系统上的JVM是原生的程序,而运行在它之上的代码是平台无关的.Java字节码就是你写的源代码的中间表现形式,也就是你的代码编译后的产物.你的class文件就是字节码. 简单点说,字节码就是JVM使用的代码集,它在运行时可能会被JIT编译器编译成本地代码. 你玩过汇编语言或者机器代码吗?字节码就是类似的东西,不过业界中许多人也很少会用及它,因为基本没这个必要.然而它对于理解程序

【转】动态字节码技术跟踪Java程序

 Whats is Java Agent?   .. java.lang.instrument.Instrumentation   之前有写 基于AOP的日志调试 讨论一种跟踪Java程序的方法, 但不是很完美.后来发现了 Btrace , 由于它借助动态字节码注入技术 , 实现优雅且功能强大. 只不过, 用起来总是磕磕绊绊的, 时常为了跟踪某个问题, 却花了大把的时间调试Btrace的脚本. 为此, 我尝试将几种跟踪模式固化成脚本模板, 待用的时候去调整一下正则表达式之类的. 跟踪过程往往是假