2012-04-23 82 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

相关问题