论坛首页 Java企业应用论坛

SpringMVC前后台控制器、文件架构、数据拦截相关配置

浏览 11000 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-05-14  

在使用SpringMVC开发网站时候,前后台文件目录如何设置比较合理?   控制器怎么区分前后台请求 ? 拦截器如何只拦截后台请求? 首页如何跳转?

我来说说我的方法,欢迎大家一起讨论:

 

1、所有文件放在WEB-INF目录下包含起来,最好分为前台,后台2个文件夹:

WEB-INF/jsp/admin/

WEB-INF/jsp/front/

 

2、后台控制器也分为前后台控制器两个不同的package:

com.dream.http.controller.admin

com.dream.http.controller.front

所有请求admin下的控制器都会带上/admin/这一前缀

所有请求front下的控制器都会带上/front/这一前缀

如:/admin/goods/addgood.do

      /front/product/getProductList.do

这样从方法上就能判断哪些是后台请求,哪些是前台请求。还便于后面拦截器的配置。

 

3、拦截器只拦截后台请求:

< mvc:interceptors>
            <mvc:interceptor >
                 <mvc:mapping path = "/admin/**"/>
                 <bean class= "com.dream.http.interceptor.SessionInterceptor" >  
                     
                 </bean >
            </mvc:interceptor >
</mvc:interceptors >

 

4、默认首页问题:

首先在web.xml上配置一个<welcome-file>

 <welcome-file-list>
   	<welcome-file>index</welcome-file>
  </welcome-file-list>

 

然后给SpringMVC的servlet配置一个servlet映射:

<!-- 配置spring mvc mapping -->
  <servlet-mapping>
	<servlet-name>SpringMVC</servlet-name>
	<url-pattern>/index</url-pattern>
  </servlet-mapping>
  
  <servlet-mapping>
	<servlet-name>SpringMVC</servlet-name>
	<url-pattern>/</url-pattern>
  </servlet-mapping>

 这样就会默认进入index控制器,可以从index控制器取值并发送给index.jsp了

 

@Controller
public class FrontController extends BaseController{
	@RequestMapping("/index")
	public String ToFrontIndex(){
		return "/front/index";
	}
}

 

如果有不合理的地方,欢迎指正!

 

 

 

   发表时间:2014-05-14   最后修改:2014-05-14
你要的我们都已经实现了,前后台用两个不同的SpringMVC的servlet,也分别扫描前后台不同的controller
0 请登录后投票
   发表时间:2014-05-17  
wushao 写道
你要的我们都已经实现了,前后台用两个不同的SpringMVC的servlet,也分别扫描前后台不同的controller

能发出来吗?
0 请登录后投票
   发表时间:2014-05-17  
默认访问路径spring mvc 有配置的。

可以去git找下demo,都比较好
0 请登录后投票
   发表时间:2014-05-17  
这里有个问题,如果你要添加JS、css文件的时候是被拦截的!因为你这里<servlet-mapping> 
    <servlet-name>SpringMVC</servlet-name> 
    <url-pattern>/</url-pattern> 
  </servlet-mapping>  拦截了所有!
0 请登录后投票
   发表时间:2014-05-19  
Fs_sky 写道
这里有个问题,如果你要添加JS、css文件的时候是被拦截的!因为你这里<servlet-mapping> 
    <servlet-name>SpringMVC</servlet-name> 
    <url-pattern>/</url-pattern> 
  </servlet-mapping>  拦截了所有!


1、你可以配置default的servlet映射

2、可以再springmvc中配置<mvc:resources>
0 请登录后投票
   发表时间:2014-05-19   最后修改:2014-05-19
单一色调 写道
wushao 写道
你要的我们都已经实现了,前后台用两个不同的SpringMVC的servlet,也分别扫描前后台不同的controller

能发出来吗?

定义两个servlet,后缀分别为:a、b,这样有两个servlet配置,
a-servlet.xml、b-servlet.xml
a负责扫描前台的controller,b扫描后台的controller,

web.xml:
<servlet>
<servlet-name>frontSpringServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:a-servlet.xml</param-value>
</init-param>
</servlet>

<servlet>
<servlet-name>adminSpringServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:b-servlet.xml</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>frontSpringServlet</servlet-name>
<url-pattern>*.a</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adminSpringServlet</servlet-name>
<url-pattern>*.b</url-pattern>
</servlet-mapping>


a-servlet.xml:
<context:component-scan base-package="x.x.front.**.controller">
</context:component-scan>

b-servlet.xml:
<context:component-scan base-package="x.x.admin.**.controller">
</context:component-scan>
0 请登录后投票
   发表时间:2014-05-19  
单一色调 写道
Fs_sky 写道
这里有个问题,如果你要添加JS、css文件的时候是被拦截的!因为你这里<servlet-mapping> 
    <servlet-name>SpringMVC</servlet-name> 
    <url-pattern>/</url-pattern> 
  </servlet-mapping>  拦截了所有!


1、你可以配置default的servlet映射

2、可以再springmvc中配置<mvc:resources>


你还要两步,我直接<url-pattern>/*.do</url-pattern> 不就行了吗!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics