用于新闻发布,为了查看每个新闻,<a href="newsdisplay.jsp?newsid=<%=bean.getNewsid()%>">
在另外一个JSP 文件中
   int newsid=Integer.parseInt(request.getQueryString());
   String sql="select * from news where news_id='newsid'"; 
   ResultSet rs=stmt.executeQuery(sql); 
产生的错误为 HTTP ERROR: 500 For input string: "newsid=1"
1为bean.getNewsid();
请问哪里不对?
该怎么做?

解决方案 »

  1.   

    int newsid=Integer.parseInt(request.getParameter("newsid"));
      

  2.   

    这样就可以了吗?
    我同意楼上,但这句是不是应该为 
    String sql="select * from news where news_id='"+newsid+"'"; 
      

  3.   

    你们说的都不对
       String newid=request.getParameter("newsid");
       int id=Integer.parseInt(newid);
       String sql="select * from news where news_id="+id; 
       ResultSet rs=stmt.executeQuery(sql); 
    仍有错误
    HTTP ERROR: 500 [Microsoft][SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor position
      

  4.   

    他们说得都没错。   String newid=request.getParameter("newsid");
       int id=Integer.parseInt(newid);
       String sql="select * from news where news_id='"+id+"'"; 
       ResultSet rs=stmt.executeQuery(sql); 
    现在你看到的错误信息是查询数据库时抛出的
    如果你的news_id字段在数据库中定义为非数字类型那么一定要加''引号的
    不过建议你这样写   String newid=request.getParameter("newsid");
       int id=Integer.parseInt(newid);
       String sql="select * from news where news_id=?"; 
       
       // 如果数据库中定义的是非数字类型,这样写
       stmt.setString(1, String.valueOf(id)); 
       // 如果数据库中定义的是数字类型,这样写
       stmt.setInt(1, id);    ResultSet rs=stmt.executeQuery(sql);
      

  5.   

    想知道谁错了吗。
    catch(SQLException e)
    {
    while(e!=null){
     out.print(e.getErrorCode());
    out.print(e.getSQLState());
    out.print(e.getMessage());
    e=e.getNextException();
    }
    }看有什么异常不就可以了。
      

  6.   

    楼上太麻烦了吧
    e.printStack();就可以了,具体方法名忘了.楼猪这问题后来是流标类型问题了.