誰もそれらのページに直接アクセスできないようにしたい場合は、それらを/WEB-INF
フォルダーに入れてください。
Project
`-- WebContect
|-- WEB-INF
| |-- Admin
| |-- Author
| `-- Readonly
`-- Index.jsp
この方法では、ページはパブリックにアクセスできませんが、転送を実行するサーブレットによってのみアクセスできます。エンドユーザーが直接アクセスしようとすると、HTTP 404 エラーだけが表示されます。
別の方法は、役割のない を構成すること<security-constraint>
です。
<security-constraint>
<display-name>Restrict direct access to certain folders</display-name>
<web-resource-collection>
<web-resource-name>Restricted folders</web-resource-name>
<url-pattern>/Admin/*</url-pattern>
<url-pattern>/Author/*</url-pattern>
<url-pattern>/Readonly/*</url-pattern>
</web-resource-collection>
<auth-constraint />
</security-constraint>
エンドユーザーがそれらにアクセスしようとすると、HTTP 403 エラーだけが表示されます。
いずれにせよ、エンドユーザーをこの方法にリダイレクトすることはできませんindex.jsp
。それができるのはAだけFilter
です。404 または 403 のエラー ページの場所として構成できます。index.jsp
<error-page>
<error-code>404</error-code>
<location>/index.jsp</location>
</error-page>
しかし、これはすべての 404 (または 403)をカバーしますが、それが必要かどうかはわかりません。