• springMVC框架访问web-inf下的jsp文件


    博客原文章:http://td.xue163.com/1042/1/10425265.html

    用户提出问题:springMVC框架访问web-inf下的jsp文件,具体如下: 使用springMVC,一般都会使用springMVC的视图解析器,大概会这样配置

    <property name="prefix" value="/WEB-INF/jsp/"></property>
    		<property name="suffix" value=".jsp"></property>

    当我的control返回

    return new ModelAndView("admin/index");   

    实际访问的就是/WEB-INF/jsp/admin/index.jsp这个页面,那么放在web-inf下只能服务端可以访问保证了安全性。如果index.jsp中有这样一个代码

     <frame src="left.jsp"/> 

    ,top.jsp和index.jsp都在admin目录下,这样访问index就会404.

    此时纠结了:1、top.jsp如果一定要和index.jsp在同目录下,就要加个control,为一个连接加个control太不值。2、如果不在同一目录下放到webRoot根目录下,index.jsp和top.jsp就不在同一个地方,维护时候不太方便,3、另一种情况springMVC视图解析器路径修改为<property name="prefix" value="/jsp/"></property>即在项目根目录下,这样客户端也可直接访问此目录,没有安全性可言,到底该怎么做呢?

    通过互联网整理获得以下解决方法:

    =================1楼=====================

    <mvc:view-controller path="/left" view-name="left"/>

    =================2楼=====================

    我的做法是 —— 还得加控制器。思路是下面这样

    [list=1]

    • 弄个专门放公开的jsp的目录,比如/WEB-INF/jsp/public
    • 弄个control,spring也有个只是redirect的来着。或者自己写个。里面固定转向上面的目录。当然可以用参数配置等灵活点实现。
    <frame src="left.jsp"/> 

    变成

    <frame src="redirect.do?page=left.jsp"/> 

    类似这样。

    [/list]

    这么做的目的,基本上就是回答你的问题。

    1. jsp统一放在一起 —— /WEB-INF/jsp/。

    2. 用一个且只用一个控制器控制需要公开的jsp。

    当然也可以按你的需求调整下目录,或者添加更多的逻辑。

    如果您还有更好的解决方法,请在最下面评论中留下您的解决方法

  • 相关阅读:
    Linux 系统监控和诊断工具:lsof
    C语言基础(21)-C语言编译过程及GCC参数简介
    VS2013-解决VS2013 4996错误
    C语言基础(20)-文件操作(fopen,getc,fclose)
    eclipse-Java compiler level does not match the version of the installed Java project facet.
    C语言基础(19)-结构体,联合体,枚举和typedef
    android studio- Gradle "xxx" project refresh failed
    C语言基础(18)-内存
    C语言基础(17)-作用域
    android.app.Service-android:process=":remote"属性解说
  • 原文地址:https://www.cnblogs.com/fengdashen/p/5254107.html
Copyright © 2020-2023  润新知