Pergunta

Em uma aplicação web Java simples, por exemplo, imagine que você tem um servlet TestServlet.java.Na descrição da implantação ( web.xml ) você pode, por exemplo, mapear a solicitação que vem para dizer /testpage para TestServlet para que quando /testapplication/testpage é solicitado TestServlet lida com a solicitação.E você pode, por exemplo, escrever "Hello World" e enviar a resposta.

Na estrutura de diretórios (o aplicativo que é implantado no servidor web), TestServlet.java residirá em:

webapps\testapplication\WEB-INF\classes\com\packagename\TestClass.java

o que significa que não há como acessar esse arquivo usando o navegador.(Como inserir um URL)

Você também pode obter o despachante de solicitação e encaminhar o objeto de solicitação e resposta para um arquivo JSP como .getRequestDispatcher("/test.jsp").Mas então o arquivo estará em

webapps\testapplication\test.jsp

portanto, conectar-se a http:\\server.com est.jsp também obterá esse arquivo.

Quero ocultar o arquivo na pasta WEB-INF para que ele não possa ser acessado pelo cliente, exceto o mapeamento que forneci.

Qual é a maneira apropriada de fazer isso?

Foi útil?

Solução

Quero ocultar o arquivo na pasta WEB-INF para que não possa ser acessado pelo cliente.

Mantenha seus arquivos jsp em WEB-INF por exemplo - (WEB-INF/jsp), de modo que, por padrão, os Web Containers não permitem que os recursos da pasta WEB-INF sejam acessados ​​diretamente pelos clientes, mas o RequestDispatcher pode acessá-lo.

request.getRequestDispatcher("/WEB-INF/test.jsp").forward(request, response);

Outras dicas

Se você estiver usando o JSF, poderá colocar esse arquivo na pasta Web-Inf e usar uma regra de navegação para mapear a solicitação para a página. Mas se não estiver, você pode criar um filtro e mapeá -lo para url "/test.jsp" usando o <url-pattern> atributo e redirecionar para qualquer lugar que você desejar (como uma página na Web-Inf).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top