同步操作将从 dearHaoGeGe/Ebooks 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Spring MVC的入口是一个servlet即前端控制器(DispatchServlet),而Struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilter)。
Spring MVC是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),Struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
Struts采用值栈存储请求和响应的数据,通过OGNL存取数据,而Spring MVC通过参数解析器将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后将ModelAndView中的模型数据通过reques域传输到页面。其中Jsp视图解析器默认使用jstl。
Spring MVC提供了两种上传方式配置
基于commons-fileupload.jar
org.springframework.web.multipart.commons.CommonsMultipartResolver
基于servlet3.0+
org.springframework.web.multipart.support.StandardServletMultipartResolver
1、页面form中提交方式enctype="multipart/form-data"的数据时,需要springmvc对multipart类型的数据进行解析。
2、在springmvc.xml中配置multipart类型解析器。
3、方法中使用MultipartFile attach实现单个文件上传或者使用MultipartFile[] attachs实现多个文件上传。
在返回值前面加“forward:”参数,可以实现转发。
"forward:getName.do?name=Java精选"
在返回值前面加“redirect:”参数,可以实现重定向。
"redirect:https://blog.yoodb.com"
### 题4:[Spring MVC模块的作用是什么?](/docs/Spring%20MVC/最新面试题2021年Spring%20MVC面试题及答案汇总.md#题4spring-mvc模块的作用是什么)<br/>
Spring提供了MVC框架来构建Web应用程序。
Spring可以很容易地与其他MVC框架集成,但是Spring的MVC框架是更好的选择,因为它使用IoC来提供控制器逻辑与业务对象的清晰分离。
使用Spring MVC,可以声明性地将请求参数绑定到业务对象。
### 题5:[如何开启注解处理器和适配器?](/docs/Spring%20MVC/最新面试题2021年Spring%20MVC面试题及答案汇总.md#题5如何开启注解处理器和适配器)<br/>
在配置文件中(一般命名为springmvc.xml 文件)通过开启配置:
```xml
<mvc:annotation-driven>
来实现注解处理器和适配器的开启。
RESTful一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。
RESTful主要用于客户端和服务器交互类的软件。
REST指的是一组架构约束条件和原则。
满足这些约束条件和原则的应用程序或设计就是RESTful。
RESTful结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
RequestMapping注解有六个属性
value
指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);
method
指定请求的method类型, GET、POST、PUT、DELETE等;
consumes
指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces
指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
params
指定request中必须包含某些参数值是,才让该方法处理。
headers
指定request中必须包含某些指定的header值,才能让该方法处理请求。
POST请求访问
@RequestMapping(value="/wx/getUserById",method = RequestMethod.POST)
GET请求访问
@RequestMapping(value="/wx/getUserById/{userId}",method = RequestMethod.GET)
同时支持POST和GET请求访问
@RequestMapping(value="/subscribe/getSubscribeList/{customerCode}/{sid}/{userId}")
RequestMethod常用的参数
GET(SELECT):从服务器查询,在服务器通过请求参数区分查询的方式。 POST(CREATE):在服务器新建一个资源,调用insert操作。 PUT(UPDATE):在服务器更新资源,调用update操作。
DELETE(DELETE):从服务器删除资源,调用delete语句。
表现层(UI):数据的展现、操作页面、请求转发。
业务层(服务层):封装业务处理逻辑。
持久层(数据访问层):封装数据访问逻辑。
各层之间的关系:MVC是一种表现层的架构,表现层通过接口调用业务层,业务层通过接口调用持久层,当下一层发生改变,不影响上一层的数据。
局部异常处理
局部异常处理是指当类中发生异常时,由方法来处理,该方法的参数类型为Exception,而Exception是所有异常的父类,故由该参数来接收异常对象。
步骤说明
1)在controller类中定义处理异常的方法,添加注解@ExceptionHandler,方法的参数类型为Exception,并通过getMessage()方法获取异常信息,再将异常信息保存,最后跳转到错误页面,使用mv.setViewName("error"),这里通过ModelAndView将异常信息保存到request中。
2)创建error.jsp页面,在page中添加isErrorPage="true",表示该页面为错误页面,再从request中获取错误信息,并显示到页面。
定义全局异常类
1)创建异常类,添加注解@ControllerAdvice表示当发生异常时由该异常类来处理,全局的异常类处理异常。
在异常类中定义处理异常的方法,该方法的定义与定义局部的异常处理方法一致。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。