springmvc:
1.jar spring-aop.jar spring-bean.jar spring-context.jar spring-core.jar spring-web.jar
spring-webmvc.jar commons-logging.jar
报错NoClassDefFoundError:缺少jar
2.第一个SpringMVC程序 Servet - Springmvc jsp —>Servlet(Springmvc)—> jsp
springmvc配置文件:springmvc.xml 选中常用的命名空间:beans aop context mvc
普通的servlet流程: 请求-> url-pattern -> 交给对应的servlet去处理 如果现在想用springmvc,而不是普通的servlet,如何告知程序?(如何让springmvc介入程序) 需要配置一个Springmvc自带的servlet
通过以下配置,拦截所有请求,交给SpringMVC处理:
<servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</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>其中:
<url-pattern>.action</url-pattern>/----------------------------拦截一切请求(注意:不是 /*) /user----------------------拦截以/user开头的请求 /user/abc.do------------只拦截该请求 .action--------------------只拦截.action结尾的请求
项目中同时兼容springMVC和Servlet
<servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>.action</url-pattern> </servlet-mapping> <a href="user/welcome.action">first springmvc - welcome</a> 交由springmvc处理 找 @RuestMapping映射 <a href="user/welcome.action">first springmvc - welcome</a> 交由springmvc处理 找 @RuestMapping映射 <a href="xxx/welcome">first springmvc - welcome</a> 交由servlet处理 找url-parttern /@WebServlet()通过
<init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param>指定springmvc配置文件的路径,如果要省略,必须放到默认路径:/WEB-INF/springDispatcherServlet-servlet.xml
映射是去匹配@RequestMapping注解,可以和方法名、类名不一致 通过method指定请求方式(get post delete put)
@RequestMapping(value="welcome",method=RequestMethod.POST)//映射设置name="xx"的情况: params= {“name2=zs”,“age!=23”}
name2:必须有name="name2"参数 !name2:不能name="name2"的属性
age!=23: a.如果有name=“age”,则age值不能是23 b.没有age
//接口/类 注解 配置 @Controller @RequestMapping(value="handler") //映射 public class SpringMVCHandler { @RequestMapping(value="welcome",method=RequestMethod.POST,params= {"name=zs","age!=23","!height"})//映射 public String welcome() { return "success" ;// views/success.jsp,默认使用了 请求转发的 跳转方式 } @RequestMapping(value="welcome2",headers= {"Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Encoding=gzip, deflate"}) public String welcome2() { return "success" ;// views/success.jsp,默认使用了 请求转发的 跳转方式 } <form action="handler/welcome" method="post"> name:<input name="name" ><br/> age:<input name="age" > height:<input name="height" > <input type="submit" value="post"> </form>ant风格的请求路径 ? 任意单字符 * 任意个字符(0或多个) ** 任意个目录
@RequestMapping(value=“welcome3/**/test”) 接受示例: a href=“welcome3/abc/xyz/abccc/test”
通过@PathVariable获取动态参数