spring MVC
来源:互联网 发布:ubuntu英文改中文 编辑:程序博客网 时间:2024/06/15 08:01
SpringMVC 简介
SpringMVC也叫Spring Web mvc,属于表现层的框架。Spring MVC是Spring框架的一部分,是在Spring3.0后发布的
Spring MVC 的请求流程
request-------->DispatcherServler(中央调度器/前端控制器)----->
HandlerMapping(处理器映射器)------>返回一个执行链----->将执行链转交给HandlerAdaptor(处理器适配器)----->调度Handler(处理器)----->
ModelAndView----->先将结果交给HandlerAdaptor,然后再由HandlerAdaptor转交给 DispatcherServler--------->DispatcherServler调度ViewResolver(视图解析器)---->交给DispatcherServler------->
寻找View---->View做出响应(response)
Spring 的第一个入门案例
配置步骤
1.在web.xml中配置前端控制器
2.处理器映射器(HandlerMapping)
3.处理器适配器 (HandlerAdaptor)
4.处理器
5.视图解析器(ViewResolver)
当你们老师问你们为什么只有这两行标红的时候你告诉他
因为其他的可以省略这两个不可以。英语:Because the other can be omitted, these two can not be
注册中央调度器
这写代码是写在web.xml里面的
<display-name>Archetype Created Web Application</display-name> <!--配置前端控制器--> <servlet> <servlet-name>springmvc</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> <!--只要tomcat一起动,就将servlet对象创建好放入内存--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern></servlet-mapping>
</web-app>定制处理器
你定义的一个类实现一个接口
Controller
public class spring implements Controller { public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { ModelAndView mv=new ModelAndView(); mv.setViewName("1"); return mv; }}
其实你刚开始做第一个例子的时候那个添 1 的地方其实填的是一个路径因为我用了一个方法吧那个给省略了
jsp页面搭建
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>Title</title></head><body>信星爷得永生<img src="/images/1.jpg"/></body></html>springmvc.xml配置
其实就是大配置里面啦
<bean id="/hello.do" class="cn.happy.Controller.spring"></bean>
然后你就可以运行了
效果就是:
然后 你可以进行代码的提升啦
视图解析器
就像上面我写的那个1 其实那是个jsp页面 的名字 如果你感觉没次都要写很多很麻烦就试试这个。
关于urlpattern说法
最好配成*.do
不能配成/* 无法访问*.jsp等动态资源
最好也不要配成/ 无法访问静态资源
不得不配成/
一切源于Restful编程 rest
不能配置为/*
DispatcherServlet会将向动态页面请求,即向jsp页面的跳转请求也当做是一个普通的Controller请求。中央调度器会调用处理器映射器为其查找相应的处理器。当然是找不到的。jsp页面会报404错误
结论:/*会拦截动态资源
方案二:使用MVC的default-servlet-handler
会将对静态资源的访问请求通过HandlerMapping映射到默认Servlet请求处理器DefaultServletRequestHandler对象。而该处理器调用了Tomcat的DefaultServlet来处理静态资源的访问请求。当然需要引入mvc约束
<mvc:default-servlet-handler/>
没错这么一小句话的作用
方式三:使用MVC的resource解决在Spring3.0.4之后,Spring定义了专门用于处理静态资源请求的处理器ResourceHttpRequestHandler。并且添加了<mvc:resources/>标签,专门用于解决静态资源无法访问问题。
<mvc:resources mapping="/img/**" location="/images/"></mvc:resources>
Location:静态资源所在目录
mapping: 对资源的请求
注意:需要Tomcat7支持
- spring mvc
- spring mvc
- spring mvc
- spring,MVC
- Spring MVC
- spring mvc
- Spring-MVC
- Spring MVC
- Spring MVC
- Spring MVC
- SPring MVC
- spring mvc
- Spring mvc
- spring MVC
- spring mvc
- spring mvc
- spring mvc
- Spring MVC
- Codeforces 392C Yet Another Number Sequence
- vuforia模型脱卡功能的实现
- Redis设实
- vue学习02----目录结构
- Linux(centos5.5)中shutdown命令出错:bash: shutdown: command not found
- spring MVC
- java中构造方法及其作用
- 《JAVA编程思想》之《内部类》笔记
- 生病中
- 端口分类
- 浏览器渲染过程与原理
- url及node.js url模块随笔
- tensorflow安装及注意事项记录
- 【Linux应用开发】之孤儿进程和僵尸进程