Просто спрячьте JSP в папке /WEB-INF
, чтобы никто не мог получить к ней прямой доступ, и создайте сервлет, который перенаправляет запрос в этот файл JSP. Не делайте перенаправление , иначе вы увидите новый URL, отображаемый в адресной строке. Э.Г.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String postId = request.getPathInfo();
// Do your business thing here. Any results can be placed in request scope. E.g.
request.setAttribute("post", post); // post is a bean containing information you'd like to display in JSP.
// Then forward request to JSP file.
request.getRequestDispatcher("/WEB-INF/posts.jsp").forward(request, response);
}
Отобразите этот сервлет на url-pattern
из /posts/*
.
В /WEB-INF/posts.jsp
используйте taglibs для управления потоком страниц и EL для доступа к данным. Э.Г.
<h2>${post.title}</h2>
<p><fmt:formatDate value="${post.date}" type="date" /> - ${post.message}</p>
Наконец, просто вызовите сервлет по http://example.com/posts/postid
. Партия /postid
будет доступна по номеру HttpServletRequest#getPathInfo()
. Вам нужно проанализировать ценность самостоятельно и заняться бизнесом.