2012-05-09 4 views
1

Я довольно новичок в JSP, и мне нужна помощь.Вызов контроллера до загрузки index.jsp

У меня есть файл index.jsp, и, очевидно, если вы наберете «localhost //», он автоматически вызовет index.jsp по умолчанию. Мне было интересно, как это работает, поскольку я планирую вызвать контроллер сначала до загрузки index.jsp.

Я попытался обойти его, хотя. В моей index.jsp, я ставлю там что-то вроде:

if(request.getParameter("submit") == null && 
    request.getAttribute("submit") == null){ 
    response.sendRedirect("getInformation"); 
} 

В здесь, я заставляя index.jsp непосредственно вызывать мой контроллер/сервлет. (Я использовал @WebServlet («/ getInformation» на контроллере, который я хотел вызвать).

Мне было интересно, если бы был лучший способ сделать это, так как я хотел бы, чтобы все логические коды на моем контроллере/сервлете и все HTML коды в .jsp как можно больше.

+0

Что вы хотите сделать в этом контроллере? Думаю, вы подойдете лучше, если вы поделитесь этим. – Apurv

ответ

1

ИМО, это лучший подход. Вы можете определить свои приветственные файлы в web.xml. Создание «глупый» index.html установки метатега перенаправлять к контроллеру, SomeController в приведенном ниже примере (делегирует некоторые вычисления с сервера на клиента):

web.xml

<welcome-file-list> 
    <welcome-file>/WEB-INF/jsp/index.html</welcome-file> 
</welcome-file-list> 

index.html

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
<meta http-equiv="refresh" content="0; URL=./SomeController" /> 
<title>Some title</title> 
</head> 
<body> 
If you are not automatically redirected please click <a href="./SomeController">here</a>. 
</body> 
</html> 
+0

Это потрясающе! Благодаря! Постараюсь это сделать. – user979023

+0

Это сработало. Огромное спасибо! – user979023

Смежные вопросы