这是核心
##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
作用:用于多次执行控制器方法间的参数共享

京公网安备 11010502036488号