2015-06-17 208 views
1

我很不熟悉w/servlets,並且被要求在使用java的tomcat 7上編寫一個簡單的程序。我寫了一個非常簡單的hello world程序,並且一直無法運行,需要一些幫助。Tomcat servlet請求的資源不可用

import java.io.*; 
import java.util.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 
/** 
* 
* @author Michael 
*/ 
public class JavaServletTest extends HttpServlet { 

/** 
* @param args the command line arguments 
*/ 
public void doGet(HttpServletRequest request, HttpServletResponse response) 
throws IOException, ServletException 
{ 
    response.setContentType("text/html"); 
    PrintWriter out=response.getWriter(); 
    out.println("<html><body>"); 
    out.println("HELLO WORLD!!"); 
    out.println("</body></html>"); 


}} 

我把它放在我的WEB-INF文件夾下的classes文件夾中,tomcat應用程序管理器顯示它正在運行。

所以,我有我的文件夾類似的webapps/JavaServletTest/WEB-INF/classes中 的web.xml是與WEB-INF文件夾 的JavaServletTest文件夾,並在課堂上我有JavaServletTest.class與我的源代碼。我加載 我的web.xml中的應用程序的外觀LIK

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application  2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd"> 
<web-app> 
<servlet> 
    <servlet-name>JavaServletTest</servlet-name> 
    <servlet-class>JavaServletTest</servlet-class> 
</servlet> 


<servlet-mapping> 
    <servlet-name>JavaServletTest</servlet-name> 
    <url-pattern>/testServlet</url-pattern> 
</servlet-mapping> 

我一直在嘗試通過 xxx.xxxxxx.xxx/JavaServletTest/testServlet 加載此,但尚未有任何成功。

+1

什麼您部署的WAR文件的名稱?您應該嘗試訪問'http:// xxx.xxxxxx.xxx/Name_of_WAR/testServlet' –

+0

您的'web.xml'是否位於WEB-INF文件夾內? –

+1

@TimBiegeleisen什麼是WAR文件? (我對此很新) –

回答

1

您的web.xml文件需要裏面WEB-INF文件夾,而不是旁邊它。

如果它不在正確的位置,Tomcat將不會解析它,並且您的URL模式將不會被正確配置。

如果您正在使用的Servlet 3.0(或更高版本)API,你也可以通過與@WebServlet註解做到這配置你的servlet,你就不會需要web.xml

@WebServlet("/testServlet") 
public class JavaServletTest extends HttpServlet { 
    /* ... */ 
} 
相關問題