SpringMVC
1.jar包
新增Spring-webmvc.jar
2.第一个SpringMVC程序
Servlet---SpringMVC
jsp-->Servlet(SpringMVC)-->JSP
SpringMVC配置文件:springmvc.xml
普通的servlet流程:
请求-url-pattern 交给对应的servlet去处理。
通过以下配置,拦截所有请求,交给SpringMVC处理:
servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name></param-name> <param-value></param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
/: 拦截一切请求
/user: 拦截以/user开头的请求
/user/abc.do: 只拦截该请求
.action: 只拦截以.action为结尾的请求,交给SpringMVC处理
<servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>.action</url-pattern> </servlet-mapping>
要省略springMVC配置文件的路径,将xml文件放到默认路径WEB-INF目录下,写默认名字。
默认名字为<param-name>的值-servlet.xml
NoClassDefFoundError: 缺少jar包
映射是去匹配@RequestMapping注解,可以和方法名、类名不一致。
405:
通过method指定请求方式(get,post,delete,put ):
@RequestMapping(value = "welcome",method = RequestMethod.POST) //映射
params = {"name=zs","age!=23","!height"}
- name: 必须有name参数,并且name必须等于zs;
- age: 有age参数的话age不等于23;
- !height: 不能有height这个参数。
ant风格的请求路径:
? 单字符
*任意个字符(0或多个)
**任意目录
@PathVariable:拿到jsp页面传过来的参数
<a href="SpringMVCHandler/welcome3/zs">first springmvc</a> @RequestMapping(value = "welcome3/{name}") //映射 public String welcome3(@PathVariable("name") String name){ System.out.println(name); return "success"; //通过视图解析器拼接前缀后缀(prefix,suffix),/views/success.jsp ,默认使用了请求转发的跳转方式 }