2012-04-23 3 views
0

У меня много ошибок при загрузке файлов. Однако они отлично работают на моем локальном хосте.Как я могу получить доступ к сервлету на сервере?

У меня есть форма, действие которой является сервлетом. Я знаю, что структура файлов заставляет меня помещать все .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> 

Это запрашиваемый URL, когда я отправить форму:

http://mydomain.com/addservlet

И я получаю не найден

The requested URL /addservlet was not found on this server

+0

Эта папка доступна только с сервера. Вы пытались «action =»/myservlet «'? Конечно, после отображения сервлета. – blackcompe

+0

Я еще не отобразил сервлет, но я попробую, что сказал Тор П ниже =) –

ответ

0

вам необходимо сопоставить сервлета в файле 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

Большое спасибо за ответ. Я сделал это, но ничего не изменилось. Я обновлю свой вопрос, чтобы вы видели –

+0

Ваше имя пакета - «приложение»? Затем вам нужно поместить файл .class в/WEB-INF/classes/app, после чего вы поместите web.xml в папку WEB-INF/ –

+0

. Что вы используете для разработки? Вы должны задуматься над созданием WAR-файла (= Web ARchive, любой подходящей среды IDE, такой как Eclipse или netbeans, для этого) всего приложения и, скорее, развертывания этого в «военном каталоге развертывания» на вашем сервере. –

0

сервлете работает класс java, когда правильный URL-адрес отправляется на сервер. Это делается с помощью свойства «mapping», которое вы должны определить в web.xml. Ресурсы в WEB-INF всегда защищены от доступа через URL-адрес.

+0

Не означает, что доступ к файлу класса имеет смысл. –