DispatcherServlet:前段控制器 总控制器 作用拦截所有的请求 :把请求交给对应的控制器 控制器有两种: 1.DispatcherServlet 拦截请求把请求交给对应的controller 2.我们自定义的Contraller 处理请求,返回结果 假设DispatcherServlet类不工作 ,或者实例化比较晚,所有的controller都没有办法处理请求了 DispatcherServlet一定第一时间就要被实例化 怎么保证第一时间被实例化 放在web.xml文件中
二:怎么用 对于我们说,框架搭建好之后,我们程序员主要把精力放在controller service dao jsp即可 剩下的工作交给 spring mvc的一套流程即可 1.comtroller 跟传统的servletbi有什么优点 a:不需要继承很多的类 b:可以写很多额方法 一个类只需要写一个Controller即可 与这个类相关的所有的方法都可以写在这个controller中 c:传参比较方便 三:登录的案例
现在已经成功的调用Controller 怎末把值从页面传递到controller的登录方法? 知道登录后的数据封装到request里的 ,只有获取到request就可以了 1.先按照熟悉的方式获取 获取 request a.现在pox.xml里面添加servlet的jar包
<!--加入servlet依赖(servlet的jar)--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <!--jsp的依赖(jsp相关的jar加进来)--> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency> b.向contraller注入了一个对象了 from中的数据默认放在request中 (官方不是推荐的)
2.第二种方法把值从页面传递到controller 只要和form表单的对应好,数据就会自动的映射到controller中,我们不应在手动的从request中取值 由contoller完成
3.第三种的方法把值从页面传递到controller 如果要传的值很多可以传一个对象进去 3.第三种的方法把值从页面传递到controller 如果要传的值很多可以传一个对象进去
user中的数据从request(HttpServletRequest)拿到值后放到对象中 怎末来的? users的数据来自DispatchServlet,DispatcherServlet的数据来自HttpServlet 一句话DispatcherServlet可以拿到HttpServlet(包括HttpServletRequest)中的值 通过反射放到controller的Users对象中 注意:
DispatcherServlet先从request中获取值,利用反射实例化controller中参数实例,利用反射赋值 ,对于我们来说参数一直即可 4.第四种第三种的方法把值从页面传递到controller 这种好处 RequestParam 注解中值,跟后面的绑定的值可以不一样
二:出参 登录成功后返回对象 将controller传给jsp页面展示出来 1.model
注意:
spring mvc 默认不识别el表达式 解决 在成功页面添加 <%@ page isELIgnored="false" %>
2.map
只要记住一句话 把要返回的参数,放在Map中就可以 页面通过EL表达式就可以拿到值 原理: controller 中的值给了DispatcharServle ,把值方法request
第三中 ModelAndView
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。