springmvc返回错误状态码_SpringMvc⾼效⼊门精华版,⼩⽩
也可直接上⼿
1.springMVC介绍
Spring 框架是⾼度可配置的,⽽且包含多种视图技术
Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的⾓⾊,这种分离让它
们更容易进⾏定制。
2.web请求过程
3. springMVC组件介绍
DispatcherServlet:作为前端控制器,整个流程控制的中⼼,控制其它组件执⾏,统⼀调度,降低组件之间的耦合性,提⾼每个组件的扩展性。
HandlerMapping:通过扩展处理器映射器实现不同的映射⽅式,例如:配置⽂件⽅式,实现接⼝⽅式,注解⽅式等。
HandlAdapter:通过扩展处理器适配器,⽀持更多类型的处理器,调⽤处理器传递参数等⼯作
ViewResolver:通过扩展视图解析器,⽀持更多类型的视图解析
4.MVC执⾏过程
4.1Dispatcher介绍
DispatcherServlet主要⽤作职责调度⼯作,本⾝主要⽤于控制流程,主要职责如下:
1. ⽂件上传解析,如果请求类型是multipart将通过MultipartResolver进⾏⽂件上传解析;
2. 通过HandlerMapping,将请求映射到处理器(返回⼀个HandlerExecutionChain,它包括⼀个处理器、多个HandlerInterceptor拦
截器);
3. 通过HandlerAdapter⽀持多种类型的处理器(HandlerExecutionChain中的处理器);
el表达式获取map的值4. 通过ViewResolver解析逻辑视图名到具体视图实现;
5. 本地化解析;
6. 渲染具体的视图等;
7. 如果执⾏过程中遇到异常将交给HandlerExceptionResolver来解析。
4.2 DispatcherServlet辅助类
spring中的DispatcherServlet使⽤⼀些特殊的bean来处理request请求和渲染合适的视图。
5.springMVC搭建
(1)添加jar包
(2)修改l
springMVCorg.springframework.web.servlet.lspringMVC/
2.1 url-pattern有5种配置模式
(1)/xxx:完全匹配/xxx的路径
(2)/xxx/:匹配以/xxx开头的路径,请求中必须包含xxx。
(3)/:匹配/下的所有路径,请求可以进⼊到action或controller,但是转发jsp时再次被拦截,不能访问jsp界⾯。
(4).xx:匹配以xx结尾的路径,所有请求必须以.xx结尾,但不会影响访问静态⽂件。
(5)/:默认模式,未被匹配的路径都将映射到刺servlet,对jpg,js,css等静态⽂件也将被拦截,不能访问。(3)修改spring配置⽂件
<?xml version="1.0" encoding="UTF-8"?>
(4)创建控制器类
1.@Controller
2.@RequestMapping(“请求地址”)
加在类上: 给模块添加根路径
加载⽅法: ⽅法具体的路径
设置@RequestMapping method属性
@RequestMapping(method=RequestMethod.GET,value=“请求名”)
(5)测试
6.接参
接收⽅式:
(1)HttpServletRequest
(2)页⾯传值时的key=处理请求的⽅法的参数名
(3)使⽤控件名和对象的属性名⼀致的⽅式进⾏接收
6.1⽅法的参数名与传参的name值不同
public String login(@RequestParam(value = "name") String username, String password){}//设置默认值public String list(@RequestParam(defaultValue = "1") Intege 6.2⽇期类型常见错误
错误原因:给定的数据⽆法由框架转换成⽬标类型
springmvc框架默认⽀持转换得⽇期格式:yyyy/MM/dd
解决⽇期问题⽅式:
(1)使⽤string接受⽇期,接受后,再转换: SimpleDataFormate
(2)使⽤⼯具类处理⽇期
joda-timejoda-time2.9.9
配置⽂件:
public String test1(@DateTimeFormat(pattern = "yyyy-MM-dd")Date birthday){}
7.返参
修改l⽂件版本,⽤来⽀持jsp操作EL表达式
(1)HttpServletRequest
(2)ModelMap map ,默认作⽤域request
(3)ModelAndView 对象需要new,同时作为返回值类型
(4)Model类保存数据
8.session存值
(1)使⽤HttpSession :Session();
(2)使⽤@sessionAttributes(“key值”)//写的是ModelMap中定义的key值
注:该注解和ModelMap结合使⽤,当使⽤ModelMap存值时,会在session中同时存储⼀份数据
@SessionAttributes()的⼩括号中如果是⼀个值,不要加{}
⽰例:
@SessionAttributes(“key”)
@SessionAttributes({“key1”,“key2”})
清除注解session:SessionStatus类
status.setComplete();
9.弹窗响应
输出流的问题(返回值必须是void)
@RequestMapping("delete")public void delete(HttpServletResponse response) throws IOException{
System.out.println("删除成功");response.setContentType("tex 9.1 post处理乱码:l配置过滤器
charsetorg.springframework.web.filter.CharacterEncodingFilter encodingutf-8charset/*12345678910111213
10.转发和重定向
@RequestMapping("/forwardView")public String forwardView(){return "forward:/WEB_INF/pages/success.jsp";}
重定向:重定向时地址栏会发⽣拼接modelmap中值的问题
return "redirect:a.jsp" 或者:redirect:findall
11.异常处理
⽅法1:在l响应状态码配置⼀个对应页⾯
404/404.html
⽅法2:
@RequestMapping("/login9")public String login9(){String a=null;System.out.println(a.charAt(0));return "login9.jsp";}//配置异常结果界⾯@ExceptionHandler(NullPoi 全局异常:@ControllerAdvice
使⼀个Contoller成为全局的异常处理类,类中⽤@ExceptionHandler⽅法注解的⽅法可以处理所有Controller发⽣的异常
12.Cookie操作
@CookieValue注解可以获取请求中的cookie
public String testCookie(@CookieValue("JSESSIONID")String cookie){System.out.println("cookie:"+cookie);return "result";}
13.获得头信息
@RequestHeader
@RequestHeader注解可以获取请求头中的数据!!
public String testHeader(@RequestHeader("User-Agent")String header)
14.RestFul风格
表现层状态转化,是⽬前最流⾏的⼀种互联⽹软件架构。就是HTTP协议⾥⾯,四个表⽰操作⽅式的动词:GET POST PUT DELETE
实现步骤:
(1) l添加HiddenHttpMethodFilter配置
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论