SpringMVC处于表现层
入门案例
1.检查依赖
2.创建三级包controller,创建HelloController类
3.在类里加@Controller不足以说明是控制器,加RequestMapping才算
controller意义:把类交给spring管理
dispatcherServlet
tomcat一旦启动,
<load-on-startup>1</load-on-startup>
此代码生效,生效后加载
<init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param>
所以要加载springmvc.xml
扩展名匹配:结尾必须带.do,如果不带就匹配不上无法拦截
<servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
/这是dispatcherServlet拦截所有请求
<context:component-scan base-package="com.qcby" />
找到@Controller
一个请求到达表现层的流程


入门案例结合图上图的解释
所有请求都会被DispatcherServlet堵住,然后解读url找到处理器映射器,解读/hello.do
然后找到适配器适配controller(在此切断,不会到业务层)controller直接返回结果,结果在给DispatcherServlet,然后DispatcherServlet找视图解析器,视图解析器返回视图渲染,最后呈现页面
超链接默认是GET请求
@RequestMapping(path = "/hello.do" ,method = RequestMethod.POST)
对应
<%-- 超链接 --%> <h3>入门</h3> <a href="/say/hello.do">入门程序</a> <form method="post" action="/say/hello.do"> <input type="submit" value="提交"> </form>
补充:在后面加params
@RequestMapping(path = "/hello.do" ,method = RequestMethod.POST, params = "username")
必须传递username否则也匹配不上
对应:
<input type="text" name="username" value="张三">