为什么跳转找不到WEB-INF下的jsp文件报404

在用eclipse开发时碰到许多次这种情况了,总结了下情况,发现了一个特征,WEB-INF下的jsp文件一般只能通过请求然后后台controller层才能跳转,直该请求路径下的文件是进不去的会报404,而如果直接请求文件路径地址,如<a href="${pageContext.request.contextPath }/Novel.jsp/>那么该文件是需要在WebContext文件夹下的。

点击,请看原文

在Java Web开发中,通常我们会把jsp文件放在WEB-INF目录下,以保证jsp文件的安全性。但是,这样也会导致jsp文件无法直接通过URL访问。如果我们需要在servlet中跳转WEB-INF目录下的jsp文件,可以采用以下两种方式: 方式一:使用RequestDispatcher 在servlet中,我们可以使用RequestDispatcher对象来跳转WEB-INF目录下的jsp文件,示例代码如下: ```java RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/views/example.jsp"); dispatcher.forward(request, response); ``` 其中,"/WEB-INF/views/example.jsp"是要跳转jsp文件路径。 方式二:使用重定向 在servlet中,我们也可以使用重定向来跳转WEB-INF目录下的jsp文件,示例代码如下: ```java response.sendRedirect(request.getContextPath() + "/WEB-INF/views/example.jsp"); ``` 其中,request.getContextPath()获取的是当前Web应用程序的上下文路径,如"/myapp"。需要注意的是,使用重定向需要在web.xml文件中配置jsp文件的映射路径,示例代码如下: ```xml <servlet> <servlet-name>example</servlet-name> <servlet-class>com.example.ExampleServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>example</servlet-name> <url-pattern>/example</url-pattern> </servlet-mapping> <jsp-config> <jsp-property-group> <url-pattern>/WEB-INF/views/example.jsp</url-pattern> </jsp-property-group> </jsp-config> ``` 其中,url-pattern标签中的路径"/example"是servlet的访问路径,可以根据实际情况修改。需要注意的是,这种方式会暴露WEB-INF目录下的jsp文件路径,不太安全。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值