日期:2014-05-18  浏览次数:20603 次

为什么SpringMVC的jsp页面放在WEB-INF下,求解。
刚接触SpringMVC,于是在网上参考了一些文档,刚开始觉得看错了,有个例子竟然把在WEB-INF目录下建jsp文件夹放jsp,后来又发现有个例子放在WEB-INF下,我就觉得纳闷了,是不是SpringMVC的jsp都应该放在这个目录下啊。求解?!
------解决方案--------------------
楼主这样写,只是告诉spring让它去/WEB-INF/JSP/文件夹下找jsp文件,P:prefix=“”是可以自己定义的,自己高兴怎么做都可以
------解决方案--------------------
springMVC,把JSP放入JSP文件夹下,所有的view都通过spring进行转发,一般controller执行完毕后会返回return new ModelAndView("example");那么spring就根据你的配置,去JSP文件夹下找example.jsp的视图
引用:
对了,我把配置文件贴出来
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
<mvc:interceptors>
红色标注的,要把jsp放到WEB-INF下……

------解决方案--------------------
放在web-inf下面是为了防止客户端直接通过jsp地址访问jsp页面,这样就不走springmvc了
------解决方案--------------------
放在web-inf下面是为了不让用户直接访问jsp页面, 

jsp仅用作显示,
比如通过userListController显示全部用户, 
在user_list.jsp里面
<c:forEach item="${list}" var="user">
${user.name}<br/>
</c:forEach>
如果直接访问jsp,那么${list} 是空的, 也不是根据需要显示全部的用户
------解决方案--------------------
他的目的是为了安全性  用户直接输入地址是不可见的  
------解决方案--------------------
   结合楼主的问题
   第一,
p:prefix="/WEB-INF/jsp/" 红色标注的,是要把*.jsp文件放在/WEB-INF/jsp文件夹下。至于为啥放在WEB-INF下是因为所有这个目录下的所有文件是通过浏览器不能访问到的,是绝对安全的,是出于安全性的考虑。
   第二,
你如果愿意,可以把*.jsp文件放在WebContent(或WebRoot)下,只需要<property name="prefix"><value>/WEB-INF/jsp/</value></property>变为<property name="prefix"><value></value></property>