回 帖 发 新 帖 刷新版面

主题:[讨论]我运行书上的JSP代码,不知道为什么不成功

setvalue.jsp:

<%@page session="true"%>
<html>
<head>
<title>session应用</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
</head>
<body bgcolor="#FF11FF" text="#000000">
<%
Integer number1=new Integer(2005);
String str1="年";
session.setAttribute("number2",number1);
session.setAttribute("str2",str1);
String URL1=response.encodeURL("getvalue.jsp");
%>
<h1 align="center">&nbsp;已将“2005”、“年”</h1>
<h1 align="center">&nbsp;存入session对象中!</h1>
<h1 align="center">&nbsp;</h1>
<h3 align="center"><a href='<%=URL1%>'>查看存入的数据</a></h3>
</body>
</html>

getvalue.jsp:
<%@page session="true"%>
<html>
<head>
<title>session应用</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
</head>
<body bgcolor="#FF11FF" text="#000000">
<p>
<%
Integer number1;
String str1;
number1=(Integer)session.getAttribute("number2");
str1=(String)session.getAttribute("str2");
%>
</p>
<h1>从session对象中取出的数据是:</h1>
<h1>&nbsp;<%=number1%><%=str1%>
</h1>
<h1>&nbsp;
<%
if(number1.parseInt==2005&amp;str1=="年")
out.print("session对象中存入的数据与取出的数据完全一致!");
else
out.print("session对象中存入的数据与取出的数据完全不一致!");
%>
</h1>
</body>
</html>

出现的错误是:
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: Unable to compile class for JSP

An error occurred at line: 21 in the jsp file: /getvalue.jsp
Generated servlet error:
F:\Tomcat\Tomcat 5.0\work\Catalina\localhost\web\org\apache\jsp\getvalue_jsp.java:68: operator == cannot be applied to java.lang.Integer,int
if(number1==2005&str1=="骞?")
          ^
1 error



    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


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


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

回复列表 (共2个回复)

沙发

number1.parseInt==2005&amp;str1=="年
应该是: Integer.parseInt(number1)==2005)

板凳

改了一下程序,运行成功了,这可能是JDK版本的问题
改了以后的程序是这样:
<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page session="true"%>
<html>
<head>
<title>session应用</title>

</head>
<body bgcolor="#FF11FF" text="#000000">
<p>
<%
Integer number1;
String str1;
number1=(Integer)session.getAttribute("number2");
str1=(String)session.getAttribute("str2");
%>
</p>
<h1>从session对象中取出的数据是:</h1>
<h1>&nbsp;<%=number1%><%=str1%>
</h1>
<h1>&nbsp;
<%
if(number1.intValue()==2005&str1=="年")
out.print("session对象中存入的数据与取出的数据完全一致!");
else
out.print("session对象中存入的数据与取出的数据完全不一致!");
%>
</h1>
</body>
</html>

我来回复

您尚未登录,请登录后再回复。点此登录或注册