2013-02-20 183 views
0

我正在使用Eclipse IDE和下面的代碼在瀏覽器上給出空白屏幕。我不知道爲什麼它顯示空白屏幕。有什麼想法嗎? 在此先感謝。Servlet:空白屏幕

/** 
* Servlet implementation class Ch1Servlet 
*/ 
public class Ch1Servlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 


    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
     // TODO Auto-generated method stub 
     PrintWriter out=response.getWriter(); 
     Date dat=new Date(); 
     System.out.println(dat); 
     out.println("<html>" + "<body>" + "<h1>Heello world</h1>" + dat + "</body>" + "</html>");  
    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    } 
} 

請找到部署描述符文件。 web.xml中:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
    <display-name>Monte</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 
    <servlet> 
    <description></description> 
    <display-name>Ch1Servlet</display-name> 
    <servlet-name>Ch1Servlet</servlet-name> 
    <servlet-class>Ch1Servlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Ch1Servlet</servlet-name> 
    <url-pattern>/Ch1Servlet</url-pattern> 
    </servlet-mapping> 
</web-app> 
+1

請出示你的'的serlvet,mapping''url'以及如何嘗試訪問這個servlet。一旦完成了你的'PrintWriter',你應該也可以調用'out.close()'。 – 2013-02-20 19:05:26

+0

感謝您的回覆!!我已經用Deployment descripotor文件添加了我的帖子。我嘗試了out.close仍然變黑屏。 – User1123123 2013-02-20 19:16:54

+0

什麼是您的請求網址? – 2013-02-20 19:18:22

回答

0

嘗試是這樣的:

package package; 


/** 
    * 
    * @author 
    */ 
    public class Ch1Servlet extends HttpServlet { 



/** 
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. 
* @param request servlet request 
* @param response servlet response 
*/ 
protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/html;charset=UTF-8"); 
    PrintWriter out = response.getWriter(); 
    try { 
     //you code here 
    } catch (Exception exc) { 
     throw new MyException(exc); 
    }finally{ 
      out.close() 
     } 
} 


// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 

/** 
* Handles the HTTP <code>GET</code> method. 
* @param request servlet request 
* @param response servlet response 
*/ 
@Override 
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
} 

/** 
* Handles the HTTP <code>POST</code> method. 
* @param request servlet request 
* @param response servlet response 
*/ 
@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
} 

/** 
* Returns a short description of the servlet. 
*/ 
@Override 
public String getServletInfo() { 
    return "Short description"; 
} 
// </editor-fold> 
} 

上面的代碼接受GET和POST

+0

我寫的方式與您所提到的相同,但仍然出現空白屏幕:( – User1123123 2013-02-20 19:38:12

+0

)您有一些System.out.println()語句。日期字符串是否打印到控制檯?任何服務器錯誤日誌?當你右鍵點擊瀏覽器並選擇「查看源代碼」時,你是否看到任何html源代碼? – Lan 2013-02-20 21:33:53

+0

@Surge:謝謝你的回覆。沒有不在控制檯上顯示日期。我也檢查了源.Source也僅作爲空白處理。 – User1123123 2013-02-21 17:22:07