这是图片显示代码 
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*" %> 
<%@ page import="java.util.*"%> 
<%@ page import="java.text.*"%> 
<%@ page import="java.io.*"%> 
<html> 
<body> 
<% 
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //加载驱动程序类 
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=upload","pxm","123"); 
Statement stmt=con.createStatement(); 
ResultSet rs=null; 
int id= Integer.parseInt(request.getParameter("id")); 
String sql = "select image from picturenews WHERE id="+id+""; 
rs=stmt.executeQuery(sql); 
while(rs.next()) { 
ServletOutputStream sout = response.getOutputStream(); 
//图片输出的输出流 
InputStream in = rs.getBinaryStream(1); 
byte b[] = new byte[0x7a120]; 
for(int i = in.read(b); i != -1;) 

sout.write(b); 
//将缓冲区的输入输出到页面 
in.read(b); 

sout.flush(); 
//输入完毕,清除缓冲 
sout.close(); 

%> 
</body> 
</html> 以下是报错内容 
org.apache.jasper.JasperException: Exception in JSP: /testimageout.jsp:13 10: Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=upload","pxm","123"); 
11: Statement stmt=con.createStatement(); 
12: ResultSet rs=null; 
13: int id= Integer.parseInt(request.getParameter("id")); 
14: String sql = "select image from picturenews WHERE id="+id+""; 
15: rs=stmt.executeQuery(sql); 
16: while(rs.next()) { 
Stacktrace: 
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
root cause java.lang.NumberFormatException: null 
java.lang.Integer.parseInt(Integer.java:415) 
java.lang.Integer.parseInt(Integer.java:497) 
org.apache.jsp.testimageout_jsp._jspService(testimageout_jsp.java:58) 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs. 不明白什么问题,请大虾帮忙!谢谢!

解决方案 »

  1.   

    t id= Integer.parseInt(request.getParameter("id"));
    id可能没取到值!!
      

  2.   

    最好象下面这样写. 
    ResultSet rs=null; String str = request.getParameter("id"); 
    if(str!=null){   int id= Integer.parseInt(str); 
      ... 
    }
      

  3.   

    id可能没取到值,可以抛出自己定义的异常来解决:String str = request.getParameter("id"); 
    if(str==null) throw new MyException();然后捕获这个异常并且重取