新手问题,希望能得到帮助

jzuo 2003-11-30 06:33:28
winxp+apache+tomcat5.0
刚开始学jsp,照书上网上调查的例子写下来,结果出问题了:
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: String index out of range: -1
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


root cause

java.lang.StringIndexOutOfBoundsException: String index out of range: -1
java.lang.String.substring(String.java:1480)
org.apache.jsp.survey.vote.poll_005fresult_jsp._jspService(poll_005fresult_jsp.java:80)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


note The full stack trace of the root cause is available in the Tomcat logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.0.14



源代码如下:
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@ page language="java" contentType="text/html;charset=gb2312" import="java.util.*,java.lang.*,java.io.*"%>
<%
String action=request.getParameter("action");
String vote=request.getParameter("vote");
String polldata="";
if(action.compareTo("poll")==0)
{
String resultsDir="d:/tomcat/webapps/Root/survey/";
FileWriter resultsFile=new FileWriter(resultsDir +System.getProperty("file.separator")+"vote.txt",true);
File myfile=new File(resultsDir+System.getProperty("file.separator")+"vote.txt");
if(!(myfile.exists()))
{
PrintWriter toFile=new PrintWriter(resultsFile);
if(vote.compareTo("shopping")==0)
polldata="1:0:0";
if(vote.compareTo("support")==0)
polldata="0:1:0";
if(vote.compareTo("product")==0)
polldata="0:0:1";
toFile.println("polldata");
resultsFile.close();
out.println(polldata);
}
else
{
FileInputStream tfile=new FileInputStream(resultsDir+System.getProperty("file.separator")+"vote.txt");
String str="";
int c;
while((c=tfile.read())!=-1)
{
str=str+(char)c;
}
int first=str.indexOf(":");
int last=str.lastIndexOf(":");
int lenth=str.length();
String First=str.substring(0,first);
String Next=str.substring(first+1,last);
String Last=str.substring(last+1,lenth);
tfile.close();
Long a1=new Long(First);
Long a2=new Long(Next);
Long a3=new Long(Last);
long b1=a1.longValue();
long b2=a2.longValue();
long b3=a3.longValue();
if(vote.compareTo("shopping")==0)
b1=b1+1;
if(vote.compareTo("support")==0)
b2=b2+1;
if(vote.compareTo("product")==0)
b3=b3+1;
Long c1=new Long(b1);
Long c2=new Long(b2);
Long c3=new Long(b3);
String d1=c1.toString();
String d2=c2.toString();
String d3=c3.toString();
str=d1+":"+d2+":"+d3;
RandomAccessFile savefile=new RandomAccessFile(resultsDir+System.getProperty("file.separator")+"vote.txt","rw");
savefile.writeBytes(str);
savefile.close();
}
%>
<script language=javascript>
alert ("Thanks for your voting!");
self.location="../index.jsp"
</script>
<%
}
%>
...全文
27 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jan4984 2003-11-30
  • 打赏
  • 举报
回复
是字符串越界了。
把tomcat的log调出来可以看到到底是哪行出错。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧