首先是搞定javabean类,Price类如下:
package test;
public class Price{
  public float getPrice(String sBookName){
  if(sBookName.equals("Thingkng in Java"))
     return new Float(23.0);
  else if(sBookName.equals("Core Java 2"))
     return new Float(32.5);
  else if(sBookName.equals("Special Edition Using Java 2"))
     return new Float(29.6);
  else if(sBookName.equals("Java Coding"))
     return new Float(13.3);
  else if(sBookName.equals("JSP HandBook"))
     return new Float(63.2);
  else 
     return new Float(0);
  }
}
ShoppingCart.java类:
package test;
import javax.servlet.http.*;
import java.util.Vector;
import java.util.Enumeration;
public class ShoppingCart{
Vector<String>v=new Vector<String>();
String item=null;
String submit=null;
float fSum=0;
Price bookPrice=new Price();
private void addItem(String name){
  v.addElement(name);
  fSum=fSum+bookPrice.getPrice(name);
}
private void removeItem(String name){
if(v.removeElement(name)){
  fSum=fSum-bookPrice.getPrice(name);
  } 
}
public float getSumprice(){
return fSum;
}
public void setItem(String name){
item=name;
}
public void setSubmit(String s){
submit=s;
}
public String[] getItems(){
String[] s=new String[v.size()];
v.copyInto(s);
return s;
}然后把两个类放到F:\Tomcat\webapps\mytop\WEB-INF\CLASSES\test中, 在CMD环境下,编译成功,生成CLASS,然后我把源文件剪裁出来,只留下两个CLASS文件,再编写JSP文件:
<% @ page language="java" contentType="text/html";charset="GBK" session="true"%>
<html>
<jsp:useBean id="cart" scope="session" class="test.ShoppingCart"/>
<jsp:setproperty name="cart" property="*"/>
<%
cart.processRequest(request);
%>
<br>在您的购物车中有以下的书目:
<ol>
<%
String[] items=cart.getItems();
float fSum=cart.getSumprice();
for (int i=0;i<items.length;i++){
%>
<li><% out.print(items[i]);%>
<%
}
%>
<br><br>
总金额为:
<%out.print(fSum);%>
</ol>
<hr>
<form method="post" action="carts.jsp">
<br>
请选择添加或者删除您想购买的书目:
<br>
<SELECT NAME="item">
<OPTION>Thinking in Java</OPTION>
<OPTION>Core Java 2</OPTION>
<OPTION>Special Edition Using Java 2</OPTION>
<OPTION>Java Coding</OPTION>
<OPTION>JSP HandBook</OPTION>
</SELECT>
<br><br>
<INPUT TYPE=submit name="submit" value="add">
<INPUT TYPE=submit name="submit" value="remove">
</form>
</html>
在IE中运行就出现错误了:
org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:156)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:600)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.lang.ClassNotFoundException: org.apache.jsp.carts_jsp
java.net.URLClassLoader$1.run(URLClassLoader.java:200)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:598)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
能够确定的是环境设置应该没问题,因为我先前已经编译了一个简单的javabean类型文件,正常运行,网上查了很久,也没发现究竟什么问题,望大大些帮帮忙,我是新手...