2022年springMVC入门教程 .pdf
《2022年springMVC入门教程 .pdf》由会员分享,可在线阅读,更多相关《2022年springMVC入门教程 .pdf(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录SpringMvc 教程.1初识 springMVC.1背景 .1常见 MVC 框架比较 .2基于 spring3.2 的 采用 annotation 方式搭建 springMVC 环境.2springMVC 的 RequestMapping 的基本设置 .7在 controller 中获取前台传递的参数.9在 controller 中获取 web 元素 .10将 controller 中数据传递到jsp 页面 .11设置跳转方式为重定向或者转发.15视图解析器的配置和使用.15controller 中方法的返回值类型.16springMVC 的文件上传于下载.19springMVC 和
2、jQuery 的 Ajax 结合 .23SpringMvc 教程作者: DK初识 springMVC背景Spring框架提供了构建Web 应用程序的全功能MVC模块。使用Spring可插入的MVC架构,可以选择是使用内置的Spring Web 框架还是Struts这样的Web框架。通过策略接口,Spring框架是高度可配置的,而且包含多种视图技术,例如JavaServerPages(JSP )技术、 Velocity 、Tiles 、iText 和POI 。Spring MVC框架并不知道使用的视图,所以不会强迫您只使用JSP 技术。 Spring MVC分离了控制器、模型对象、分派器以及处理
3、程序对象的角色,这种分离让它们更容易进行定制。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 26 页 - - - - - - - - - 常见 MVC 框架比较运行性能上:Jsp+servletstruts1spring mvcstruts2+freemarkerstruts2,ognl, 值栈。开发效率上 ,基本正好相反。值得强调的是,spring mvc 开发效率和struts2 不相上下。Struts2 的性能低的原因是因为OGNL和值栈造成的。 所以, 如果你的
4、系统并发量高, 可以使用 freemaker进行显示,而不是采用OGNL和值栈。这样,在性能上会有相当大得提高。基于 spring3.2的采用 annotation方式搭建springMVC环境1、 上官网下载对应的zip包当然该 zip并非最新的。下载地址为: http:/repo.spring.io/webapp/home.html?02、 解压之后得到目录:打开 libs 会看到会多jar名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 26 页 - - - - -
5、- - - - 这里边包括了所有的jar 和 source 和 doc。当然我们只是需要使用jar 就可以了。3、创建空的 web项目目录结构如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 26 页 - - - - - - - - - 其中 user实体类为:publicclassUserprivateStringname;privateIntegerage ;privateDatebirth;publicStringgetName()returnname;publ
6、icvoidsetName(Stringname)this. name= name;publicUser(Stringname,Integerage,Datebirth)super();this. name= name;this. age=age;this. birth=birth;publicIntegergetAge()returnage ;publicvoidsetAge(Integerage)this. age=age;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,
7、共 26 页 - - - - - - - - - publicDategetBirth()returnbirth;publicvoidsetBirth(Datebirth)this. birth=birth;publicUser()super();/TODO Auto-generatedconstructorstubpublicUser(Stringname)super();this. name= name;OverridepublicStringtoString()/TODO Auto-generatedmethodstubreturn+name+;4、在项目中添加如下jar文件:sprin
8、g-webmvc-3.2.0.RELEASE.jarspring-core-3.2.0.RELEASE.jarspring-context-3.2.0.RELEASE.jarspring-beans-3.2.0.RELEASE.jarspring-web-3.2.0.RELEASE.jarcommons-logging.jarspring-expression-3.2.0.RELEASE.jar其中 commons-logging.jar请单独下载。5、在 web.xml中添加过滤器的配置。exampleorg.springframework.web.servlet.DispatcherSer
9、vletcontextConfigLocation/WEB-INF/spring-servlet.xml1名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 26 页 - - - - - - - - - example*.do这个 org.springframework.web.servlet.DispatcherServle即为 springMVC的核心控制器。其中 init-param中配置的是 spring的配置文件的文件路径。6、在 WEB-INF 下添加 sprin
10、g的配置文件 spring-servlet.xml文件内容如下:其中 schemaLocation和xmlns 建议直接拷贝。7、创建 UserController如下:ControllerRequestMapping( /user.do)publicclassUserControllerRequestMapping(params=method=add)publicStringaddUser(Modelmodel)model.addAttribute(message, 添加了一个用户 );System.out .println(UserController.addUser();名师资料总结 -
11、 - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 26 页 - - - - - - - - - return/WEB-INF/jsp/addsuc.jsp;其中 RequestMapping(/user.do)的配置是指:该controller的请求 url为: user.doRequestMapping(params=method=add) 的注解是指:凡是请求的url为:user.do而带了参数method=add的请求会由方法 addUser来处理。addUser的形参 model
12、为后续讲解内容。return/WEB-INF/jsp/addsuc.jsp;是告诉 spring完成处理之后直接进入该视图。8、添加对应的页面,测试请求user.do?method=addspringMVC的 RequestMapping的基本设置1、 在类的上面注解 RequestMapping(/ex.do)意思为所有的ex.do请求全部进入该类处理。如上一 章 代 码 中 编 写 RequestMapping(/user.do).所 有 的 user.do请 求 都 会 进 入 该Controller。2、在自定义的 controller中会调用有 RequestMapping注解字样的
13、方法来处理请求。ControllerRequestMapping( /user.do)publicclassUserControllerRequestMappingpublicStringaddUser(Modelmodel)model.addAttribute(message, 添加了一个用户 );System.out .println(UserController.addUser();return/WEB-INF/jsp/addsuc.jsp;3、当然可以编写多个处理请求的方法,而这些方法的调用都是通过RequestMapping的属性类控制调用的。RequestMapping 属性:va
14、lue:指定请求的实际地址,指定的地址可以是URI Template模式( 最终请求的 url为类的注解的 url+方法注解的 url)value的uri值为以下三类:A)可以指定为普通的具体值;如: ControllerRequestMapping( /user)publicclassUserControllerRequestMapping(value=/some.do)publicModelAndViewhandleRequest(HttpServletRequestarg0,HttpServletResponsearg1)throwsExceptionSystem.out .printl
15、n(handleRequest);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 26 页 - - - - - - - - - returnnewModelAndView(/WEB-INF/jsp/addsuc.jsp);该注解的是说:请求的url为”user/some.do ”就会进入该方法(handleRequest)处理。url:user/some.doB)可以指定为含有某变量的一类值(URITemplatePatternswithPathVariables);如:
16、RequestMapping(value=/userId/delete.do,method=RequestMethod.GET)publicStringdelete(PathVariableStringuserId)System.out .println(delete:+userId);return/WEB-INF/jsp/addsuc.jsp;这个注解: url中带了参数的数据userIdurl:user/1123/delete.do使用PathVariable指定形参接收 url中的数据C)可以指定为含正则表达式的一类值(URITemplatePatternswithRegularExpr
17、essions);如:RequestMapping(value=/userBirth:d4-d2-d2/update.do)publicStringupdate(PathVariableStringuserBirth)System.out .println(userBirth:+userBirth);return/WEB-INF/jsp/addsuc.jsp;请求的 url类似:user/1990-11-11/update.do使用PathVariable指定形参接收 url中的数据method :指定请求的 method 类型,GET、POST、PUT、DELETE等;( 也就是说只有制定类
18、型的请求才会进入该方法处理)consumes : 指定处理请求的提交内容类型(Content-Type),例如 application/json,text/html;produces:指定返回的内容类型,仅当request请求头中的 (Accept)类型中包含该指定类型才返回;params : 指定 request中必须包含某些参数值是,才让该方法处理。headers: 指定 request中必须包含某些指定的header值,才能让该方法处理请求。4、当类没有 RequestMapping注解时,则直接参考方法的注解匹配对于的url。如:ControllerpublicclassUserCon
19、trollerControllerRequestMapping( /user.do)publicvoidmanagerUser()名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 26 页 - - - - - - - - - 在这里 url为 user.do则直接使用managerUser处理请求。在 controller中获取前台传递的参数将页面数据传递到 controller页面表单:用户名 : 年龄: 生日: Controller为:/*1、直接使用形参获取前台传递的
20、参数数据*要注意的是形参的名字必须和页面参数的名字一致*param model*param name*param age*param birth*return*/RequestMapping(method=RequestMethod.POST)publicStringaddUser(Modelmodel,Stringname,Integerage,Datebirth)model.addAttribute(message, 添加了一个用户 );System.out.println(name:+name+tage:+age+tbirht:+birth);System.out.println(Use
21、rController.addUser();return/WEB-INF/jsp/addsuc.jsp;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 26 页 - - - - - - - - - /*2、使用对象接受前台传递的参数,*要注意的是前台传递的参数的名称必须和对象的属性名称一直,如果不一致则可以使用 ModelAttribute(u)Stringuname指定*/RequestMapping(method=RequestMethod.POST)publicSt
22、ringaddUser(Modelmodel,Useruser)model.addAttribute(message, 添加了一个用户 );System.out.println(name:+user.getName()+tage:+user.getAge()+tbirht:+user.getBirth();System.out.println(UserController.addUser();return/WEB-INF/jsp/addsuc.jsp;在 controller中获取 web 元素当某个方法需要使用 web对象时(request,response,session,applicat
23、ion)可以使用如下方式 :除过application其他的对象都可以直接设为方法的形参即可。spring会自动将对应的对象传递给对应的形参。而application对象可以使用 session对象获取。当然也可以在方法中使用response对象重定向到其他的 url这时方法最后return的url则可以视作无效。同样的也可以使用request对象转发到其他的url 。程序示例:RequestMapping(value=/web.do)publicStringgetWebElement(HttpServletRequestrequest,HttpServletResponseresponse,
24、HttpSessionsession)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 26 页 - - - - - - - - - throwsIOException,ServletExceptionSystem.out .println( 使用request获取的前台参数: +request.getParameter(pname );request.setAttribute(message, 这个是 request中的数据 );session.setAttribute
25、(message, 这个是 session中的数据 );session.getServletContext().setAttribute(message, 这个是 application中的数据 );/response.sendRedirect(http:/);/returnnull;/request.getRequestDispatcher(/WEB-INF/jsp/showData.jsp).forward(request,response);return/WEB-INF/jsp/showData.jsp;将 controller中数据传递到jsp 页面1、可以在 controller中获
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年springMVC入门教程 2022 springMVC 入门教程
限制150内