2017-02-04 51 views
-3

我百思不得其解時,我的配置在web.xml在servlet:'XXX' 在web.xml配置Servlet時不公開 - IntelliJ IDEA的

com.ypd.web5.FirstServlet」不是公共

enter image description here

代碼如下:

<!-- config my servlet --> 
    <servlet> 
     <servlet-name>FirstServlet</servlet-name> 
     <servlet-class>com.ypd.web5.FirstServlet</servlet-class> /* there I got the error */ 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>FirstServlet</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

我找不到爲什麼我會遇到這個問題,任何幫助都會很感激。


加成

package com.ypd.web5; 
/** 
* Created by ldl on 2017/2/4. 
*/ 
import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

class FirstServlet extends HttpServlet { 

    @Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException { 
     super.doGet(req, response); 

     response.getWriter().write("This is first servlet!"); 
    } 
} 
+0

您是否還可以包含'FirstServlet'類的定義,假設它適合? –

+0

@Tim Biegeleisen,蒂姆,我不是很明白你的意思。如何包含'FirstServlet'的定義? – aircraft

+0

向我們顯示代碼。 –

回答

0

您必須聲明的servlet類和方法初始化,服務和銷燬公共,因爲服務器應該能夠訪問它們。這與使用訪問修飾符public聲明的主要方法非常相似。 另一個原因是在HttpServlet和GenericServlet類中,這三種方法是公共的,它們的訪問級別在繼承類中不能減少。

因此,檢查您的FirstServlet類是否被聲明爲公共類。

+0

謝謝,我班沒有設公共班,只有班 – aircraft