2014-02-13 2 views
0

Рассмотрим следующий тэг формы в JSP:Путь в атрибуте действия тега формы

<form action="/sampleServlet" method="get"> 

что разница между

<form action="/sampleServlet" method="get"> 

и

<form action="sampleServlet" method="get"> <!--no leading slash--> 
+0

вещь, если вы используете/sampleServlet, то он будет использовать currentpath +/sampleServlet, поэтому вызов пойдет в один из подключенных сервлетов в вашем приложении. если вы используете только sampleServlet, тогда сам URL-адрес будет изменен на http: // sampleServlet, который является недопустимым и приведет к ошибке –

+0

, ваш комментарий противоречит ответу, указанному Александром в http://stackoverflow.com/questions/16683877/form -действие-sampleservlet дающий меня-exception' –

ответ

0

Код <form action="/sampleServlet" method="get"> представит форму и вызвать сервлет doGet(), отображаемый псевдонимом /sampleServlet в web.xml

Куда, как и в случае с более поздним случаем, подает ошибку (возможно, 404).

0

/sampleServlet - абсолютный путь

этот путь является абсолютным к базовому URL (протокола, IP (или имя хоста) и порта)

current page: http://127.0.0.1:8080/context/test 

target page: http://127.0.0.1:8080/sampleServlet 

sampleServlet - относительный путь

этот путь относится к пути к текущей странице, например

current page: http://127.0.0.1:8080/context/test 

target page: http://127.0.0.1:8080/context/test/sampleServlet 

В JSP вы должны использовать абсолютный путь, но помните, чтобы автоматически добавить путь контекста и думать о перезаписи URL (добавить идентификатор сессии в URL, если это необходимо).

При работе с использованием JSTL < с: значение URL = "/ sampleServlet"/>:

<form action="<c:url value="/sampleServlet"/>" method="get"> 
... 
</form> 
Смежные вопросы