springmvc例子

SpringMVC的入门例子

谁说我不能喝 提交于 2020-01-14 13:39:35
MVC框架是什么 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式。它主要通过分离模型、视图及控制器在应用程序中的角色将业务逻辑从界面中解耦。通常,模型负责封装应用程序数据在视图层展示。视图仅仅只是展示这些数据,不包含任何业务逻辑。控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑。处理后,后台业务层可能会返回了一些数据在视图层展示。控制器收集这些数据及准备模型在视图层展示。MVC模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响。 在Spring MVC应用程序中,模型通常由POJO对象组成,它在业务层中被处理,在持久层中被持久化。视图通常是用JSP标准标签库(JSTL)编写的JSP模板。控制器部分是由dispatcher servlet负责,在本教程中我们将会了解更多它的相关细节。 一些开发人员认为业务层和DAO层类是MVC模型组件的一部分。我对此持有不同的意见。我不认为业务层及DAO层类为MVC框架的一部分。通常一个web应用是3层架构,即数据-业务-表示。MVC实际上是表示层的一部分。 Dispatcher Servlet(Spring控制器) 在最简单的Spring MVC应用程序中,控制器是唯一的你需要在Java web部署描述文件(即web.xml文件)中配置的Servlet

杭-Spring/Spring MVC

回眸只為那壹抹淺笑 提交于 2020-01-14 08:56:34
Spring 1、Spring是什么? Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。 主要由以下几个模块组成: Spring Core:核心类库,提供IOC服务; Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等); Spring AOP:AOP服务; Spring DAO:对JDBC的抽象,简化了数据访问异常的处理; Spring ORM:对现有的ORM框架的支持; Spring Web:提供了基本的面向Web的综合特性,例如多方文件上传; Spring MVC:提供面向Web应用的Model-View-Controller实现。 2、Spring 的优点? 答:1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.Spring提供了AOP技术,支持将一些通用任务,如安全、事务、日志、权限等进行集中式管理,从而提供更好的复用。 5.容器提供了众多的辅助类,能加快应用的开发 6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA

SpringMVC常用注解

我的梦境 提交于 2020-01-14 03:29:04
SpringMVC常用注解及其介绍 转载 凉凉的西瓜 发布于2018-12-22 20:45:09 阅读数 2339 收藏 展开 SpringMVC常用注解及其介绍 前言:在介绍SpringMVC常用注解之前,有兴趣的可以先了解一下SpringMVC的工作流程。SpringMVC工作流程详解 OK,接下来进入本次主题。 在实际项目中,我们最常用的几个注解,包括 @Controller、@RestController、 @RequestMapping、@PathVariable、@RequestParam 以及 @RequestBody,此次主要介绍下这几个注解常用的使用方式和特点。 1.@Controller 在SpringMVC中,controller主要负责处理前端控制器(DispatcherServlet )发过来的请求,经过业务逻辑层处理之后封装层一个model,并将其返回给view进行展示。@controller注解通常用于类上,如果结合Thymeleaf模板使用的话,会返回一个页面。如果是前后端分离的项目,则使用@RestController,表明返回的是json格式数据。 2.@RestController 在介绍RestController之前,我们先点进去看一下: @Target({ElementType.TYPE}) @Retention

Spring和Spring MVC包扫描

会有一股神秘感。 提交于 2020-01-13 04:58:28
在Spring整体框架的核心概念中,容器是核心思想,就是用来管理Bean的整个生命周期的,而在一个项目中,容器不一定只有一个,Spring中可以包括多个容器,而且容器有上下层关系,目前最常见的一种场景就是在一个项目中引入Spring和SpringMVC这两个框架,那么它其实就是两个容器,Spring是父容器,SpringMVC是其子容器,并且在Spring父容器中注册的Bean对于SpringMVC容器中是可见的,而在SpringMVC容器中注册的Bean对于Spring父容器中是不可见的,也就是子容器可以看见父容器中的注册的Bean,反之就不行。 springmvc 的配置文件和spring的配置文件都可以配置包扫描,如下: <context:component-scan base-package="com.xxx"/> 从Spring提供的参考手册中我们得知该配置的功能是扫描配置的base-package包下的所有使用了@Component注解的类,并且将它们自动注册到容器中,同时也扫描@Controller,@Service,@Respository这三个注解,因为他们是继承自@Component。 在项目中我们经常见到还有如下这个配置,其实有了上面的配置,这个是可以省略掉的,因为上面的配置会默认打开以下配置。以下配置会默认声明了@Required、@Autowired、

SpringMVC之Controller和参数绑定

喜夏-厌秋 提交于 2020-01-10 04:58:13
     在上一篇 Spring+SpringMVC+Mybatis 整合中说到了SSM的整合,并且在其中添加了一个简单的查询功能,目的只是将整个整合的流程进行一个梳理,下面在 上一篇 中工程的基础上再说一些关于SpringMVC的Controller的一些细节。   首先附上整个项目结构图,附上整个代码工程的 下载地址 ,下面所讲到的测试用例都是在下面这个测试项目的基础上进行的。 一、关于Controller的注解形式   1、使用@Controller注解可以实现Controller的注解开发,然后在springmvc.xml的配置文件中配置注解扫描器,就可以使用注解形式进行Controller的开发,下面我们简单使用一个helloworld的例子进行说明   ①在springmvc.xml中配置注解扫描器   其中也当然包含springmvc所需要的处理器映射器、处理器适配器、视图解析器(这几个组件个概念可以查看 SpringMvc入门 ,其中开篇说到了SpringMVC的处理流程和各个组件以及之间的关系),我们这里直接使用下面的配置方式进行配置   ②写一个简单的helloworld,在浏览器中请求对应的Controller,然后输出在页面上 1 package cn.test.ssm.controller; 2 3 import org.springframework

PlayJava SpringMVC与Struts2杂谈

徘徊边缘 提交于 2020-01-06 19:10:30
一 先做一个简单对比: 1. SpringMVC的入口是Servlet,核心是DispatcherServlet,Struts2是Filter,核心是FilterDispatcher 2. SpringMVC应当会比Struts2稍微快些。SpringMVC是基于方法设计,Struts2是基于类,即每发一次请求都会实例一个Action 3. SpringMVC使用相对简洁一些,支持JSR303,处理ajax请求更加方便,开发效率应当会比Struts2要高些 4. Struts2的OGNL表达式使页面的开发效率相比SpringMVC更高些 二 Struts2的核心控制器是FilterDispatcher,在Struts1系列版本中,所有的请求是通过一个Servlet(ActionServlet)来管理控制的,在Struts2系列版本中是经过一个Filter来处理请求的。Struts2选择Filter而不是Servlet来设计核心控制器,是为了实现AOP思想。 Struts1.x的配置: <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> ...... </servlet> Struts2.x的配置:

SpringMVC 3.1集成Spring Security 3.1

那年仲夏 提交于 2019-12-27 12:43:19
这篇算是一个入门文章,昨天看见有网友提问,spring mvc集成spring security 的时候出错,揣测了一下问题木有解决。我就帮忙给搭建了一个集成框架他说可以,他告诉我这样的文章网上少。今天我就分享在这里供入门学习。spring mvc我木有用过,所以我们这里重点讲解如何集成spring security ,spring security是一个非常好的开源权限框架(具体了解自己google,或者到spring 官网,这里我给一个DOC3.1: http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity.html )。 可以说不仅仅包含了权限,里面有一套完整的授权认证系统包括:权限、防止session攻击、支持信道安全、支持LDAP认证、支持OpenID、同时支 持CAS集成单点登录等等,个人用过spring security 2.0基本大致一样,当时中文资源那个少啊,尤其集成SSH+spring security 更是少的可怜,最后还是硬着头皮上,最后拿下了这个框架,最起码了解了。当时就写了一个SSH+spring security的文章,还被某网站引用。好了废话不扯,我们今天在来集成一个springmvc3.1+spring security3.1

SpringMVC框架学习(九)——参数绑定(上)

一世执手 提交于 2019-12-24 04:36:10
SpringMVC之参数绑定(上) 众所周知,springmvc是用来处理页面的一些请求,提交请求的数据是通过方法形参来接收的。从客户端请求的 key/value 数据,经过参数绑定,将 key/value 数据绑定到 Controller 的形参上,然后在 Controller 就可以直接使用该形参,最终再将数据再通过视图返回给用户的,在这一篇博文中,将总结一下springmvc中如何接收前台页面的参数,即springmvc中的参数绑定问题。 1、默认支持的类型 SpringMVC 有支持的默认参数类型,我们直接在形参上给出这些默认类型的声明,就能直接使用了。如下: ①、HttpServletRequest 对象 ②、HttpServletResponse 对象 ③、HttpSession 对象 ④、Model/ModelMap 对象      在参数绑定过程中,如果遇到上面类型就直接进行绑定。也就是说,我们可以在controller的方法的形参中直接定义上面这些类型的参数,springmvc会自动绑定。 看一个简单的例子: Controller代码: @Controller public class MyController { @RequestMapping ( "/first" ) public ModelAndView test ( HttpServletRequest

SpringMVC请求参数接收总结

若如初见. 提交于 2019-12-13 18:12:03
在日常使用 SpringMVC 进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结。 SpringMVC 中处理控制器参数的接口是 HandlerMethodArgumentResolver ,此接口有众多子类,分别处理不同(注解类型)的参数,下面只列举几个子类: RequestParamMethodArgumentResolver :解析处理使用了 @RequestParam 注解的参数、 MultipartFile 类型参数和 Simple 类型(如 long 、 int 等类型)参数。 RequestResponseBodyMethodProcessor :解析处理 @RequestBody 注解的参数。 PathVariableMapMethodArgumentResolver :解析处理 @PathVariable 注解的参数。 实际上,一般在解析一个控制器的请求参数的时候,用到的是 HandlerMethodArgumentResolverComposite ,里面装载了所有启用的 HandlerMethodArgumentResolver 子类。而 HandlerMethodArgumentResolver 子类在解析参数的时候使用到 HttpMessageConverter (实际上也是一个列表,进行遍历匹配解析)子类进行匹配解析,常见的如

spring aop之父子容器

匆匆过客 提交于 2019-12-09 17:46:26
需求;项目对外提供接口,要求每个对外接口都要进行token认证。 解决办法:写一个token认证的工具类,在每个需要认证的接口方法开始的地方,调用工具类中的token认证方法。 问题:因为要满足指定条件才可以进行下一步,在接口中调用token认证的时候,要返回结果进行判断,不止是一行代码可以解决问题。 优化:使用aop 切面编程,在执行接口的内容之前,进行认证。通过注解的方式,织入到切点中。这样在需要进行认证的接口上只需要添加一个注解就可以token认证功能。 问题:基于Aspect注解实现该功能,在程序启动时,访问接口,直接进入接口,没有进入切面。 AuthController @RestController public class AuthController { @PostMapping("authentication") @TokenChecker public Result getToken(String username,String password){ return null; } } 切面类:execution 表达式没有任何问题。 @Aspect @Component public class TokenAspect {   //匹配指定类下的有指定注解的方法。只要在要切入的方法上加上注解就可以将该方法作为切入点。 @Pointcut("execution