范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

从头到脚细致解说SPRINGMVC,走向spring大家庭的怀抱

  1.回顾mvc
  二阶段的封装代码中,问题
  使用springmvc,减少开发量,让上述的工作,给springmvc去做2.springmvc介绍
  首先,springmvc是spring中的一个模块,也是一个mvc设计思想的框架
  The Spring Web model-view-controller (MVC) framework is designed around a DispatcherServlet that dispatches requests to handlers, with configurable handler mappings, view resolution, locale and theme resolution as well as support for uploading files.
  springmvc设计核心,是DispatcherServlet,是用来接收和分发请求给具体的handler(类似二阶段封装中的Controller,是由程序员开发的),通过请求和handler之间的映射配置(类似mvc.xml),最后,通过视图解析器解析页面响应。支持文件上传3.springmvc框架搭建
  需求:浏览器输入请求地址 http://localHost:8080/teacher_springmvc/hello访问服务器,服务器响应hello.jsp给浏览器
  1)新建teacher_springmvc01
  2)导包
  核心包
  还需要拷贝之前spring框架中的jar包
  3)配置文件
  log4j.properties
  springmvc框架自己的配置文件,applicationContext-mvc.xml(名字不重要,也可以是springmvc.xml)
  配置文件直接拷贝之前spring的配置文件
  web.xml(是tomcat加载工程的唯一入口)
  给servlet加load标签,一般是servlet在第一次被访问的时候实例化,加了load标签,就是tomcat启动的时候就实例化。
  4)部署到tomcat中,启动tomcat
  报错:
  DispatcherServlet在实例化的时候,会默认去WEB/INF目录下找配置文件,配置文件的文件名为 web.xml中servlet配置的servlet-name + "-servlet.xml"
  拷贝applicationContext-mvc.xml到在WEB-INF下,并重命名为springmvc-servlet.xml
  重启服务器—》成功
  但是!!我们的配置文件,肯定不会直接放在WEB/INF下,而是放在src下,编译之后的目录是WEB/INF下的class目录
  这时,我们需要告诉DispatcherServlet,配置文件的路径+文件名,替换默认路径和文件名
  删除WEB/INF下的springmvc-serlvet.xml
  重启服务器
  --成功
  5)入门案例,HelloWorld
  浏览器输入请求地址 http://localHost:8080/teacher_springmvc/hello访问服务器,服务器响应hello.jsp给浏览器
  a. handler编写,用于处理/hello请求
  b.hello.jsp
  c. 请求地址和handler之间的映射
  重启,访问
  因为web.xml配置DispatcherServlet拦截的地址为 /*,所以不管是jsp还是/hello还是js,css的请求,会全部都到DispatcherServlet中。会404
  处理办法:将需要给DispatcherServlet拦截的请求加个标识,拦截.action结尾的请求
  浏览器请求地址:http://localHost:8080/teacher_springmvc/hello.action
  映射配置:
  重启,重新访问
  4.springmvc 注解模式
  teacher_springmvc02
  1)controller可以脱离springmvc的api
  2)配置文件中开启注解
  3)代码中使用注解
  5.执行流程
  1.tomcat启动的时候加载应用,解析web.xml
  需要在启动之后,实例化DispatcherServlet.
  DispatcherServlet实例化的时候,默认加载了一个配置文件DispatcherServlet.properties
  DispatcherServlet加载这个配置文件,主要的目的,就是实例化它的各种帮手。
  除了默认加载的配置文件,DispatcherServlet还加载了我们指定的配置文件
  先解析applicationContext-mvc.xml,
  如果有bean配置,那么实例化bean,然后拿bean的name属性作为key,实例作为value.
  如果有开启注解的标签,那么DispatcherServlet会扫面指定的包
  扫描指定包的时候,找@Controller和@RequestMapping注解
  @Controller注解,用来生成实例
  @RequestMapping用来映射请求地址和方法之间的映射
  如果还有其他的标签,会继续做相应的事。
  2.浏览器请求http://localHost:8080/teacher_springmvc/hello.action
  3.tomcat服务器接收到浏览器的请求,先拆分看请求的是 哪个应用,然后看请求地址有没有在web.xml中配置到。如果web.xml中没有配置拦截,那么就根据路径指向具体的资源(比如teacher_springmvc/index.jsp,那么tomcat会发现web.xml中没有要接收这个请求的,那么就从webRoot开始,找index.jsp响应给浏览器,没找到,404)
  但是,请求的是teacher_springmvc/hello.action ,web.xml中,有个servlet配置,接收*.action的请求,请求地址hello.action符合要求,那么tomcat就会把这个请求丢给DispatcherServlet
  4.DispatcherServlet拿到这个请求,会找处理器映射器帮忙,找是那个映射关系。
  找到映射关系,等于找到了哪个Controller处理这个请求
  继续找处理器适配器帮忙,调用具体的Controller中的具体方法
  5.DispatcherServlet拿到Controller层处理之后的返回值。
  又继续找视图解析器帮忙,解析响应指定的页面给浏览器6.@RequestMapping应用
  6.1方法上使用
  请求地址:
  http://localhost:8080/teacher_springmvc/hello.action
  6.2用在类上,作用类似namespace
  请求该类中每个方法,都需要带上namespace, namespace就是类上的RequestMapping指定的路径
  1+2组成的请求地址,在整个工程中不能重复
  6.3 @RequestMapping 默认支持get/post两种请求方式。
  那如果,我只要支持其中的一种
  显式的定义,支持post、get
  7.Controller层方法的返回值7.1 ModelAndView
  ModelAndView可以给跳转页面地址
  绝对路径,以 / 打头
  页面跳转是转发还是重定向?
  默认为转发
  那如果要重定向?页面地址前加上 redirect:
  ModelAndView除了可以放view视图(jsp),还可以放model(数据)
  7.2 String
  返回值String:为需要跳转的页面
  默认转发
  如果要使用重定向
  7.3 void
  方法没有返回值,在方法中,使用response直接给页面响应
  8.Controller层方法参数8.1 默认参数(Servlet API)
  HttpServletRequest, HttpServletResponse, HttpSession, ModelAndView ,ModelMap
  8.2 简单类型
  String,int之类
  形参的命名=前台页面控件的name属性值
  类型转换-》框架会做
  一般用于属性较少的添加和查询功能8.3 自定义对象
  提交参数的key需要和实体类属性名保持一致
  提交参数key: 如果是form表单,key就为form控件中的name属性
  如果是其他的提交方式,比如get, …action?key1=value1&key2=value2,那么,key1,key2都需要和实体类属性名一致
  8.4 包装类
  自定义对象中含有自定义对象
  Product中Company对象传参
  jsp页面,控件的name属性值,需要使用导航符。
  8.5数组
  checkbox类型
  参数使用String类型
  参数使用数组类型
  如果前台使用的checkbox,那么参数可以是String类型,也可以是数组类型,如果value为number类型,那么数组可以直接定义为int类型数组8.6 类型转换
  之前的参数中,有String—》int, 也有String—》double这些类型转换,springmvc框架中内置的。
  但是如果想要String Date, 比如产品的发行时间,通过req取出参数肯定是String类型,但是我们的实体类,或者说直接使用参数接收,那么框架不支持转换,需要自定义转换器
  1) 定义转换器
  2)将转换器注册到框架中
  3)mvc框架集成自定义的转换器
  需要使用到mvc打头的标签,要使用mvc中的标签,需要引入mvc的约束
  使用mvc标签,集成自定义转换器
  springmvc框架中,遇到StringDate类型,会自动调用自定义的转换器。
  如果已有的转换器,重新定义,比如String Integer ,那么,自定义的转换器会覆盖内置转换器
  9.乱码问题
  get/post
  POST
  使用springmvc中的字符集过滤器
  GET
  使用终极大招
  tomcat/conf/server.xml中指定url编码格式
  get方式提交,参数是直接跟在请求地址之后,请求地址是由tomcat解析的。让tomcat在解析的时候,使用我们指定的编码格式解析
  10.springmvc+spring+mybatis集成(dao+xml配置版本)
  teacher_ssm011)导包
  导入spring+mybatis最后一个版本的包
  至于springmvc,检查下是否含有spring-web和spring-webmvc这两个包,如果没有,重新导入。
  2)配置文件
  log4j.properties
  db.properties---》数据源配置,给spring引入使用
  sqlMapConfig.xml --------mybatis
  applicationContext.xml----------spring
  applicationContext-mvc.xml--------springmvc
  web.xml ------DispatcherServlet需要配置,spring中的实例也需要tomcat创建,所以,spring的入口也在web.xml中配置
  DispatcherServlet
  spring入口—》监听
  3)部署,启动
  未报错,但是不能证明框架集成成功4)案例
  查询所有的企业展示。
  1.建表
  insert数据…
  2)实体类
  Company.java
  3)CompanyDao接口,CompanyDaoImpl实现类,company.xml
  company.xml
  实现类
  4)sqlMapConfig.xml中注册配置文件
  5)CompanyService,接口,实现类
  6)Controller
  7)service,dao在applicationContext中的bean配置
  8)controller中的注解配置
  9)springmvc配置文件中,开启注解
  10)companyManager.jsp
  路径需要Controller中返回的路径一致
  a.拷贝资源目录
  --》
  b.复制companyManager.html到webRoot/pages/backend目录
  c.将html修改为jsp
  第一步先复制jsp文件内容到html
  第二步修改后缀
  第三步,修改所有的引用地址为绝对
  第四步:使用c标签解析comList
  11) 部署,启动
  12)浏览器访问地址
  11.springmvc+spring+mybatis+mapper代理+注解
  1)拷贝teacher_ssm01工程,代码结构调整
  2)company.xml中的namespace调整
  3)修改company.xml在sqlMapConfig.xml中的路径
  4)service使用注解
  5)在spring中配置mapper代理生成
  6)springmvc配置文件中,一定要打开注解
  如果这个扫描的包已经包含了Service,dao等等,那么spring配置文件中applicationContext.xml不需要再开启一次注解
  如果applicationContext-mvc.xml中的包只有com.njwb.controller
  那么,applicationContext.xml中需要重新开启注解,扫描service,dao …
  案例:
  添加企业
  1)添加企业ID的序列
  2)接口,company.xml提供添加
  3)service
  4)controller
  校验参数
  调用service添加数据
  跳转到列表页
  5)修改companyAdd.html
  a.修改companyManager.jsp中的跳转地址
  b.修改companyAdd.html为jsp文件
  c.修改添加页面的form提交地址,提交方式
  d.给需要提交到后台数据的控件添加name属性
  e.要取详情内容,使用隐藏域
  目前代码中的校验
  如果属性比较多,代码就会很多,并且,修改中也会有很多的重复代码,因为修改中也需要做校验,并且,校验一般和添加差不多
  并且,校验完成之后,目前是跳转到result.jsp
  但是从用户的角度来说,校验不通过,一般回到添加页面,并且,原始数据有回显,然后有相依的错误信息提示
  不使用校验框架也可以做到,不过,使用校验框架,编码更简单,提示信息也可以作为配置文件12.校验框架
  teacher_ssm04使用hibernate校验框架
  1)导包
  2)在mvc中配置校验器
  3)需要在mvc框架中启用校验器
  4)代码中使用
  在实体类中,使用注解标明这个属性的规则是什么样子的
  在Controller的方法中,需要告诉springmvc,形参Company company,需要使用校验框架做校验
  页面效果:
  将错误信息放到配置文件中
  数据回显
  校验框架,支持数据回填
  默认key为实体类类名,第一个字母小写。不需要显示的传值
  案例:
  如果就是要修改一下传值的key,使用
  并不是每种场景校验都一模一样
  比如:添加和修改。
  添加中,每个属性都需要校验
  修改: 不允许修改的属性,还需要校验么???
  假设:企业数据中,佣金不允许修改
  添加需要校验 企业名称、佣金、详情
  修改需要校验 企业名称、详情
  校验需要分场合,分场景
  把实体类属性中的校验分组校验分组
  1)首先需要定义两个空接口,作为两个标识
  2)给实体类中的规则分组
  3)Controller中使用分组校验
  校验注解:
  逻辑性校验校验框架做不了,比如,重名校验13.springmvc中使用ajax
  1)使用response响应
  2 ) 使用@ResponseBody注解响应
  使用该注解,表示,返回值不管是啥,直接响应给浏览器
  返回String
  返回Company
  让springmvc框架自动的将对象转换成json格式的字符串,需要导包
  代码:
  jsp:
  结果:
  14.springmvc上传
  1)jsp中的form表单处理和Servlet上传处理一致
  method="post",enctype需要处理
  2)Controller中使用mvc包中的类直接接收文件对象
  需求:给企业添加一个图片
  1)数据库添加字段
  img_url(上传路径), img_real_name(原始文件名)
  2)实体类添加属性
  3)需要修改的功能:
  企业添加,企业修改,企业列表页展示,企业详情也要展示
  4)企业添加:
  a.修改company.xml中的insert语句
  b.Controller添加方法中,参数,直接找框架要浏览器提交的文件对象
  c.需要使用文件对象,那么需要在mvc中配置文件解析器
  d.页面添加file控件
  e.form表单处理
  f.测试Controller中能不能拿到文件对象
  g.指定文件上传的路径
  h.文件上传地址,使用配置形式;文件重命名,使用当前时间的时分秒毫秒形式15.列表页的table中省略显示详情
  页面效果:
  解决方式
  Company实体类中,提供一个get方法,获取这个String
  页面使用el取值
  16.文件下载
  1)页面请求地址
  比如
  2)需要有一个Controller处理下载请求
  a.Servlet通用下载,使用response响应文件流
  3)SpringMVC下载
  16.Springmvc中的异常处理
  teacher_ssm06
  1.定义异常处理器
  2.注册自定义异常处理器
  17. Spring中的定时任务—SpringJob
  1)导包
  2)定义定时任务
  3)配置定时任务
  1.定时任务bean
  2.定时任务触发器(间隔时间)
  3.spring定时任务配置所有的触发器
  到点之后,不管上一个定时任务是否结束,
  1)到点仍然开启新一轮定时任务,允许同一个定时任务有多个线程存在
  2)到点之后,等待上一个定时任务结束,然后再开启新一轮定时任务
  如果涉及到数据库数据更新,那么定时任务,不应该是可以多线程。
  实现接口就可以了,不需要编写额外的代码

这个世界爱情观怎么了,90后见证着爱情悲哀如果是去见你,我会有跑的这是多么浪漫的一句话啊,因分开,思念,到终于有机会相见,用跑的方式都赶不上思念的速度。而如今在看看这句话,多么可笑了呀?自从刷到这个热点,就更开始对这个世界关注奔驰进入电池回收领域零部件公司新增废旧电池回收业务文懂车帝原创彩丽美懂车帝原创行业近日,懂车帝从天眼查获悉,梅赛德斯奔驰零部件制造服务有限公司发生工商变更,经营范围新增资源再生利用技术研发新能源汽车废旧动力蓄电池回收及梯次利用等。人生,活的是心情,过的是心态时代的一粒灰,落在个人头上,就是一座山。疫情给我们生活带来的冲击,也不外乎是身体不适言行不当情绪不稳心态不安每个人都被裹挟着被惊吓着,手忙脚乱地奔波忙碌着。此时此刻,仍不放弃对自我散文妻子养花记妻子爱好养花,似乎与生俱来。结婚几十年,尽管屡屡搬家,生活的闲情逸致,常常淹没在人生旅途的艰辛和无奈之中,但妻子对养花的痴情,不仅丝毫没有被磨蚀,而且始终乐此不疲。记得家在铜川的时美国多家大型科技公司宣布裁员受通货膨胀和经济形势不佳影响,美国多家大型科技公司近日纷纷宣布裁员或暂停招聘。美国社交媒体平台脸书的母公司元公司首席执行官马克扎克伯格9日在致员工信中写道我已经决定将我们的团队规模平淡人生最幸福大部分人都以为高官厚禄的人生最幸福,或者认为有钱就幸福钱越多越幸福。其实过来人都深有体会,平平淡淡的人生才是最幸福的人生。高官在别人眼里看见很幸福,出入有车有随从,甚至吆五喝六,一季羡林谈人生谈礼貌谈礼貌眼下,即使不是百分之百的人,也是绝大多数的人,都抱怨现在社会上不讲礼貌。这是完全有事实做根据的。前许多年,当时我腿脚尚称灵便,出门乘公共汽车的时候多,几乎每一次我都看到在车上看见西藏人生就是一场旅行拉萨秋色来西藏的朋友说就喜欢坐在金黄的屋顶晒太阳,喝酥油茶或者青稞酒。风一吹,就能看到杨树林下的白墙庭院悠闲的牛羊。他的描述颇有诗意。在城市里住久了,游走在一个又一个方格子里,每天河北弹棉花老汉,潜伏东陵10多年用自制钥匙,差点把皇陵搬空导读自古以来,墓葬文化一直都在中国历史上占据着重要的地位。坟墓作为人一生最终的归宿,最忌讳被人打扰,纵观历史,历朝历代的王侯将相莫不小心翼翼,将自己的坟冢建造于极难寻觅之处,以免死淄博七大水库盘点,山东海拔最高的水库在这里一桥飞架南北,天堑变通途。更立西江石壁,截断巫山云雨,高峡出平湖。一首沧桑雄劲的诗把当年伟人的愿望体现得淋漓尽致。如今,伟人的愿望早已实现,三峡水电站是目前世界上规模最大的水电站,重庆沙坪坝红色旅游有多牛?土生土长的沙坪坝人都不一定晓得秋日生活打卡季重庆生活记录沙坪坝有繁华古镇磁器口,有红山革命根据地渣滓洞,有爱国主义基地白公馆,而磁器口古镇(原名龙隐镇),位于重庆城西14公里的嘉陵江畔。自明清时期以来磁器口古镇
适合开春的大地色系穿搭,温暖优雅又高级,值得中老年人借鉴气温变化不定,让很多人失去了穿衣头绪,在乱穿衣的季节,不妨跟着那些时髦精们用大地色系玩转时尚吧!卡其色咖色棕色驼色这些温暖优雅的大地色系,不仅赋予开春造型更多的温暖气息与高级质感,张天爱纯欲小兔子白色系写真张天爱今年1。22发布一组与兔子玩偶的合影照片给大家拜年。吊带短裤双麻花辫,清爽舒适柔软的居家服装,自然又可爱。丝绸吊带,丝绸短裤,丝质服饰的质感衬得皮肤更加细腻光洁。小爱是明艳大伊万卡穿粉色系简直太甜!孕期蚂蚁腰显身材,流苏披肩灵动娇嫩浪漫的粉色,是小仙女们的最爱,淡雅的感觉让人甜到心底。夏季的悄然来临,让我们手足无策,赶紧扔掉衣橱里那些灰白黑的颜色吧,让粉色系占满你的橱窗。伊万卡是当代女性学习的典范,弃商从政,名单公布恭喜漳州这些学校!2022年福建省普通高等院校与高中阶段学校军事课教师微课教学竞赛2022年12月24日25日在福州举办。日前,省教育厅印发关于公布2022年福建省军事课教师微课教学竞赛获奖名单的通中国汽车开足马力出海近日,美国彭博社援引中国乘联会数据称,目前,中国乘用车出口已进入世界前三。中国汽车成为中东和拉丁美洲汽车市场的领跑者,并在欧洲市场占据重要位置。中国汽车企业从21世纪初就开始踊跃参报告短视频用户市场呈现年轻化和年长化特征中国青年网北京2月11日电(记者杨月)日前,厦门理工学院福建省重点智库培育单位福建未来媒体智库福建省高校人文社科研究基地未来媒体发展研究中心福建省网络视听应用创新重点实验室与社会科中青视评丨在山河行中感悟岁月变迁的勃勃生机视频加载中今日之荣耀使命更光荣!一首由铁路人创作的中国风歌曲山河行,以歌声的方式,带我们回顾历史,了解铁路的发展。透过山河行,让我们看到了中国铁路为经济社会发展做出的巨大贡献。在社冬季为何容易流鼻血,儿童流鼻血该怎么办?冬季儿童为何容易流鼻血,原因有以下几种。其一,缺乏维生素C,冬季水果及蔬菜相对没那么新鲜,导致儿童摄入的维生素C容易缺乏。其二,冬天气候干燥,鼻腔黏膜脆性增加,再加上冷风刺激,导致小孩睡觉打呼噜,是病吗?市五医院专家这样说许多家长因为孩子打呼噜看医生,都会急切地问我的孩子打呼噜很厉害,听说这个病要开刀,是吗?其实,许多家长甚至连打呼噜的原因危害等还没有搞清楚,就开始对可能的手术焦虑不堪。一起来听听上专家建议法定结婚年龄降到18岁,就能助力人口增长吗?您怎么看?最近这些人的吃相太难看,说白了目的就一个想设法让女人生娃。我之前吐槽过,你说生三胎幼儿园免费还是啥的,就是堵不住本人关于生娃的恐惧(生理上遭受的不适)更堵不住本人对于养娃觉得很累的广府文化闹正月擦亮文旅金招牌醒狮起舞,锣鼓喧天。正月新春肇庆举办多种民俗节庆活动。梁瑞伟摄多彩非遗闹元宵,精品民俗过大年。在刚刚过去的元宵节,肇庆文旅表现亮点纷呈德庆县举办民间艺术大巡游炮仗攻狮子等传统活动,