发表于: 2018-10-18 23:04:44
1 454
今天完成的事情:
一、springmvc:替代了原来的servlet+jsp+javabean
springmvc是web层框架:
javaweb的网页端框架,统一管理了请求发出到服务器响应的全过程,非常牛逼
可以和spring框架完美融合。
核心为控制器(dispatcherservlet):志气控制作用,不进行操作
处理器映射器:接受控制器的请求命令返回 处理器的位置(通过url的地址)和拦截器中的内容
控制器适配器:帮助老大和处理器进行交互
处理器:进行业务逻辑运算,返回modelandview到控制器
视图解析器:控制器根据modelandview找到jsp文件,同时返回jsp的Java类
视图:得到jsp的java类通过jsp的jstl等标签进行视图的渲染,变成html静态文件返回给客户端
请求发到核心控制器后,控制器到handlermapping(处理器映射器中)查找控制器
springmvc的核心运行
核心(老大):dispatcherservlet 只进行控制
jsp页面访问尽量用绝对路径:
"${pageContext.request.contextPath}/xx/xx"
mvc拦截器:只对于处理器映射类的uri有效
4个方法:
执行处理器前:返回Boolean确定能否放行
执行处理器:
执行处理器后:
页面渲染结束后:
实现接口的拦截器类:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class SpringMVCInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
// TODO Auto-generated method stub
return false;
}
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex)
throws Exception {
// TODO Auto-generated method stub
}
}
在springmvc.xml配置文件中配置拦截器
mvc.xml中配置拦截器:
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**">
<bean
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping path="/**">
<bean
</mvc:interceptor>
</mvc:interceptors>
controller处理器的集中返回值及用法:
controller方法返回值
1、modelandview通用无敌的 既携带数据有携带数据
异常处理要用
2、String类型 在视图定位中区匹配 官方推荐第二种:因为符合解耦思想
一般和model结合使用
model.addAttribute();
详细使用:
“redirect:/”重定向到
forward:/ 内部转发 很少用,
3、void类型 用request.getrequest.();
有些不惜要跳视图的请求
ajax
返回json数据格式
用response返回
springmvc异常处理:
所有的异常都抛出到控制器,再由控制器委托异常类处理
异常处理器:
在请求过程中出现异常后
自己编写异常处理器逻辑:
1、预期异常
捕获异常 获得异常信息
2、运行时异常
发送问题,测出异常后修复
系统的dao service controller出现异常时抛出
最后又springmvc前端控制器交由异常处理器进行异常处理
有控制器交由handlerexceptionresolver
要去实现它。
2、配置
3、实现接口,转到异常界面
服务器上异常都是日志看异常的
预期异常:
json数据交互:
ajax发送包含json的请求
<script type="">
$(function(){
$ajax({
url:"",
date:param,
contentType="application/json;charset=utf-8",
type="post",
dateType="json",回收数据类型
sucess:function(data){}
})
});
</script>
接受要用
@requestbBody 解析json为对象
jackson-annotation
jackson-core
jackson-databind
jar包
用@responsebody修饰后直接返回对象就可以自动转为json值了
用这几个包特别方便
springmvc的参数绑定:
关于参数绑定:非常重要
简单数据:直接用integer id 接
@requestparam 不要用这个,需要自己配置还容易出错
对象: 直接用对象接
对象包装类 直接用包装类接 但是注意要在表单提交name中改成包装类里面的对象.属性
自定义参数绑定:当mvc无法识别该数据时用,譬如说Date不正常数据
需要在控制适配器中添加装换器工厂属性,在创建转换类实现转换工厂来自行做参数绑定
数组:直接用Integer[] 来接收数据
集合类:只能用包装类绑定list集合 VO vo 提交表单中是 list[0].name 表示name中的值
@requestmapping
放类上面起窄化路径 共用路径
@requestmapping(value=)可以放string数组
spring的单列模式:
spring单例模式的多线程实现方式:
在spring容器中是单例的,但是当一个用户访问spring时,就会在本地复制一个spring模板(就是一个线程)
当很多人访问时就会有复制很多个spring模板,每个模板就是一个线程。
二、task4修改
明天的任务:task5开始做
困难:无
收获:springmvc深入
评论