Servlets显示不同的输出?

时间:2013-04-05 08:50:53

标签: java java-ee servlets

我使用的是一个简单的servlet代码:

        myCon = DriverManager.getConnection(url);


        myStmt = myCon.createStatement();
        ResultSet rs;

        String course = req.getParameter("Course").trim();

         out.println(course);///////HERE IS THE PROBLEM

        String query="select * from TBSolvedbanks where COURSE_CODE='"+course+"' ;";
        rs=myStmt.executeQuery(query);


        out.println("<BANKS>");

        while(rs.next())
        {
            out.println("<BANK>");
            out.println("<NUMBER>"+rs.getString("NUMBER")+"</NUMBER>");
            out.println("<NAME>"+rs.getString("NAME")+"</NAME>");
            out.println("<TITLE>"+rs.getString("TITLE")+"</TITLE>");
            out.println("<DESCRIPTION>"+rs.getString("DESCRIPTION")+"</DESCRIPTION>");
            out.println("<MODULE_TAG>"+rs.getString("MODULE_TAG")+"</MODULE_TAG>");
            out.println("<ADDITIONAL_TAGS>"+rs.getString("ADDITIONAL_TAGS")+"</ADDITIONAL_TAGS>");
            out.println("</BANK>");

        }
        out.println("</BANKS>"); 
    }

当我在Jboss服务器上运行此代码时,它工作正常并打印出来:

                BEME1104
                <BANKS>
                <BANK>
               <NUMBER>1</NUMBER>
               <NAME>firstbank</NAME>
               <TITLE>Question Bank 1</TITLE>
               <DESCRIPTION>in this file,we discussed basic things including shortnotes          of Properties of substances and aproaches</DESCRIPTION>
               <MODULE_TAG>MODULE I</MODULE_TAG>
               <ADDITIONAL_TAGS>Uses of point,path function,processes,equilibrium,curves</ADDITIONAL_TAGS>
               </BANK>

但是当我评论这一行时

               out.println(course);

它打印的值没有像这样的标记:

"1 firstbank Question Bank 1 in this file,we discussed basic things including shortnotes of Properties of substances and aproaches MODULE I Uses of point,path function,processes,equilibrium,curves"

我不知道为什么我遇到这个问题,而相同的代码在另一个servlet中运行正常。请帮助我,我是servlets的新手?

2 个答案:

答案 0 :(得分:1)

检查浏览器中的页面来源。您没有设置响应的内容类型。因此浏览器可能会将第一个显示为纯文本,因为它不会以任何类似HTML的内容开头,并尝试将第二个显示为HTML,但由于它不是有效的HTML,因此看起来不太好。

如果您希望始终将响应显示为纯文本,请添加

response.setContentType("text/plain");

答案 1 :(得分:-1)

@Navdeep Singh Bedi ......

在循环播放之前使用以下代码,然后重试....

PrintWriter out = response.getWriter();