临汾山东漯河饰品美体美文
投稿投诉
美文创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品
漯河衢州
兴义眉山
桂林阳泉
玉溪简阳
山东遂宁
永城新余
梧州洛阳
泸州温州
临汾清远
营口常熟
浙江大连
桐乡宜昌

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

1月17日 赤雷榭投稿
  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)到点之后,等待上一个定时任务结束,然后再开启新一轮定时任务
  如果涉及到数据库数据更新,那么定时任务,不应该是可以多线程。
  实现接口就可以了,不需要编写额外的代码
投诉 评论 转载

悠扬的童年里的童年早晨,我喜欢一边听歌一边洗漱,今天无意中播放了罗大佑的经典老歌《童年》。悠扬的旋律、优美的歌词展现出了一个鲜活的少年的形象,少年的所思所念,少年的忧愁与乐趣,少年的幻想与期盼尽……法新社田径世锦赛成功举办让美国尝到甜头或将申办更多类似大赛中国小康网7月26日讯老马作为一项雄心勃勃的运动的隐喻,阿曼德杜普兰蒂斯(ArmandDuplantis)飙升至撑杆跳世界纪录,是激动人心的世界田径锦标赛应得的完美剧本的最后一……癌症患者营养不良怎么办?做好这3点保证营养问题营养不良是癌症常见的并发症之一,本来癌症就是属于消耗性疾病,癌细胞和正常细胞都来抢夺营养,加快了营养的流失。大部分癌症患者都会有食欲减退,消化吸收能力差的情况,因此导致了患者营……国乒14人惨遭淘汰!日本女单全军覆没,张本美和爆冷一轮游北京时间8月26日凌晨,乒乓球WTT捷克赛结束了首个正赛日的较量,目前国乒已经有多达14人在单打比赛中出局,双打也新增1对组合输掉外战,而且连续被卢森堡选手(非倪夏莲)突破,令……2022年世界杯球衣每支球队将在卡塔尔参加决赛的球衣2022年世界杯球衣:英格兰、阿根廷、葡萄牙以及每支球队将在卡塔尔参加决赛的球衣阿根廷主场球衣阿根廷客场球衣澳大利亚主场球衣澳大利亚客场球衣比利时……在格陵兰冰山下的一种发光的蜗牛鱼的血管中流淌着防冻剂科学家们在格陵兰岛附近的冰山深处挖掘发现了一条鱼,它的血管中流淌着发光的绿色防冻剂。一项新的研究发现,幼年杂色蜗牛(Liparisgibbus)含有有史以来报道的最高表达……U17中国女足技不如人,输球出局,但是姑娘们依然可以昂首离开中国U17女足开场打的很积极很有气势,进攻时在中前场敢于投入兵力,对方门前一度风声鹤唳,丢球后马上就地展开围抢,上半场前十几分钟把西班牙女足打的有点懵,几乎没有什么攻势。总体来……达米安李绝杀,库里开心到疯,东契奇空砍35分,独行侠太大意了文篮郭先生NBA的常规赛继续进行,太阳队大战独行侠,最终,太阳队以107105击败独行侠。数据方面,太阳队的布克28分4板9助,艾顿18分10板,保罗6分3板9助,约翰逊……从头到脚细致解说SPRINGMVC,走向spring大家庭的1。回顾mvc二阶段的封装代码中,问题使用springmvc,减少开发量,让上述的工作,给springmvc去做2。springmvc介绍首先,springm……著名演员冯远征娶二婚梁丹妮相携到白头,60岁无儿无女亦无悔头条创作挑战赛关注我,每天带来名人感动的故事!冯远征,是中国内地知名演员,现任北京人民艺术剧院第五任院长,是北京人艺有史以来第一位演员出身的院长。有着精湛演技……新盗墓笔记oppo版新盗墓笔记oppo版是由上海游族信息技术有限公司精心打造的一款沉浸式盗墓题材MMOARPG手游,此版本不仅支持玩家使用oppo和官方账号一键登录,登录后还能领取游戏官方为opp……精彩升级!雄安新区发放第二批数字人民币消费补贴啦!促消费,惠民生。雄安新区发放第二批数字人民币消费补贴啦!经过三个多月的陪伴,第一批数币补贴活动已圆满结束,聚焦生活常见消费支付场景,推动数字人民币飞入寻常百姓家。云……
原来他们都是沾亲带故的亲戚,盘点娱乐圈中鲜为人知的亲戚关系币圈要闻圆梦时刻,大众网民如何成为网民股东?如何成为互联网真正主人?豆瓣8。4,今年最狠女主诞生了!新赛季身价暴涨的六大球星,沃伦逆流而上,贝恩低薪高能CBA三消息广东弃将成工具人,郭艾伦再次复出,浙江成为伪强队李易峰代言过的手机,你还在用吗?冬养肾,保健康,4种食物,每周吃一次,补肾健脾,强筋壮骨5款12GB512G智能机值得入手,价格低至1748元,包括景气一片向好的当下,电动车市场值得关注的风险有哪些5位被央媒点名批评的明星,知法犯法没人同情,个个都是反面教材朱军高调晒照,时隔4年现身央视大楼,有望主持春晚一个人,拥有高情商的样子最新酒桌游戏军中寄内智能门锁网关传感器长效守护TCL智能家居样板间匈奴人是白种人吗匈奴人是什么人种怎么延缓衰老肠道年龄决定衰老速度这个药物要从宝宝出生起开始补,一直补到老,很多妈妈不知道柚子树缺镁有什么症状如何补救人无完人语文第三单元教学反思家有悍妻?以其人之道还治其人之身,一招搞定啥都是我们的次及甫即事

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找