DispatcherServlet(前端控制器)
作用:
1:在servlet的init方法中,创建springmvc中的容器对象。
2:作为servlet,接收请求。
Springmvc——默认的容器配置文件:在servlet的init方法中,创建springmvc使用的容器对象webApplicationContext ,webApplicationContext ctx =new ClassPathXmlApplicationContext(配置文件),配置文件的默认路径:/WEB-INF/
SpringMVC-自定义配置文件的路径:一般我们写项目的时侯我们一般把xml文件都定义到resources,我们要在
contextConfigLocation classpath:springmvc.xml
*** url-pattern作用:把一些请求交给指定的servlet处理(使用中央调度器DispatcherServlet>) 里面的值可以使用拓展名方式,和 使用斜杠"/" 的方式*.aaa
创建后端控制器:创建一个普通类,在普通类上面加上@Controller注解变成控制器使用(代替之前的servlet)
@Controller //在类上面定义了这个注解就相当于我们在Javaweb定义一个servlet
public class MyController{
//springmvc框架中,使用控制器类中的方法,处理请求
//方法特点:方法的形参,表示请求中的参数
方法的返回值,表示本次请求的处理请求
//返回值ModelAndView表示本次请求的处理结果(数据和视图)
@RequestMapping(value = "/some.do")
public ModelAndView doSome(){ //这个方法就相当于servlet中的doGet方法
//使用这个方法处理请求,能处理请求的方法就叫控制器方法
//调用service,处理请求,返回数据
ModelAndView mv = new ModelAndView();
mv.addObject("msg","处理了some.do")
//指定视图,setViewName("视图的完整路径")
mv.setViewName()
return mv;
}
}
@RequestMapping:请求映射
属性:value 请求中的uri的地址,唯一值,以”/"开头
位置:1.在方法的上面(必须的)。2.在类定义的上面(可选择)
作用:把指定的请求,交给指定的方法处理,跟 url-pattern差不多
控制器方法调用完成后的注意事项:当框架调用完控制器方法后,得到返回值,框架会在后续的处理逻辑值,处理方法体里面的数据和视图,对数据执行request.setAttribute(方法体里面添加的数据),把数据放入到request作用域中,然后对执行forward转发操作
Springmvc的请求处理过程
用户发起请求 ---------Tomcat接受了请求--------DispatcherServlet-----分配控制器类(执行控制器方法,返回对象)-------- mv显示给用户
如果使用servlet处理请求
用户发起请求------servlet
springmvc多了DispatcherServlet这个中央控制器就多了好多拓展性更加的灵活



