SpringMvc总结
Springmvc总结
1.Springmvc是什么?
是一个基于spring的mvc的框架。可以和spring无缝衔接。
2.为什么使用Springmvc而抛弃原来的mvc结构?
a) 因为以前的mvc结构,写起来比较复杂,一个servlet在web.xml文件中有8行的配置,如果处理逻辑过多,就会导致配置文件过度庞大,不便于管理。并且在servlet中只能处理一个逻辑。如果针对同一个页面有多个操作,则需要编写多个servlet。在servlet中获取到的参数类型只能是string,需要手动来转变。
b) springmvc只需要配置一个servlet(DispatcherServlet)就可以管理所有的servlet,并且springmvc使用Controller层代替Web层中的servlet,在Controller中可以处理多个逻辑。Springmvc获取的参数类型支持自动转换,对于基本数据类型还支持自动封装。
3.springmvc原理(如何运行、加载机制)
3.1Springmvc各部分组件的作用:
1.DispatcherServlet:前置控制器,负责接收并处理所有的web请求,根据handlerMapping找到具体的Controller,由controller完成具体的处理逻辑。
2.HandlerMapping:负责处理web请求和具体的Controller之间的映射关系匹配。
3.Controller:DispatherServlet的次级控制器,web请求的具体处理者。DispatherServlet获得handlerMapping的返回结果后,调用controller的处理方法处理当前的业务请求,处理完成后返回ModelAndView对象。
4.ViewResolver:用来处理视图名与具体的view实例之间的映射对应关系。根据ModelAndView中的视图名查找相应的View实现类,然后将查找的结果返回给DispatcherServlet,DispatcherServlet最终会将ModelAndView中的模型数据交给返回的View处理最终的视图渲染工作。
5.View:为支持多种视图技术
3.2springMVC 的五大组件怎么协同工作
》DispatcherServlet收到请求之后,依据 HandlerMapping的配置调用相应的处理器来处理。
》DispatcherServlet调用HandlerMapping指定的Controller(处理器)来处理。
》Controller(处理器)将处理结果封装成ModelAndView, 然后返回给DispatcherServlet。
》DispatcherServlet依据ViewResovler的解析。
》调用相应的视图对象(比如某个jsp)来生成相应的页面。
4.form 中Enctype=multipart/form-data 的作用
ENCTYPE="multipart/form-data"用于表单里有图片上传。
<form name="userInfo" method="post" action="first_submit.jsp" ENCTYPE="multipart/form-data">
表单标签中设置enctype="multipart/form-data"来确保匿名上载文件的正确编码。
如下:
<tr>
<td height="30" align="right">上传企业营业执照图片:</td>
<td><INPUT TYPE="FILE" NAME="uploadfile" SIZE="34" onChange="checkimage()"></td>
</tr>
就得加ENCTYPE="multipart/form-data"。
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作.
enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。 form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功,取表单值加入数据库时,用到下面的:
SmartUpload su = new SmartUpload();//新建一个SmartUpload对象
su.getRequest().getParameterValues();取数组值
su.getRequest().getParameter( );取单个参数单个值
5.Mybatis运行原理