springmvc框架

springmvc和struts2的区别

萝らか妹 提交于 2019-12-06 01:48:01
1.Struts2是类级别的拦截,一个类对应一个request上下文;SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现Restful的url,而Struts2的架构实现起来要费劲。因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方法标识其所属方法了。 2.因为上面的原因,SpringMVC的方法之间基本上是独立的,独享request response的数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量;而Struts2搞得就比较乱,虽然方法之间也是独立的,但是Action中的所有变量却是共享的,这不会影响程序运行,却会给我们编码或读程序的时候带来麻烦,每次来了请求就创建一个Action,一个Action对象对应一个request上下文。即Struts2的Action是多实例单线程的,而SpringMVC是单实例多线程的。 3.由于Struts需要针对每个request进行封装,把request、session等servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全,所以在原则上是比较耗费内存的。 4.在拦截器实现机制上

springMvc

南笙酒味 提交于 2019-12-05 17:58:32
spring Web Mvc是基于Servlet Api构建的原始Web框架,从一开始就包含在spring框架下,其正式名称“Spring Web Mvc”来自它的源模块(Spring-webmvc)的名称,但它更常见的名称是的“Spring MVC". 一、springMvc 本质上还是在使用servle处理,并在其基础上进行了封装简化了开发流程,提高易用性,并使应用程序逻辑结构变得更清晰。 1 基于注解的 URL映射 2 http表单参数转换 3 全局统一异常处理 4 拦截器的实现 二、各组件执行流程 dispatchSevlet 前端控制器 接受客户端的请求 --> HandlerMapping --> HandlerAdapter --> handler 执行业务处理 ---> viewResolver 基于view Name查找view ---> view 执行试图解析 HandlerMapping :基于URL查找Handler, 返回HandlerExecutionChain(包括handler和interceptorList) HandlerAdapter :处理适配器, 基于Handler查找适配器 HandlerExceptionResolver 异常解析器 接口方法ModelAndView resolveException(HttpServletRequest

springmvc中如何自定义类型转换器

岁酱吖の 提交于 2019-12-05 17:51:42
package com.hope.utils;import org.springframework.core.convert.converter.Converter;import org.springframework.util.StringUtils;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** 第一步定义一个类型转换器的类 * @author newcityman * @date 2019/11/26 - 19:57 */public class StringToDateConverter implements Converter<String,Date>{ /** * * @param source * @return */ @Override public Date convert(String source) { if(StringUtils.isEmpty(source)){ throw new RuntimeException("参数不能为空,请输入一个参数。"); } DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

springmvc执行流程

旧街凉风 提交于 2019-12-05 10:52:27
springmvc执行流程 springmvc介绍 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。 图片说明 文字说明 用户发送请求至前端控制器DispatcherServlet DispatcherServlet收到请求调用HandlerMapping处理器映射器。 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet DispatcherServlet通过HandlerAdapter处理器适配器调用处理器 执行处理器(Controller也叫后端控制器-->Service-->DAO) Controller执行完成返回ModelAndView HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet DispatcherServlet将ModelAndView传给ViewReslover视图解析器

SpringMvc文件上传

你离开我真会死。 提交于 2019-12-05 04:48:15
小贴士,eclipse中复制一份已有的项目 1.copy,改名 2.右键---properties----web Project Settings—更改访问路径Context root写入新的文件名 一、单个文件上传 1)jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <% pageContext.setAttribute("ctp", request.getContextPath()); %> </head> <body> <!-- 文件上传 1.写表单;:enctype="multipart/form-data" 2.导入fileuplod包 commons-fileupload-1.2.1.jar commons-io-2.0.jar 3.javaweb....... 3.现在用框架 只需要在springmvc配置文件中,编写一个文件上传解析器MultiPartResolver九大组件之一 4.文件上传请求处理写Controller --> <!-- action最好写全路径

【串线篇】SpringMvc框架乱码

╄→гoц情女王★ 提交于 2019-12-05 04:38:29
提交的数据可能有乱码: * 请求乱码: * GET请求:改server.xml;在8080端口处URIEncoding="UTF-8" * POST请求: * 在第一次获取请求参数之前设置 * 自己写一个filter;而SpringMVC有这个filter * 相当于request.setCharacterEncoding("UTF-8"); * * 响应乱码: * response.setContentType("text/ html ; charset = utf -8") 所以: <!-- 使用SpringMVC前端控制器写完就直接写字符编码过滤器; Tomcat一装上,上手就是server.xml的8080处添加URIEncoding="UTF-8" --> <!-- 配置一个字符编码的Filter;一定注意:字符编码filter一般都在其他Filter之前; --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <!-- encoding:指定解决POST请求乱码 --> <init-param> <param-name

SpringMVC常用注解

大兔子大兔子 提交于 2019-12-04 23:28:28
SpringMVC是一种基于Java的实现MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发。 简单来说,SpringMVC的功能就是处理请求。 @RequestMapping 作用:处理请求映射(就是URL过来了映射到哪个方法) 可用于类或方法上: 类:作为父路径 方法:定位到某个方法 @RequestMapping("/hello") @RequestMapping(value="/hello") @RequestMapping(value="/add",method="POST") //默认是get 组合注解 @GetMapping等于@RequestMapping(method = "GET") @PostMapping等于@RequestMapping(method = "POST") @RequestParam 作用:参数控制 必须带参数才会执行test方法,否则不执行 @RequestMapping("/list") public String test(@RequestParam Long parentId) { } 无参也会执行test方法 @RequestMapping("/list") public String test( Long

about study

吃可爱长大的小学妹 提交于 2019-12-04 23:23:59
学习资源网址 https://www.runoob.com/html/html-tutorial.html 待学习 1. 阿里云构建云服务器 2. Spring+SpringMVC+Mybatis框架整合 3. Spring+SpringMVC+Hibernate框架整合 4. Struts2+SpringMVC+Hibernate框架整合 5. Jfinal框架搭建 6. 自定义注解 参考链接: https://blog.csdn.net/briblue/article/details/73824058 http://blog.csdn.net/u013045971/article/details/53433874 来源: https://www.cnblogs.com/mjtabu/p/11888102.html

SpringMVC工作原理

本小妞迷上赌 提交于 2019-12-04 23:10:12
定义: SpringMVC是基于Spring功能之上添加的Web框架(一个MVC模式的WEB开发框架) 工作原理: 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping映射器。 3、 映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成对象及拦截器一并返回给DispatcherServlet。 4、 DispatcherServlet调用HandlerAdapter适配器。 5、 HandlerAdapter经过适配调用具体的处理器Controller(后端控制器)。 6、 Controller执行完成返回ModelAndView。 7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。 8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器。 9、 ViewReslover解析后返回具体View。 10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。 11、 DispatcherServlet响应用户。 来源: https://www.cnblogs.com/BruceV/p/11887336.html

Spring和SpringMVC总结篇

倾然丶 夕夏残阳落幕 提交于 2019-12-04 17:39:23
作者:肥宅兜 链接:https://www.cnblogs.com/doudouxiaoye/p/5693399.html 1.为什么使用Spring ? 方便解耦,简化开发; 通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。 AOP编程的支持; 通过Spring提供的AOP功能,方便进行面向切面的编程,如性能监测、事务管理、日志记录等。 声明式事务的支持; 方便集成各种优秀框架; 降低Java EE API的使用难度; 如对JDBC,JavaMail,远程调用等提供了简便封装 2. 什么是IOC,为什使用IOC ? IOC全称Iversion of Controller,控制反转。 这概念是说你不用创建对象,而只需要描述它如何被创建。 你不在代码里直接组装你的组件和服务,但是要在配置文件里描述哪些组件需要哪些服务,之后一个容器(IOC容器)负责把他们组装起来。 它能指导我们如何设计出松耦合、更优良的程序。 3. 什么是AOP,为什么使用AOP ? AOP全称:Aspect-Oriented Programming,面向切面编程。 AOP,面向切面编程,就是把可重用的功能提取出来,然后将这些通用功能在合适的时候织入到应用程序中,比如事务管理、权限控制、日志记录、性能统计等。 AOP并没有帮助我们解决任何新的问题