<%-login.jsp--%>
<%@page language='java' contentType='text/html'%>
<%@taglib url=' ' prefix=' '%>
<%--%>
<%!public boolean verify(String username,String password){
return ((username!null)&&(password!=null)&&password.equals("java"));
}%>
<%--end bloc obyavleniy --%>
<%-- --%>
<% String nextPage=request.getParameter("nextpage");
if (title ==null) title = "Please Lof In";
String Username =request.getParameter("username");
String password =request.getParameter("password");
if ((username!=null)&&(password!=null)&&verify(username,password)) {
session.setAttribute("username",username);
response.setdRedirect(nextPage);
}
esle {
String message = "";
if ((username !=null)||(password !=null)) {
message = "NOT";
}%>
<%-- --%>
<head><title>Login</title></head>
<body bgcolor='while'>
<br><br><br><%-- --%>
<%-- --%>
<decor:box color='yellow' margin='25' borderWhidth='3' title='Login'>
<div align=center> <%-- --%>
<%-- --%>
<font face='helvetica'><h1><%=title%></h1></font>
<font face='helvetica' colot='red'><b><%=message%></b></font>
<%- --%>
<form action='login.jsp' method='post'>
<table><%-- --%>
<td align='right'>
<b><font face='helvetica'>Password:</font></b>
</td>
<td><intut type='password' name='password'></td>
</tr><tr> <%-- --%>
<td align='center' colspan=2><font face='helvetica'><b>
<input type=submit value='Login'>
</b></font></td>
</tr>
</table>
<%-- --%>
<input type='hidden' name='nextpage' value='<%=nextPage%>'>
<input type='hidden' name='title' value=<%=title%>>
</form>
</div>
</decor:box><%-- --%>
</body><%-- --%>
}
%>
JSP-форма входа в систему
Код:
Разместил этот login.jsp файл в Tomcat 4.1\webapps и запускаю как:
http://127.0.0.1:8080/login.jsp
Появляется ошибка:
Код:
type Status report
message /login.jsp
description The requested resource (/login.jsp) is not available.
message /login.jsp
description The requested resource (/login.jsp) is not available.
Может ошибка в коде?
<?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>
</web-app>
Во-вторих: твой код не запуститься, потому-что в нем купа ошибок, и синтаксических и семантических.
А я бы не стал изобретать велосипед: в томкате авторизация реализована.
<form method="post" action="loginAction.perform">
Благодоря которой при нажатии кнопки login, к URL добавляется addContactAction.perform.
Но для запуска сервлета необходим http://127.0.0.1:8080/... а не
D:\..\apache-tomcat-4.1.34-LE-jdk14\webapps\...
Как перейти к нужному URL?
<form method="post" action="loginAction.perform">
вызовется http://127.0.0.1:8080/loginAction.perform
А в папочку D:\..\apache-tomcat-4.1.34-LE-jdk14\webapps\ деплоится твой проект.
каких только можно папках, ничего не выходит.
И еще фишка: При перенаправлении на ресурс "yo.jsp" файл yo.jsp ищется в том-же каталоге, откуда его перенаправили; а при перенаправлении на ресурс "/yo.jsp" файл yo.jsp ищется в корневом каталоге.
По крайней мере httpServletRequest.getRequestDispatcher("yo.jsp").forward(...);
работает по такому принципу.
Но, мне кажется, такая-же фишка будет и при вызове ресурса с обычной html страницы.
<form method="post" action="loginAction.perform"> на
<form method="post" action="http://127.0.0.1:8080/http://127.0.0.1:8080/hello/helloworld">.
Вставляю login в ...\apache-tomcat-4.1.34-LE-jdk14\webapps\hello
где у меня размещен WEB-INF простого hello world, все работает.
А вот когда проделываю все тоже самое с прогой баз данных выдает:
type Status report
message HTTP method POST is not supported by this URL
description The specified HTTP method is not allowed for the requested resource (HTTP method POST is not supported by this URL).
Может быть в <form method="post" вместо post нужно писать что нубудь другое?
1. в форме постить так: method="GET"
2. В Сервлете определить метод doPost(req, resp)
Цитата: WandM
Варианты решения проблемы:
1. в форме постить так: method="GET"
2. В Сервлете определить метод doPost(req, resp)
1. в форме постить так: method="GET"
2. В Сервлете определить метод doPost(req, resp)
Благодарю, вместо post поставил get , все заработало.
А можеш обьяснить чем отдичаются методы post и get?
Основное отличие POST от GET в том что данные передаются не в заголовке запроса а в теле, следовательно пользователь их не видит. Модифицировать может только изменив саму форму - но в большинстве случаев такие запросы можно отвергнуть проверяя адрес страницы с которой были посланы данные. (C) Гугл.
Можеш помоч еще в одном деле касательно сервлетов? В базе все слова на русском, после запроса сервлет выдает ??? , может встречался с подобным ? Если есть какие нибудь мысли по этому поводу поделись, буду признателен.
Посмотри сюда, может поможет:
Но, по-моему, фишка в том, что в базе у тебя - одна кодировка, а записываешь ты в другой.
Например, если в MySQL таблица настроена на кодировку cp1251, а писать туда юникод....
P.S. это, кстати, уже оофтоп. Модератор? Ау?!