专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

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

  1。回顾mvc
  二阶段的封装代码中,问题
  使用springmvc,减少开发量,让上述的工作,给springmvc去做2。springmvc介绍
  首先,springmvc是spring中的一个模块,也是一个mvc设计思想的框架
  TheSpringWebmodelviewcontroller(MVC)frameworkisdesignedaroundaDispatcherServletthatdispatchesrequeststohandlers,withconfigurablehandlermappings,viewresolution,localeandthemeresolutionaswellassupportforuploadingfiles。
  springmvc设计核心,是DispatcherServlet,是用来接收和分发请求给具体的handler(类似二阶段封装中的Controller,是由程序员开发的),通过请求和handler之间的映射配置(类似mvc。xml),最后,通过视图解析器解析页面响应。支持文件上传3。springmvc框架搭建
  需求:浏览器输入请求地址http:localHost:8080teacherspringmvchello访问服务器,服务器响应hello。jsp给浏览器
  1)新建teacherspringmvc01
  2)导包
  核心包
  还需要拷贝之前spring框架中的jar包
  3)配置文件
  log4j。properties
  springmvc框架自己的配置文件,applicationContextmvc。xml(名字不重要,也可以是springmvc。xml)
  配置文件直接拷贝之前spring的配置文件
  web。xml(是tomcat加载工程的唯一入口)
  给servlet加load标签,一般是servlet在第一次被访问的时候实例化,加了load标签,就是tomcat启动的时候就实例化。
  4)部署到tomcat中,启动tomcat
  报错:
  DispatcherServlet在实例化的时候,会默认去WEBINF目录下找配置文件,配置文件的文件名为web。xml中servlet配置的servletnameservlet。xml
  拷贝applicationContextmvc。xml到在WEBINF下,并重命名为springmvcservlet。xml
  重启服务器》成功
  但是!!我们的配置文件,肯定不会直接放在WEBINF下,而是放在src下,编译之后的目录是WEBINF下的class目录
  这时,我们需要告诉DispatcherServlet,配置文件的路径文件名,替换默认路径和文件名
  删除WEBINF下的springmvcserlvet。xml
  重启服务器
  成功
  5)入门案例,HelloWorld
  浏览器输入请求地址http:localHost:8080teacherspringmvchello访问服务器,服务器响应hello。jsp给浏览器
  a。handler编写,用于处理hello请求
  b。hello。jsp
  c。请求地址和handler之间的映射
  重启,访问
  因为web。xml配置DispatcherServlet拦截的地址为,所以不管是jsp还是hello还是js,css的请求,会全部都到DispatcherServlet中。会404
  处理办法:将需要给DispatcherServlet拦截的请求加个标识,拦截。action结尾的请求
  浏览器请求地址:http:localHost:8080teacherspringmvchello。action
  映射配置:
  重启,重新访问
  4。springmvc注解模式
  teacherspringmvc02
  1)controller可以脱离springmvc的api
  2)配置文件中开启注解
  3)代码中使用注解
  5。执行流程
  1。tomcat启动的时候加载应用,解析web。xml
  需要在启动之后,实例化DispatcherServlet。
  DispatcherServlet实例化的时候,默认加载了一个配置文件DispatcherServlet。properties
  DispatcherServlet加载这个配置文件,主要的目的,就是实例化它的各种帮手。
  除了默认加载的配置文件,DispatcherServlet还加载了我们指定的配置文件
  先解析applicationContextmvc。xml,
  如果有bean配置,那么实例化bean,然后拿bean的name属性作为key,实例作为value。
  如果有开启注解的标签,那么DispatcherServlet会扫面指定的包
  扫描指定包的时候,找Controller和RequestMapping注解
  Controller注解,用来生成实例
  RequestMapping用来映射请求地址和方法之间的映射
  如果还有其他的标签,会继续做相应的事。
  2。浏览器请求http:localHost:8080teacherspringmvchello。action
  3。tomcat服务器接收到浏览器的请求,先拆分看请求的是哪个应用,然后看请求地址有没有在web。xml中配置到。如果web。xml中没有配置拦截,那么就根据路径指向具体的资源(比如teacherspringmvcindex。jsp,那么tomcat会发现web。xml中没有要接收这个请求的,那么就从webRoot开始,找index。jsp响应给浏览器,没找到,404)
  但是,请求的是teacherspringmvchello。action,web。xml中,有个servlet配置,接收。action的请求,请求地址hello。action符合要求,那么tomcat就会把这个请求丢给DispatcherServlet
  4。DispatcherServlet拿到这个请求,会找处理器映射器帮忙,找是那个映射关系。
  找到映射关系,等于找到了哪个Controller处理这个请求
  继续找处理器适配器帮忙,调用具体的Controller中的具体方法
  5。DispatcherServlet拿到Controller层处理之后的返回值。
  又继续找视图解析器帮忙,解析响应指定的页面给浏览器6。RequestMapping应用
  6。1方法上使用
  请求地址:
  http:localhost:8080teacherspringmvchello。action
  6。2用在类上,作用类似namespace
  请求该类中每个方法,都需要带上namespace,namespace就是类上的RequestMapping指定的路径
  12组成的请求地址,在整个工程中不能重复
  6。3RequestMapping默认支持getpost两种请求方式。
  那如果,我只要支持其中的一种
  显式的定义,支持post、get
  7。Controller层方法的返回值7。1ModelAndView
  ModelAndView可以给跳转页面地址
  绝对路径,以打头
  页面跳转是转发还是重定向?
  默认为转发
  那如果要重定向?页面地址前加上redirect:
  ModelAndView除了可以放view视图(jsp),还可以放model(数据)
  7。2String
  返回值String:为需要跳转的页面
  默认转发
  如果要使用重定向
  7。3void
  方法没有返回值,在方法中,使用response直接给页面响应
  8。Controller层方法参数8。1默认参数(ServletAPI)
  HttpServletRequest,HttpServletResponse,HttpSession,ModelAndView,ModelMap
  8。2简单类型
  String,int之类
  形参的命名前台页面控件的name属性值
  类型转换》框架会做
  一般用于属性较少的添加和查询功能8。3自定义对象
  提交参数的key需要和实体类属性名保持一致
  提交参数key:如果是form表单,key就为form控件中的name属性
  如果是其他的提交方式,比如get,action?key1value1key2value2,那么,key1,key2都需要和实体类属性名一致
  8。4包装类
  自定义对象中含有自定义对象
  Product中Company对象传参
  jsp页面,控件的name属性值,需要使用导航符。
  8。5数组
  checkbox类型
  参数使用String类型
  参数使用数组类型
  如果前台使用的checkbox,那么参数可以是String类型,也可以是数组类型,如果value为number类型,那么数组可以直接定义为int类型数组8。6类型转换
  之前的参数中,有String》int,也有String》double这些类型转换,springmvc框架中内置的。
  但是如果想要StringDate,比如产品的发行时间,通过req取出参数肯定是String类型,但是我们的实体类,或者说直接使用参数接收,那么框架不支持转换,需要自定义转换器
  1)定义转换器
  2)将转换器注册到框架中
  3)mvc框架集成自定义的转换器
  需要使用到mvc打头的标签,要使用mvc中的标签,需要引入mvc的约束
  使用mvc标签,集成自定义转换器
  springmvc框架中,遇到StringDate类型,会自动调用自定义的转换器。
  如果已有的转换器,重新定义,比如StringInteger,那么,自定义的转换器会覆盖内置转换器
  9。乱码问题
  getpost
  POST
  使用springmvc中的字符集过滤器
  GET
  使用终极大招
  tomcatconfserver。xml中指定url编码格式
  get方式提交,参数是直接跟在请求地址之后,请求地址是由tomcat解析的。让tomcat在解析的时候,使用我们指定的编码格式解析
  10。springmvcspringmybatis集成(daoxml配置版本)
  teacherssm011)导包
  导入springmybatis最后一个版本的包
  至于springmvc,检查下是否含有springweb和springwebmvc这两个包,如果没有,重新导入。
  2)配置文件
  log4j。properties
  db。properties》数据源配置,给spring引入使用
  sqlMapConfig。xmlmybatis
  applicationContext。xmlspring
  applicationContextmvc。xmlspringmvc
  web。xmlDispatcherServlet需要配置,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到webRootpagesbackend目录
  c。将html修改为jsp
  第一步先复制jsp文件内容到html
  第二步修改后缀
  第三步,修改所有的引用地址为绝对
  第四步:使用c标签解析comList
  11)部署,启动
  12)浏览器访问地址
  11。springmvcspringmybatismapper代理注解
  1)拷贝teacherssm01工程,代码结构调整
  2)company。xml中的namespace调整
  3)修改company。xml在sqlMapConfig。xml中的路径
  4)service使用注解
  5)在spring中配置mapper代理生成
  6)springmvc配置文件中,一定要打开注解
  如果这个扫描的包已经包含了Service,dao等等,那么spring配置文件中applicationContext。xml不需要再开启一次注解
  如果applicationContextmvc。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。校验框架
  teacherssm04使用hibernate校验框架
  1)导包
  2)在mvc中配置校验器
  3)需要在mvc框架中启用校验器
  4)代码中使用
  在实体类中,使用注解标明这个属性的规则是什么样子的
  在Controller的方法中,需要告诉springmvc,形参Companycompany,需要使用校验框架做校验
  页面效果:
  将错误信息放到配置文件中
  数据回显
  校验框架,支持数据回填
  默认key为实体类类名,第一个字母小写。不需要显示的传值
  案例:
  如果就是要修改一下传值的key,使用
  并不是每种场景校验都一模一样
  比如:添加和修改。
  添加中,每个属性都需要校验
  修改:不允许修改的属性,还需要校验么???
  假设:企业数据中,佣金不允许修改
  添加需要校验企业名称、佣金、详情
  修改需要校验企业名称、详情
  校验需要分场合,分场景
  把实体类属性中的校验分组校验分组
  1)首先需要定义两个空接口,作为两个标识
  2)给实体类中的规则分组
  3)Controller中使用分组校验
  校验注解:
  逻辑性校验校验框架做不了,比如,重名校验13。springmvc中使用ajax
  1)使用response响应
  2)使用ResponseBody注解响应
  使用该注解,表示,返回值不管是啥,直接响应给浏览器
  返回String
  返回Company
  让springmvc框架自动的将对象转换成json格式的字符串,需要导包
  代码:
  jsp:
  结果:
  14。springmvc上传
  1)jsp中的form表单处理和Servlet上传处理一致
  methodpost,enctype需要处理
  2)Controller中使用mvc包中的类直接接收文件对象
  需求:给企业添加一个图片
  1)数据库添加字段
  imgurl(上传路径),imgrealname(原始文件名)
  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中的异常处理
  teacherssm06
  1。定义异常处理器
  2。注册自定义异常处理器
  17。Spring中的定时任务SpringJob
  1)导包
  2)定义定时任务
  3)配置定时任务
  1。定时任务bean
  2。定时任务触发器(间隔时间)
  3。spring定时任务配置所有的触发器
  到点之后,不管上一个定时任务是否结束,
  1)到点仍然开启新一轮定时任务,允许同一个定时任务有多个线程存在
  2)到点之后,等待上一个定时任务结束,然后再开启新一轮定时任务
  如果涉及到数据库数据更新,那么定时任务,不应该是可以多线程。
  实现接口就可以了,不需要编写额外的代码

湘书书香街采新年读新书,我最喜欢的是视频加载中红网时刻新闻记者陈珉颖任晔长沙报道年味不仅有团圆美食和烟花,还有诗与远方。现在的春节,越来越多的人走进书店,徜徉书海放飞心灵,享受阅读带来的快乐,过不一样的文化新年。再一欢乐贺元宵!南朗街道这场活动暖心又暖新2月3日,在元宵节来临之际,南朗街道举办党群同心文明健康过春节情暖新业态欢乐贺元宵活动,与快递小哥外卖骑手网约车司机等新就业人员以及环卫工人等户外劳动者一同共庆元宵佳节。南朗街道举看过狂飙后的担忧追完电视剧狂飙后,感觉此剧让人有几点思考1黑恶势力太过强大猖獗,难于打击干净,2高启强竟然被演出了浓浓的个人魅力,其实是人者强权的光环,可能会被观者忽略了黑白,3安欣是正直执着的好原神璃月自选四星角色推荐本文首发提瓦特营地,未经授权禁止抄袭文章转载至其它平台。各位小伙伴们大家好呀,这里是筱筱,璃月的自选活动开始已有一段时日,有不少小伙伴留言说不知道该怎么选,不知道哪些角色适合自己当2023年1月Steam硬件调查报告Window11系统份额突破30近日,Valve发布了2023年1月份的Steam硬件调查结果。最新一期报告显示,GeForceGTX1650份额略微上升0。06,为6。27,连续三个月蝉联显卡份额榜单第一GeF每天6分钟高强度运动延缓认知衰退6分钟高强度运动可延长健康大脑的寿命,延缓阿尔茨海默病帕金森病等神经退行性疾病的发生。发表在英国生理学杂志上的一项新研究表明,短时间但剧烈的单车运动会增加一种特殊蛋白的产生,这种蛋菜花节期间,罗平这些区域停车免费!来源昆明日报掌上春城2月1日罗平县旅游文化活动办公室发布关于2023年菜花节期间对外来游客免费开放停车区域的通告罗平发布微公号截图全文如下罗平县旅游文化活动办公室关于2023年菜花2023年广州市南沙区的17个期待!以上就是2023年南沙区最值得期待的17个重大工程项目,你最期待哪一个呢?其中第13项网红沙滩已经关闭很久了,希望这次不要再跳票了。上下横档岛旅游中心也被一起围蔽在里面,无法进入。2022年东莞清溪保税物流中心(B型)进出区货值突破千亿元记者今日(2月2日)从黄埔海关获悉,2022年,东莞清溪保税物流中心(B型)(以下简称清溪B保)交出了亮眼的成绩单。据统计,清溪B保全年一二线进出区货值1031亿元,同比增长31,强信心一起拼升腾烟火气激发新活力荔枝新闻讯消费是经济发展的主引擎,也是人民群众美好生活的直接体现。关于推动经济运行率先整体好转的若干政策措施明确提出,要着力恢复和提振消费。一系列措施既从消费重点品类出发,直接激发A股再次集体大跌,下周,历史或将重演?今天的A股开盘再次集体大跌,而且,还是跳空下跌的行情,也基本上符合笔者此前的预期,那就是现在的股市肯定会有一波下探的修正性行情,今天算是一个开胃菜而已。不过,今天的股市还是在午盘的
婴儿头上长了个像青春痘一样的疙瘩而且化脓了怎么办?谢谢邀请。宝宝头上的脓包,也有人叫宝宝痤疮,医学上所说的疖是化脓性皮肤炎症的一种。是由于在母体发育过程中带了太多的雄激素,中医上称为胎毒。长于面部,头皮等部位,一般情况下不用管。那双方都知名的撞脸明星有哪些?杨千嬅郑秀文杨千嬅以小郑秀文的头衔出道,两人眼睛眉毛嘴巴都非常相像,唯有脸型略有区别。杨千嬅录节目的时候还曾被路人认成了郑秀文。刘嘉玲那英乍一看,这就是同一张脸啊,同款精明干练的女第34届金鸡奖,让你印象最深刻的精彩瞬间有哪些,能分享一下吗?第34届中国电影金鸡奖(The34thChinaGoldenRoosterAward)是由中国文学艺术界联合会中国电影家协会厦门市人民政府主办的电影奖项。该届中国电影金鸡奖共计收到有哪些女明星为了减肥保持身材做过疯狂的事?在娱乐圈内,女明星不仅仅需要有姣好的相貌,更需要有个完美的身材,大家都知道,不是每个人都是吃不胖的体质,为了保持身材,女明星们想尽了办法,今天我们就来聊一下,女明星为了减肥能有多疯山东男篮落败广东队,想要进入四强还有机会吗?山东很难进4强,靠内线力量和身高死磕浙江,显然这就是山东唯一的出路,本小组实力太强了吧?今天男篮U22的8队都亮相,东道主的小组居然就辽宁强些,山西湖北和北京都是菜鸡一样的表现,他游戏原神中的璃月为什么是清朝民国风不是汉唐风?原神是一款具备手机平台功能的游戏,它必须为自己留下更大的空间冗余。这个游戏注定会越做越大,它所占据的手机存储空间也会越来越大,关于这点玩过崩3的应该都有体会。所以,原神必须拼命压住从1982年1998年五届世界杯夺冠的队伍中,你认为谁最强?我个人认为这五届世界杯冠军球队中,1990年意大利世界杯的冠军德国队是相对最强的。1982年西班牙世界杯夺冠的意大利队,小组赛发挥平平,00波兰11秘鲁11喀麦隆积三分,凭借进球数王者荣耀钟馗数据引起玩家注意,胜率处在法师第二,削弱之声此起彼伏,他很强势吗?这几天,玩家们就一直都在关注着营地中的数据,毕竟是官方公布,所以数据的可靠性要高一些,最近,大家也都注意到了,英雄的数据发生了很大的变化,甚至发生了反转,很多名不见经传的英雄,在版助听器真的可以帮助改善听力吗?您好,助听器是听力辅助设备,理论上只要有残余听力,佩戴助听器可以将声音补偿在听力范围内,把原来听不到的小声言语声提高,过大的声音控制输出,改善聆听效果,解决交流问题。助听效果依据听河北保定为什么没有南三环?对于南三环的规划实际早在2014年就提上日程了,由于各种原因迟迟没有动工据报道称当时的两套方案造价都不低于16亿元,可以说造价还是不低的。近几年保定的房价差不多翻了一番,地价也水涨你觉得西安全运会上百米比赛会涌现出新的百米后起之秀吗?个人还是喜欢陈冠峰的跑法,感觉动作衔接很流畅,而且陈冠峰身高180左右,身体也属于瘦高。在今年也跑出过10。06的好成绩,个人认为如果他保持良好的状态,在没有伤病的前提下进入全运会
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网