收藏 分销(赏)

java-SpringMVC.docx

上传人:pc****0 文档编号:6623867 上传时间:2024-12-17 格式:DOCX 页数:4 大小:22.29KB 下载积分:10 金币
下载 相关 举报
java-SpringMVC.docx_第1页
第1页 / 共4页
java-SpringMVC.docx_第2页
第2页 / 共4页


点击查看更多>>
资源描述
复习: 1)MVC模型 View:负责展示处理结果 JSP/HTML/FreeMarker/Velocity Controller:负责接收请求、验证、调用Model Servlet/Filter/POJO Model:负责业务功能(数据库、IO、Other) JavaBean 常见的MVC模型:SpringMVC Struts1 Sturts2 ThinkPHP 2)SpringMVC SpringMVC是一个带前端控制器的MVC模型,主要关注的是Controller(FrontController+RequestHandler),对View有部分涉及(提供了几个标签),并没有涉及到Model。 SpringMVC的处理流程: (1)服务器一启动,SpringMVC创建BeanFactory,创建所有Bean对象 (2)客户端发起请求,被前端控制器拦截并解析 (3)Spring做URL-Handler映射,调用Hanlder (4)Handler调用接收请求、验证、调用业务逻辑,返回viewName (5)Spring查找ViewResolver,装配出一个可以请求转发的完整页面名 (6)View发送结果给客户端 3)使用SpringMVC的步骤: (1)导入jar (2)声明前端控制器 DispatcherServlet (3)创建applicationContext-mvc.xml (4)声明URL-Handler映射 (5)创建Handler、Service、Dao,声明为Spring中的Bean (6)声明ViewResolver (7)创建jsp 1.DispatcherServlet的url-pattern可取值有如下三种形式: (1)<url-pattern>*.do</url-pattern> 只拦截以.do结尾的请求 (2)<url-pattern>/</url-pattern> 拦截所有的请求,包括Handler、js、css、jpg..... 注意:url-pattern不能指定为/*, 会导致handler能够被调用,但无法请求转发到jsp 2.使用注解实现URL-Handler的映射 (1)声明使用注解实现映射applicationContext.xml <mvc:annotation-dirven /> (2)对Controller及其中的方法使用注解,进行URL映射 @RequestMapping(“/user”) public class UserController{ @ReqeustMapping(“/add”) public String add(){ return viewName; } } 2.使用注解进行URL-Handler映射后,Hanlder获取请求参数的方式: (1)Controller方法添加HttpServletRequest类型的形参即可,Spring调用此Controller方法时,会注入需要的request对象——不足:Controller依赖于一个Servlet容器对象,不便于进行独立的单元测试 public String add(HttpRequestServlet request){ } (2)Controller方法中声明与请求参数一样名称的形参即可——让Controller与Servlet容器解耦 public String add(String uname, String upwd, int uno){ } 若请求参数的名称与Controller方法的形参名不一致,可以使用@RequestParam进行注解 public String add(@RequestParam(“userName”)String uname){ } (3)若Controller方法中需要注入的请求参数很多,可以封装为实体类,只要实体类的属性名与请求参数名一致,也可以实现注入: public String add(Message msg, int uno){ } 注意:有些情况下,如Controller方法向获取客户端所在IP地址,需要执行request.getRemoteIP(),request.getSession()只能使用方法一。 补充知识点: 网页内容的相对地址问题: f1/f2/1.html: <img src=”img/1.jpg”/> 那么图片的路径就是相对于当前HTML文件,即要去f1/f2/img/1.jpg文件,若把1.html放到路径下,图片的相对地址也会跟着改变,可能需要大量修改 解决方法: <html> <head> <base href=” </head> <body> <img src=”img/1.jpg”/> <link href=”css/main.css”/> <script src=”js/1.js”/> </body> <html> 只要声明了base元素,则当前页面中所有的相对地址都是相对于base的href值,而与当前页面的位置无关。 3.Controller中的数据传递给View的方式: (1)通过HttpServletRequest.setAttribute (2)让Controller的处理器方法返回ModelAndView对象,此对象中可以封装需要显示在页面中的数据,Spring会从其中读取数据,调用request.setAttribute();保存在request范围 (3)为Controller处理方法添加一个ModelMap类型的形参,需要显示在View中的数据保存在此Map中即可。Spring会自动从此Map中读取数据添加到request范围。 4.SpringMVC应用中的中文乱码问题 (1)GET请求中数据的乱码: GET /day109/add?uname=%AE%98 HTTP/1.1 由于上述URI被tomcat截获,它默认理解为ISO8859-1字符集,可以修改它的配置文件server.xml 大约第70行 <Connector URIEncoding=”utf-8”....> (2)POST请求中的乱码问题: 修改web.xml,声明一个字符集过滤器即可 <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 5.让前端控制器对静态资源的请求进行放行 (1)方式一 DispatcherServlet的url-pattern作如下声明: <url-pattern>*.do</url-pattern> (2)方式二 若DispatcherServlet的url-pattern就特意声明为/,则可以在applicationContext中做过滤声明: 作业: 实现一个用户管理模块,包括如下功能: 前台(广大用户): (1)注册新用户(用户名/密码/确认密码/邮箱/验证码/我同意) (2)注册成功后,会提示成功,点击此处进行登录 (3)登录成功后,会提示欢迎回来:XXX,点击此处修改我的注册信息 (4)退出登录 后台(管理员功能): (1)管理员登录 (2)登录成功后,浏览全部用户 (3)删除某个用户/一批用户 (4)(选作)锁定某个用户
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服