-- 作者:dorothyle
-- 发布时间:8/7/2011 6:27:00 PM
-- [求助]表单调用servlet,servlet调用jsp,调试通不过!
该工程实现用户登录界面。check.html提供用户输入用户帐号,如果输入错误,则重新输入,如果正确则显示帐户余额。现在的情况是如果帐号不正确,可以链接到指定的页面进行重新输入;如果帐户输入正确,则提示类属性值无效。整个工程包括四个文件: 1. check.html:表单调用servlet,并将用户输入的accountNo值传递给servlet; 2. GetAccount:这是一个servlet,接受表单的post请求,如果用户输入的帐号不正确,则调用check.html表单,提示用户重新输入帐号;如果用户输入的帐号正确,则调用showBalance.jsp,显示帐户姓名,以及余额。但这步总是提示: org.apache.jasper.JasperException: /showBalance.jsp(9,0) The value for the useBean class attribute chapter41.account is invalid. 3. 类account文件:我将这个类编绎以后的类文件放在Tomcat 6.0\webapps\root\WEB-INF\classes\文件夹下,将GetAccount的类文件也放置在上述目录下。 如果大家谁有时间,谁有条件,能否在自己的机器上配置一下,帮我看一下是哪里的问题?万分感谢! check.html源代码: <html> <head><title>JSP+Servlet+JavaBean实例</title></head> <h2>帐户查询</h2> <h3>请输入帐户编号</h3> <body> <form action="servlet/chapter41.GetAccount" method="POST"> 帐户编号:<input type="text" name="accountNo" size="20" maxlength="20"><br><br> <input type="submit" name="submit" value="查询"> </form> </body> </html> GetAccount源代码: package chapter41; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class GetAccount extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String accountNum = (String)request.getParameter("accountNo"); /*模拟数据库,通过姓名查找帐户信息对象*/ account oneAccount = (account)account.getAccountInfo(accountNum); if (oneAccount == null){ /*如果找不到相应帐户信息,则创建该帐户信息*/ /*没有输入帐户号或帐号在数据库中不存在,则转入初始页面*/ response.sendRedirect("../check.html"); return; } /*把客户信息放在request请求对象中*/ request.setAttribute("account",oneAccount); /*显示客户信息的jsp*/ response.sendRedirect("../showBalance.jsp"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } } account类文件: package chapter41; import java.util.*; public class account{ protected String accountNum=""; protected String name=""; protected double balance=0; /*构造函数*/ public account(String accountNum, String name, double balance){ this.accountNum = accountNum; this.name = name; this.balance = balance; } /*模拟数据库建立几个帐户信息对象以供查找*/ protected static account firstAccount=new account("1110812006","dorothyle",3000.0); protected static account secAccount=new account("86477456239","Michael",5000000.0); protected static account trdAccount=new account("48961856232","John",66800.0); /*通过帐号查找客户余额等信息*/ public static account getAccountInfo(String accountNum){ if (accountNum == null||accountNum.equals("")){ return null; }else if (firstAccount.getAccountNum().equals(accountNum)){ return firstAccount; }else if (secAccount.getAccountNum().equals(accountNum)){ return secAccount; }else if (trdAccount.getAccountNum().equals(accountNum)){ return trdAccount; }else{ return null; } } /*get() 方法*/ public String getAccountNum(){ return accountNum; } public String getName(){ return name; } public double getBalance(){ return balance; } } showBalance.jsp源代码: <%@ page contentType="text/html;charset=GB2312" %> <HTML> <HEAD> <title>JSP+Servlet+JavaBean实例</title> </HEAD> <H2>帐户信息显示</H2> <BODY> <jsp:useBean id="account" scope="request" class="chapter41.account" /> <H3>欢迎您,<jsp:getProperty name="account" property="name" /> </H3> <H4> 下面是您帐户的最新信息:</H4> 帐户编号:<jsp:getProperty name="account" property="accountNum"/> <BR>帐户余额:<jsp:getProperty name="account" property="balance"/> </BODY> </HTML> web.xml配置文件: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>GetAccount</servlet-name> <servlet-class>chapter41.GetAccount</servlet-class> </servlet> <servlet-mapping> <servlet-name>GetAccount</servlet-name> <url-pattern>/servlet/GetAccount</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
|