logowanie w JSP
JW - 14-09-2006 00:40
logowanie w JSP
Prosty problem: Chciałbym zrobić stronę, do której dostęp wymaga logowania i jeśli ktoś się będzie do niej bezpośrednio odwoływał, to powinien zostać przekierowany na strone logowania. Zrobiłem to więc tak:
<%-- sprawdzic czy uzytkownik zalogowany --%> <% lab.Student student = (lab.Student)session.getAttribute("student") ; if( student == null ) { response.sendRedirect("login.html"); } else { response.setContentType("text/html; charset=ISO-8859-2"); %>
<%--treść strony --%> <% } %>
Ten setContentType jest dlatego, że zastosowanie dyrektywy w tym przypadku nie działa, gdyż dyrektywa generuje zawartość przed wykonaniem przekierowania, co jest niedozwolone.
Problem w tym, że mam mimo wszystko złe kodowanie na stronie (odpowiedni znacznik META oczywiście jest). Dziwi mnie to, że wywołanie setContentType nie pomaga.
Czy ktoś mógłby mi podrzucić pomysł na jakieś standardowe rozwiązanie tego problemu?? Specjalny serwlet do wykonywania testów, czy użytkownik jest zalogowany?? Ale jakoś nie widze, żeby to miało rozwiązać problem.
Z góry dzięki za odpowiedzi.
-- pzdr. JW
Michał Bartyzel - 14-09-2006 00:40
Aby otrzymać polskie znaki w aplikacji, należy informacje o tym zamieścić w trzech miejscach. * W stronach jsp należy umieścić dyrektywę: <%@ page contentType="text/html;charset=UTF-8" pageEncoding= "UTF-8" %>
* W plikach html, sekcji head należy umieścić znacznik: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> Do tyczy to również kodu html, generowanego przez strony jsp.
* Należy zainstalować filtr kodujący polskie znaki w UTF-8. Jeśli założyć, nie zmienisz nazw pakietów, web.xml należy dodać następujące wpisy:
<filter> <filter-name>myFilter </filter-name> <filter-class>app.filter.DefaultFilter</filter-class> </filter>
<filter-mapping> <filter-name>myFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>
Kod filtra public class DefaultFilter implements Filter { public void init( FilterConfig filterConfig ) throws ServletException { }
public void destroy() { }
public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
HttpServletRequest httpRequest = (HttpServletRequest) request; httpRequest.setCharacterEncoding("utf-8"); chain.doFilter(httpRequest, response); }
}
Michał Bartyzel - 14-09-2006 00:40
PS. Klase filtra umieszczasz w pakiecie app.filter. Chyba, ze chcesz w innym to zmien wpis w web.xml
pozrawiam Michał
Rami - 14-09-2006 00:40
> Czy ktoś mógłby mi podrzucić pomysł na jakieś standardowe rozwiązanie tego > problemu?? Specjalny serwlet do wykonywania testów, czy użytkownik jest > zalogowany?? Ale jakoś nie widze, żeby to miało rozwiązać problem. >
a JAAS ?
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
ms sql 2000 i ms server 2003 problem z logowaniem
=?iso-8859-2?q?[MSSQL_2000]_logowanie_procedur_zagnie=BFd=BFonych?=
=?iso-8859-2?q?firebird_i_triggery_-_logowanie_historii_zmian_zawarto=B6ci?=
Os-commerce i Forum vs wspolne logowanie
Firebird logowanie =?ISO-8859-2?Q?zapyta=F1?=
MySQL serwer dziala brak logowania
[mysql] Logowanie zapytań do bazy danych
SQL SERVER EXPRESS 2005 - logowanie
[SQL Express 2005] Logowanie zapytan
znowu zdalne logowanie do bazy mysql :/
zanotowane.pldoc.pisz.plpdf.pisz.plabsolwenci.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|