发表于: 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深入




返回列表 返回列表
评论

    分享到