Ответ 1
поместите все ваши jsp-ы в папку WEB-INF (например, в папку WEB-INF/jsp) и не забудьте изменить свое сопоставление относительно местоположения jsp-s.
Я использую struts 1.3 для своего приложения, и все страницы jsp пересылаются через контроллер (класс действия). Но если я сразу получаю доступ к странице jsp, я могу получить к ней доступ. Как это предотвратить?
поместите все ваши jsp-ы в папку WEB-INF (например, в папку WEB-INF/jsp) и не забудьте изменить свое сопоставление относительно местоположения jsp-s.
Фильтры используются для обхода или прерывания запросов, поэтому используйте фильтры для ограничения запроса, если он не содержит .do в url. Ниже приведен хороший учебник для фильтров.
Я думаю, что лучшим вариантом было бы разместить ваши веб-страницы в папке WEB-INF - таким образом они не будут доступны напрямую, но тогда в ваших сервлетах вы можете иметь что-то вроде:
public class ControllerServlet extends HttpServlet {
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userPath = request.getServletPath();
// if category page is requested
if (userPath.equals("/category")) {
// TODO: Implement category request
// if cart page is requested
} else if (userPath.equals("/viewCart")) {
// TODO: Implement cart page request
userPath = "/cart";
// if checkout page is requested
} else if (userPath.equals("/checkout")) {
// TODO: Implement checkout page request
// if user switches language
} else if (userPath.equals("/chooseLanguage")) {
// TODO: Implement language request
}
// use RequestDispatcher to forward request internally
String url = "/WEB-INF/view" + userPath + ".jsp";
try {
request.getRequestDispatcher(url).forward(request, response);
} catch (Exception ex) {
ex.printStackTrace();
}
}
Взято из: http://netbeans.org/kb/docs/javaee/ecommerce/page-views-controller.html
Вы можете использовать фильтры и ограничивать запрос URL-адресом, запрашивающим страницы .jsp, и разрешать запросы, запрашивающие .do