一、简介
1.Springmvc是什么
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。
2. Springmvc 架构图
3.springmvc重要组件
1、DispacherServlet前端控制器
负责用户请求和响应,是一个中央控制器(调度),调用HandlerMapping查找Handler,调用HandlerAdapter处理器适配器执行Handler,调用ViewResolver视图解析器去解析视图,有了DispacherServlet有利于框架扩展,减少了各各组件之间耦合性。
2、HandlerMapping处理器映射器
不需要开发,使用框架提供的
负责查找Handler(常用action),通过xml配置方式或注解方式将Handler类和request请求Handler链接地址进行对应配置。
3、HandlerAdapter处理器适配器
不需要开发,使用框架提供的
Springmvc提供了很多种适配器,注解适配器支持注解开发、原始servlet适配器(HanderRequestAdapter)支持原始servlet的执行。
负责执行Handler,适配器是按照一定的规则去执行Handler,调用Handler返回的结果是ModelAndView,ModelAndView将Model和view封装起来(模型数据和视图)
4、ViewResolver视图解析器
不需要开发,使用框架提供的
负责进行视图解析,返回View,框架执行很多类型的View(jstlView、pdfView....)
5、Handler处理器(需要开发)
需要开发,按照适配器的规则开发,比如适配器要求Handler实现某个接口,Handler必须实现接口。
6、View视图页面(jsp) (需要开发)
需要开发,jsp+jstl。为了视图通用性建议使用第三方框架,jstl。
注:处理器映射器、处理器适配器、视图解析器称为springmvc的三大件
二、配置(入门示例)
Spring MVC环境搭建
1.导入jar包
2.web.xml的配置
1 27 8 9 10 11 20welcome 12org.springframework.web.servlet.DispatcherServlet 13 17 181 1921 25 26welcome 22 23/ 2427 29index.jsp 28
3.welcome-servlet.xml配置
1 212 13 15 16 17 18 19 21 22 23 24
4.编写controller类
1 package cn.jbit.Controler; 2 3 import javax.servlet.http.HttpServletRequest; 4 import javax.servlet.http.HttpServletResponse; 5 6 import org.springframework.web.servlet.ModelAndView; 7 import org.springframework.web.servlet.mvc.AbstractController; 8 9 public class WelcomeControler extends AbstractController{10 11 @Override12 protected ModelAndView handleRequestInternal(HttpServletRequest arg0,13 HttpServletResponse arg1) throws Exception {14 System.out.println("hello");15 return new ModelAndView("Welcome");16 }17 18 }
5.jsp页面
1 <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 8 9 1011 12 My JSP 'index.jsp' starting page 13 14 15 16 17 18 21 22 23 24 welcome! 25 26
最后将SpringMVC部署到tomcat服务器上 然后运行 在浏览器中输入访问地址 就可以看到前台显示jsp页面 后台打印字符串了
三、HTTP协议
1.HTTP 简介
HTTP(Hypertext Transfer Protocol,超文本传输协议①)是在万维网上进行通信时
所使用的协议方案。HTTP 有很多应用,但最著名的是用于Web 浏览器和Web 服
务器之间的双工通信。
2.HTTP报文
报文组成
起始行
报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说
明出现了什么情况。
首部字段
起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为
了便于解析,两者之间用冒号(:)来分隔。首部以一个空行结束。添加一个首
部字段和添加新行一样简单。
主体
空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括
了要发送给Web 服务器的数据;响应主体中装载了要返回给客户端的数据。起
始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意
的二进制数据(比如图片、视频、音轨、软件程序)。当然,主体中也可以包含
文本
3.请求实例
一些常见的HTTP方法
GET 从服务器向客户端发送命名资源
PUT 将来自客户端的数据存储到一个命名的服务器资源中去
DELETE 从服务器中删除命名资源
POST 将客户端数据发送到一个服务器网关应用程序
HEAD 仅发送命名资源响应中的HTTP 首部
四、注解
@Controller注解 @Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示
@RequestMapping注解 @RequestMapping可以用在类定义和方法定义上,它标明这个类或方法与哪一个客户请求对应
如下示例:
1 @Controller 2 public class HelloControler { 3 4 @RequestMapping(value = "/hello") 5 public String hello(String username, Model model) { 6 System.out.println("欢迎"+username); 7 model.addAttribute("username",username); 8 return "Welcome"; 9 }10
为了使注解生效 还需要在xml中进行配置,代码如下:
1 <context:component-scan base-package="cn.jbit.Controler" /> 2 <mvc:annotation-driven />
最后再重新运行项目 测试一下就行了
END.