这是核心
##BASIC
SpringMVC 为什么要玩SpringMVC 哪些是springMVC的难点 进大厂面试官会问些什么 javaweb 前段发出的请求会被映射到xml中,让后再匹配到对应的servlet中,然后调用相应的servlet类种方法 使用springmvc后所有的请求都交给springmvc进行管理,那么怎么管理呢 需要在webapp WEB-INF 中找到web.xml 配置核心控制器 dispatcherServlet(负责服务调度) dispatcherServlet 配置 <!--此标签指定了一个实现类为DispatcheServlet--> <web-app> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--配置Servlet初始化参数,读取springmvc的配置文件,创建spring容器--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <!-- 配置servlet启动时加载对象--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> springMVC.xml 一般配置组件扫描器和视图解析器 web.xml springMVC请求流程 dispatcherServlet---前端控制器 接收用户请求,以做出相应;同时调度其他组件用户请求,执行整个流程,是一个中央处理器; handlerMapping---处理映射器 根据用户请求的 URL 路径,通过注解或者 XML 配置,寻找匹配的 Handler 即处理器 handle---处理器(开发) 这就是开发中要编写的具体业务逻辑控制器,执行相关的请求处理逻辑,并且返回相应的数据和视图信息,然后封装到 ModeAndView 对象中 handleAdapter---处理适配器 根据映射器找到的处理器(Handler)信息,按照特定规则执行相关的 Handler (常称为 Controller) view resolver---视图解析器 通过ModelAndView 对象中的 View 信息将逻辑视图名解析成物理视图名,即具体的页面地址,然后再生成 View 视图对象,最后对 View 进行渲染处理结果通过页面展示给用户 view---视图(开发) 本身是一个接口,实现类支持不同 View 类型 (JSP、FreeMarker、Excel 等) 请求参数绑定 1.基本类型和参数类型 通过构建一个超链接的方式传递参数,例如 ?objectOne=One 而在后端中如果方法形参与这个objectOne是一致的,这个提交的数据就会被绑定到参数objectOne中 2.JavaBean实体类 参数中使用 JavaBean 类型接收时,在提交表单的时候,就需要将其中的 name 属性中的值与实体类中的成员变量的值是一样的,如果一个JavaBean类中包含其他的引用类型,那么表单的name属性需要编写成:对象.属性例如:account.username 3.集合数据类型 响应数据以及视图结果 返回字符串 返回void值 返回modleAndView对象 ----ModeAndView object = ModeAndView.newInstance; object.setViewName("LoadViewName") return object; 设置不拦截静态资源 在springmvc.xml中配置<mvc.resource mapping="css/**/" location="/css/"> 发送Ajax请求 $(function () { $("#btn").click(function () { //发送ajax请求 $.ajax({ url:"user/testAjax", contentType:"application/json;charset=UTF-8", data:'{"username":"zhangsan","password":"888888"}', dataType:"json", type:"post", success:function (data) { //解析响应数据 } }) }); }); 响应json格式数据
ANNOTATION--ACCESSABLE
springMVC @RequestMapping 说明:注解是指定控制器可以处理哪些URL请求,这个注解可以放在类或者方法上 属性:path value method params Headle @RequestParam(value="",required=false,default="") 说明:把请求中的指定名称的参数传递给控制器中的形参 @RequestParam(value="nickName") value中的nickName与前端需要传递的nickName属性相对应 并把nickName = 值 传递到name中 使得name值为前端传递的值 @RequestBody 作用:用于获取请求体的内容(注:get方法不可以) 当调用此方法,其内含有的数据都被其接收。一般使用json格式做为数据传递格式 @PathVariable 作用:用于绑定url中的占位符,例如:url中有/test/{id},{id}就是占位符 @SessionAttribute 作用:用于多次执行控制器方法间的参数共享