Spring 3之MVC & Security简单整合开发(一)
2016-12-15 09:11
274 查看
原文链接:http://sarin.iteye.com/blog/829738
spring的MVC模块是一种简洁的Web应用框架,实现了MVC模式来处理HTTP请求和响应。相比于Struts系列,SpringMVC的MVC更加明显,将控制器和视图的定义完全分离,它们不需要在一个命名空间下了。它有Spring的全部优点,bean的配置更加舒服。而Spring
3的注解配置使得代码编写更加优雅。本例结合Spring MVC和Security框架进行小小整合,仅做功能说明,不详细探究其原理。
首先是建立项目,做一个简单的消息发布功能,代码结构如下,使用Maven可以很好的管理依赖:
![](http://www.chinasb.org/wp-content/uploads/2011/05/spring_mvc_demo.png)
采用了分层结构,但是没有使用到数据库操作,仅仅做个简短的说明,数据库操作用在后面Security框架验证用户时。下面来看看依赖关系,这样能对Spring的层次结构了解更加清晰:
![](http://www.chinasb.org/wp-content/uploads/2011/05/spring_mvc_demo_dependence_tree.png)
先来看最基本的web部署描述文件web.xml,将用到的配置写好,Spring 3使用DispatcherServlet派发请求,而Security框架串接过滤器的机制来进行安全处理。配置很简单,如下即可,web请求使用.htm形式:
下面是Servlet的配置文件,因为我们使用了注解,这里仅需对视图文件进行一下说明即可,而又配合后面的Security框架,在这里对Security框架的方法拦截注解也声明了一下,这里说明一点,要拦截Controller的方法,必须将Security的声明和Servlet放在一个文件内,否则拦截是没有作用的:
其中对org.ourpioneer.board.web包进行组件扫描,就会发现我们注解声明的控制器了,下面是对视图解析的说明,我们把视图文件写在/WEB-INF/jsp/下,后缀名为.jsp的文件就是视图文件,为什么把前缀和后缀都声明好了?因为程序里面我们直接写文件名就可以了,非常灵活,它不关心是不是和请求路径是相同的。下面是对Controller方法拦截的Security框架的配置。
配置好Servlet相关内容,剩下就是Service内容了,这个很简单了,声明一个bean就是了,为了配合Security框架连接数据库验证用户身份,这里也配置一个数据源,使用Spring自己的数据源实现:
配置好后,我们来看看程序代码,首先看看定义的领域对象Message,很简单的bean:
下面是Service,我们使用了实现和接口相分离的原则,方面后续在WebService中公开等,可能用不到,但这是一个良好的设计原则。接口内定义四个方法声明:
下面是Service的实现类,就用List放置Message即可,这里我们对Service的方法也进行了安全拦截,这是更细粒度的拦截,后面会详细介绍,现在可以不管:
下面就该进入控制器部分了,我们一个一个来看:
对该类进行控制器注解声明,说明是Spring MVC中的控制器,下面是请求映射声明,处理/messageList.htm的请求,Service的注入采用自动装配,连set方法都不用了,下面是对处理方法,可以看出,这是一个简单的POJO,连方法名都是我们自定义的,只需声明HTTP请求方法,就能找到方法了,而Model是传递数据给页面的对象,把获取到的message列表放进去就行了,来看返回值,一个字符串,什么意思?就是JSP页面的名字,是不是很简单,MVC表现的淋漓尽致,这就会找到页面了。
下面是发布消息的类:
GET方式是请求到这个页面,而POST方式是发布消息,最后是重定向,再到messageList.htm,就是这么简单的配置。要注意的是方法实现,先看页面请求方法setupForm(Model model),参数上面已经解释了,是传递给页面的数据对象,里面放置了一个Message对象,做什么用的?肯定页面使用了,不过这是一个空对象,那么自然想到要和表单属性进行绑定,等会看看页面就一清二楚了。下面是onSubmit方法,里面的参数都是我自己定义的,只要记住BindingResult要和数据对象参数Message写在一起,后面的参数写想用的就行,那么我想用HttpServletRequest对象,就写上去。真的很灵活。方法实现很简单,就不多说了。
最后是删除功能了,更简单了:
只是权限设置为有管理员权限的才能删除,这里先不用。来看方法参数,我们必须要一个请求参数,是messageId,删除消息的标识符。下面就是操作了,很简单。
最后来看一下页面:
列表页面有Security框架标签的使用,仅做MVC时可以先注释起来。这里使用了JSTL标签来遍历message列表,都很简单。
下面是发布消息的页面:
前面说的数据绑定,这里就很容易看明白了吧。没有什么可以多解释的。
准备都做好后就是运行了,我们启动Jetty,来看看效果。
因为我结合了Security框架,所以看到了我登录的身份列表,下面就是发布消息了,这就很简单了.
spring的MVC模块是一种简洁的Web应用框架,实现了MVC模式来处理HTTP请求和响应。相比于Struts系列,SpringMVC的MVC更加明显,将控制器和视图的定义完全分离,它们不需要在一个命名空间下了。它有Spring的全部优点,bean的配置更加舒服。而Spring
3的注解配置使得代码编写更加优雅。本例结合Spring MVC和Security框架进行小小整合,仅做功能说明,不详细探究其原理。
首先是建立项目,做一个简单的消息发布功能,代码结构如下,使用Maven可以很好的管理依赖:
![](http://www.chinasb.org/wp-content/uploads/2011/05/spring_mvc_demo.png)
采用了分层结构,但是没有使用到数据库操作,仅仅做个简短的说明,数据库操作用在后面Security框架验证用户时。下面来看看依赖关系,这样能对Spring的层次结构了解更加清晰:
![](http://www.chinasb.org/wp-content/uploads/2011/05/spring_mvc_demo_dependence_tree.png)
先来看最基本的web部署描述文件web.xml,将用到的配置写好,Spring 3使用DispatcherServlet派发请求,而Security框架串接过滤器的机制来进行安全处理。配置很简单,如下即可,web请求使用.htm形式:
配置好Servlet相关内容,剩下就是Service内容了,这个很简单了,声明一个bean就是了,为了配合Security框架连接数据库验证用户身份,这里也配置一个数据源,使用Spring自己的数据源实现:
下面是发布消息的类:
最后是删除功能了,更简单了:
最后来看一下页面:
下面是发布消息的页面:
准备都做好后就是运行了,我们启动Jetty,来看看效果。
因为我结合了Security框架,所以看到了我登录的身份列表,下面就是发布消息了,这就很简单了.
相关文章推荐
- Spring 3之MVC & Security简单整合开发(三)
- Spring 3之MVC & Security简单整合开发(二)
- Spring 3之MVC & Security简单整合开发(三)
- Spring 3之MVC & Security简单整合开发(二)
- Spring 3之MVC & Security简单整合开发(二)
- Spring 3之MVC & Security简单整合开发(一)
- Spring 3之MVC & Security简单整合开发(二)
- Spring 3之MVC & Security简单整合开发(三)
- Spring 3之MVC & Security简单整合开发(二)
- Spring 3之MVC & Security简单整合开发(一)
- Spring 3之MVC & Security简单整合开发(一)
- Spring 3之MVC & Security简单整合开发(三)
- 整理springmvc+mybatis+velocity的整合<一>
- Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发
- 整合springmvc+mybatis+veloctiy<三>
- 整合开发Struts2,Hibernate,Spring简单框架的搭建详解
- spring mvc系列文章 - springmvc spring mybatis ibatis freemark整合开发(1.0版)
- 用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能(二)
- spring mvc + hibernate 整合报错 'sessionFactory' or 'hibernateTemplate' is required
- 续spring mvc+velocity之spring mvc + freemarker整合开发