powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / getRequestURI и Tomcat+mod_jk+Apache и винда
2 сообщений из 2, страница 1 из 1
getRequestURI и Tomcat+mod_jk+Apache и винда
    #32515596
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся с такой проблемой. Сначала опишу действия.
Вход в свое приложение делаю через login и пароль. Каждая jsp страничка у меня вначале содержит такой код
<%@include file='forcelogin.jsp'%>
где проверяется зарегестрирован польз. или нет, если нет, то вызывается login.jsp.
forcelogin.jsp :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<% if ( session.getAttribute("username") == null ) { 
//   String url=request.getRequestURI();
   String url=request.getRequestURL().toString();
   String param=request.getQueryString();   
   if ( param!=null && param.length()> 0  )  url+="?"+param;
%>
<jsp:forward page='./login.jsp'>
 <jsp:param name='nextpage' value='<%=url%>'/>
</jsp:forward>
<%}%>

В login.jsp , в свою очередь, если пароль введен корректно, то выполняется перенаправление на страницу, куда шли первоначально.
...
String nextpage = request.getParameter("nextpage");
...
response.sendRedirect(nextpage);
...

Непосредственно на Tomcat-е все работает ( и в JDeveloper-е ), но если идти через Apache ( mod_jk ) возникает проблема - request.getRequestURL() формирует адрес хоста вовсе не доменный, а берет имя компьютера в XP, вследствие чего redirect на nextpage не редиректит ( если давать запрос с др. машины ) В этом и вопрос.


Ну это я описал реальную задачу, для того чтоб это можно было проверить приведу тестовый сервлет

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.PrintWriter;
import java.io.IOException;

public class url extends HttpServlet 
{
  private static final String CONTENT_TYPE = "text/html; charset=windows-1251";

  public void init(ServletConfig config) throws ServletException
  {
    super.init(config);
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
  {
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
    out.println("<html><body>");
    out.println("Request URI : "+request.getRequestURI() + "<br>");
    out.println("Request URI : "+request.getRequestURL() + "<br>");    
    out.println("</body></html>");
    out.close();
  }
}

Итого,
при запросе на Tomcat http://192.168.30.7:8080/env/servlet/url получаю как надо
Request URI : /env/servlet/url
Request URI : http://192.168.30.7:8080/env/servlet/url

при запросе на Apache http://192.168.30.7/env/servlet/url получаю
Request URI : /env/servlet/url
Request URI : http:// sanek /env/servlet/url

В чем может быть трабл?
...
Рейтинг: 0 / 0
getRequestURI и Tomcat+mod_jk+Apache и винда
    #32515607
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чисто случайно разобрался
это в httpd.conf пар-р ServerName берется ( и винда тут получается непричем )
вот, ежкин кот, больше писал
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / getRequestURI и Tomcat+mod_jk+Apache и винда
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]