servlet代码如下:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;public class Inquire extends HttpServlet{ 
public void init(ServletConfig config) throws ServletException{super.init(config);
}
//通过Post方法按名字查询记录:

public void doPost(HttpServletRequest request,HttpServletResponse response)
 throws ServletException,IOException{  
PrintWriter out=response.getWriter();
    response.setContentType("text/html;charset=GB2312");//设置响应的MIME类型。
    out.println("<HTML>");
    out.println("<BODY>");
     //获取提交的姓名:
    String name=request.getParameter("name");
    out.print("test<br/>");
    String number,xingming;
    Connection con=null;
    Statement sql=null;
    ResultSet rs=null;
    int math,english,physics;    try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
         }
        catch(ClassNotFoundException e){}
      try
        { con=DriverManager.getConnection("jdbc:odbc:sun");
          sql=con.createStatement();
          String condition="SELECT * FROM students WHERE 姓名 = "+"'"+name+"'";
          rs=sql.executeQuery(condition);
          out.print("test<br/>");
          out.print("<Table Border>");
          out.print("<TR>");
          out.print("<TH width=100>"+"Number");
          out.print("<TH width=100>"+"Name");
          out.print("<TH width=50>"+"Math");
          out.print("<TH width=50>"+"English");
          out.print("<TH width=50>"+"Phsics");
          out.print("</TR>");
        while(rs.next()){ 
         out.print("<TR>");
         out.print("test<br/>");
            number=rs.getString(1);
            out.print("<TD >"+number+"</TD>");
            xingming=rs.getString(2);
            out.print("<TD >"+xingming+"</TD>");
            math=rs.getInt("数学成绩");
            out.print("<TD >"+math+"</TD>");
            english=rs.getInt("英语成绩");
            out.print("<TD >"+english+"</TD>");
            physics=rs.getInt("物理成绩");
            out.print("<TD >"+physics+"</TD>");
            out.print("</TR>") ;
            }
            out.print("</Table>");
            out.print("test<br/>");
            con.close();
          }
         catch(SQLException e){
              }
         out.println("</BODY>");
         out.println("</HTML>");
      }
  }
jsp代码如下:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY bgcolor=cyan>
<Font size=1>
<FORM action="examples/servlet/Inquire" Method="post">
<P>成绩查询
<P>输入姓名:
<Input type=text name="name">
<Input type=submit name="g" value="提交">
</BODY>
</HTML>
我在servlet中加了几个out.print("test<br/>");进行测试,结果只出现一个,如果不写,调用的页面为空白页,不知道代码什么地方错了,请指教。

解决方案 »

  1.   

    lz不觉得这样写太累?去弄得dao和biz,servlet里调用biz
      

  2.   

     try
      { con=DriverManager.getConnection("jdbc:odbc:sun");
      sql=con.createStatement();
      String condition="SELECT * FROM students WHERE 姓名 = "+"'"+name+"'";
      rs=sql.executeQuery(condition);
      out.print("test<br/>");这个test也没输出啊,到第怎么弄啊,我是新手,不怎么会
      

  3.   

    web.xml  肯定设置的,要不也不会有显示阿实在不知道那里错了,请知情者帮忙
      

  4.   

    SQL语拼的就有问题呀:
    String condition="SELECT * FROM students WHERE 姓名 = "+"'"+name+"'";
    应该是:
    String condition = "SELECT * FROM students WHERE 姓名 = '"+name+"'";
    out.print("test<br/>");有四个,我无法知道执行的是哪一个...
      

  5.   

    很明显是sql执行查询语句的时候出错了。。
    很有一个可能是 name的值等于null 时出错。
    可以先写死一个来进行调试。如
    String condition = "SELECT * FROM students WHERE 姓名 = '张三'";这样就能慢慢找出原因了
      

  6.   

    应该是你的sql语句出错了,你这样写看看String Sql = "SELECT * FROM students WHERE 姓名="+name;