美文网首页
关于WEB-INF下的jsp页面访问

关于WEB-INF下的jsp页面访问

作者: 老奶猹 | 来源:发表于2020-06-07 16:56 被阅读0次

大家都知道,在WEB项目中的webapp/WEB-INF目录下是一个访问的私密目录,当我们项目中有些东西不想被用户在浏览器通过链接浏览时,便可以放进WEB-INF目录下。以至于,当我们将jsp页面放入该目录下时会发现,页面无法通过链接跳转访问。
想要在页面链接访问WEN-INF下的页面,有两种方式:

1.请求重定向

如:

<jsp:forward page="${pageContext.request.contextPath}/WEB-INF/views/jsp/index.jsp"></jsp:forward>

2.使用内部资源视图解析器

我们访问页面时,不可能一直使用请求重定向,大多数还是使用请求转发。所以,我们可以定义一个工具控制器类,让我们想要访问的WEB-INF下的页面走内部资源视图解析器
第一步:定义一个工具控制器类

@Controller
@RequestMapping("/page")
public class pageController {

    /**
     * @Title: toPage
     * @Description: 二级页面跳转,例如 WEB-INF/user/login.jsp
     */
    @RequestMapping(value = "{pageName1}/{pageName2}/{pageName3}", method = RequestMethod.GET)
    public ModelAndView toPage(@PathVariable("pageName1") String pageName1, @PathVariable("pageName2") String pageName2,@PathVariable("pageName3") String pageName3) {
        ModelAndView mv = new ModelAndView(pageName1+"/"+pageName2+"/"+pageName3);
        return mv;
    }

    /**
     * @Title: toPage
     * @Description: 二级页面跳转,例如 WEB-INF/user/login.jsp
     */
    @RequestMapping(value = "{pageName1}/{pageName2}", method = RequestMethod.GET)
    public ModelAndView toPage(@PathVariable("pageName1") String pageName1, @PathVariable("pageName2") String pageName2) {
        ModelAndView mv = new ModelAndView(pageName1+"/"+pageName2);
        return mv;
    }


    /**
     * @Title: toPage
     * @Description: 一级页面跳转,例如 WEB-INF/logout.jsp
     */
    @RequestMapping(value = "{pageName1}", method = RequestMethod.GET)
    public ModelAndView toPage(@PathVariable("pageName1") String pageName1) {
        ModelAndView mv = new ModelAndView(pageName1);
        return mv;
    }
}

第二步:在配置文件中注册内部资源视图解析器,并设置前缀后缀

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--        <property name="viewClass"-->
<!--                  value="org.springframework.web.servlet.view.JstlView"/>-->
        <property name="prefix" value="/WEB-INF/views/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

第三步:在页面中使用

[<a href="${pageContext.request.contextPath}/page/login">登录</a>
 <a class="reg" href="${pageContext.request.contextPath}/page/register">免费注册</a>]

页面目录:


图片.png

相关文章

网友评论

      本文标题:关于WEB-INF下的jsp页面访问

      本文链接:https://www.haomeiwen.com/subject/pgbctktx.html