SpringMVC 简介
SpringMVC是Spring框架的一部分,是在Spring3.0以后发布的。
SpringMVC的简单应用
用户提交一个请求,服务端处理器在接收到这个请求之后,给出一条欢迎信息。
SpringMVC框架的执行流程
配置web.xml
url-pattern只能配*.do , 不能配 /* , 因为 /* 会匹配所有请求,如果过来的是静态页面的请求,那么中央处理器把这个路径交给处理器,但是处理器找不到对应的东西所以这时会出现404错误
最好不要写为 / ,它也会拦截所有资源请求,但是,它只会处理动态资源请求
当添加图片的时候(链接js,css的时候),就会访问不到,因为图片的加载也是请求,而且图片属于静态请求,从而不会处理,所以导致加载不出来
Resultful 风格形式的请求路径方法,必须使用/ , 而不是*.do之类的。这就会出现上面所述的问题,下面是解决办法。
解决配成 / 后可以请求处理静态请求的方案:
方案一:
这样就会处理*.jpg的请求(把所有静态资源请求的路径都列出来)
default所对应的servlet类在tomcat中的conf的web.xml中已经配置其作用是专门匹配没有处理的静态资源的
方案二:
在springmvc-servlet.xml中配置
当然想要使用
SpringMVCDemoA
txg
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc-servlet.xml
1
txg
*.do
配置springmvc-servlet.xml
这个xml文件,默认情况下是要和web.xml在一个目录下,且命名格式为servlet-name的值加上-servlet.xml。这样才能找到这个xml文件。如果不是默认的要求,则需要配置下面的
该xml文件是进行bean的注册的。
对于视图解析器,可以配置访问路径的前后缀,其原理就是字符串的拼接。
创建MyController类
实现Controller接口,并对MyController进行注册,在springmvc-servlet.xml中。
执行执行handleRequest方法,返回ModelAndView的对象。
mv.setViewName(“要显示的前端页面的路径,比如jsp的路径”)
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class MyController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception{
ModelAndView mv = new ModelAndView();
//其底层执行的是request.setAttribute()方法
mv.addObject("message", "hello SpringMVC");
mv.setViewName("welcome");
return mv;
}
}