每一个Maven工程的目录结构大都相同,这种目录结构称做Maven的标准目录结构。由于Maven是约定优于配置,根据模板直接生成webapp目录,故其默认的Webapp就是其发布目录。我们不需要再copy一份webcontent目录,如果再复制一份webcontent目录,需要在pom.xml里面配置,告诉Maven。

 

         基于Maven约定优于配置,我们用其默认的文件夹目录,所有的jsp都放在了WEB-INF目录下,通过后台SpringMVC返回的界面,找不到返回的界面。这是为什么呢?

        WEB-INF目录是受保护的目录,我们把后台的jsp页面放在其目录下加强了安全性以及保护源代码。这个目录是有访问控制权限的,直接在地址栏中输入页面的url地址是不能访问的,提示404错误。需要配置才能访问的到。

 

配置如下:

xmlns:p="http://www.springframework.org/schema/p"
	<!-- 访问JSP页面  添加注解驱动  start-->
	<mvc:annotation-driven/>
	<context:component-scan base-package="com.tgb.itoo.basic.controller"></context:component-scan>
	<bean id="viewResolver"
                 class="org.springframework.web.servlet.view.InternalResourceViewResolver"
		  p:prefix="/WEB-INF/jsp/"
		  p:suffix=".jsp"/>
	<!-- 访问JSP页面  添加注解驱动  end-->


        上面的配置是配置SpringMVC的视图解析器。springMVC使用ViewResolver根据controller中返回的view名关联到具体的view对象,使用view对象来渲染返回值以生成最终的视图。

 

总结:

         JSP页面放在WEB-INF和Webapp下有什么优缺点呢?

        放在WEB-INF目录下优点是更安全,其下的资源不是为客户直接服务的,不能直接访问JSP,保护源码。缺点是开发过程中从里面找文件很不方便。

        放在Webapp下优点是结构清晰,可以直接访问Jsp页。也可以通过加过滤器的方式达到JSP不能直接访问的效果。