2012-04-23 99 views
0

我上傳文件時出現很多錯誤。但是,他們在我的本地主機上完美工作。如何在服務器上訪問servlet?

我有一個表單,它的動作是一個servlet。我知道文件的結構迫使我把所有的.class文件放在目錄/WEB-INF/classes中。問題是,當我寫這篇文章的形式作用/WEB-INF/classes/myservlet我得到這個消息:

"You don't have permission to access /WEB-INF/classes/myservleton this server". 

什麼我需要做什麼來解決這個問題?

UPDATE:這是web.xml

<servlet> 
    <servlet-name>addservlet</servlet-name> 
    <servlet-class>app.addservlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>addservlet</servlet-name> 
    <url-pattern>/addservlet</url-pattern> 
</servlet-mapping> 

一部分。這是請求的網址,當我提交表單:

http://mydomain.com/addservlet

,我得到Not Found錯誤

The requested URL /addservlet was not found on this server

+0

該文件夾只能從服務器訪問。你嘗試過'action =「/ myservlet」'嗎?映射完當然的servlet之後。 – blackcompe 2012-04-23 23:56:35

+0

我沒有映射servlet,我會嘗試Tor P下面說的=) – 2012-04-24 15:18:24

回答

0

你需要給servlet映射在web.xml文件......看到http://static.springsource.com/projects/tc-server/6.0/getstart/rgswebxml.html

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
    version="2.4"> 
     <servlet> 
     <servlet-name>myservlet</servlet-name> 
     <servlet-class>my.package.myservlet</servlet-class> (or what ever package you use) 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>myservlet</servlet-name> 
     <url-pattern>/myservlet</url-pattern> 
    </servlet-mapping> 
</web-app> 

的第一個例子。然後你點動作/ myservlet

+0

非常感謝您回答我。我做到了這一點但沒有任何改變。我會更新我的問題,讓你看到 – 2012-04-24 15:46:53

+0

你的軟件包名稱是「應用程序」?然後,您需要將.class文件放入/ WEB-INF/classes/app中,然後將web.xml放入WEB-INF /文件夾中 – 2012-04-24 16:18:36

+0

您對開發有什麼用處?你應該研究整個應用程序的WAR文件(=網絡存檔,任何體面的IDE如Eclipse或NetBeans可以做到這一點),而不是部署到服務器上的「戰爭部署文件夾」 – 2012-04-24 16:20:55

0

一個servlet運行一個java類,當正確的URL被髮送到服務器。這是通過必須在web.xml中定義的「映射」屬性完成的。 WEB-INF下的資源始終受到保護,無法通過網址訪問。

+0

不管是否訪問類文件都是有意義的。 – 2012-04-24 01:37:08