MVC框架说明和RestFul风格
开发动态web的技术
开发步骤:
-
编写一个类,实现Servlet接口
-
把开发好的java类部署到web服务器中
MVC框架
作用:
-
将url映射到java类或java类的方法
-
封装用户提交的数据
-
处理请求--调用相关的业务处理--封装响应数据
-
将响应的数据进行渲染 . jsp / html 等表示层数据
MVC执行原理
简要分析执行流程
-
Spring的web框架围绕DispatcherServlet设,DispatcherServlet的作用是将请求分发到不同的处理器,相当于前端控制器,接触用户的最高层。
我们假设请求的url为 : http://localhost:8080/SpringMVC/hello
如上url拆分成三部分:
SpringMVC部署在服务器上的web站点
hello表示控制器
通过分析,如上url表示为:请求位于服务器localhost:8080上的SpringMVC站点的hello控制器。
-
HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。
-
HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器为:hello。
-
HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等。
-
HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。
-
Handler让具体的Controller执行。
-
Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView。
-
HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。
-
DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名。
-
视图解析器将解析的逻辑视图名传给DispatcherServlet。
-
DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图。
-
最终视图呈现给用户。
常见问题解决(访问出现404)
-
打开项目结构
-
在WEB-INF包下创建lib包
-
项目所有包添加到lib中
步骤:
-
新建一个Moudle,添加web支持
-
pom.xml文件引入相关的依赖
-
配置web.xml
-
注册DispatcherServlet
-
关联SpringMVC的配置文件
-
启动级别为1
-
映射路径为 / 【不要用/*,会404】
-
在resource目录下添加springmvc-servlet.xml配置文件
-
使用springMVC必须配置的三大件:通常,我们只需要手动配置视图解析器,处理器映射器和处理器适配器只需要开启注解驱动即可
-
编写一个Java控制类:com.kuang.controller.HelloController(使用Controller注解)
-
在WEB-INF/ jsp目录中创建hello.jsp视图层
-
配置Tomcat运行
RestFul风格
作用:
-
基于这个风格设计的软件可以更简洁,更有层次,更安全,更易于实现缓存等机制
如何使用:
-
每个参数前添加注解@PathVariable
-
路径后引用参数 /add/{a}/{b}
使用method属性指定请求类型
用于约束请求的类型,可以收窄请求范围,指定请求谓词的类型如GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE等
-
使用:增加一个方法
//映射访问路径,必须是POST请求
-
所有的地址栏请求默认都会是 HTTP GET 类型!
-
方法级别的注解变体有如下几个:组合注解