spring实战笔记

1、@ResponseStatus 注解
将spring的异常映射到HttpStatus上去

2、@ExceptionHandler 注解
处理控制器抛出的 异常,自己定义到方法上;
eg:@ExceptionHandler(Exception.class)
public String handleException(){
return error/exception;
}
解释:在改controller中,当出现Exception异常时,自动定位到error/exception;页面去

3、@ControllerAdvice 控制器通知
带有注解,@ExceptionHandler 、@InitBinder、@ModelAttribute 注解的方法,
在带有@ControllerAdvice 注解的类中,以上带有注解的方法,都会应用到整个应用中带有@RequestMapping的方法上;
@ControllerAdvice 本身就带有@Componment

4、重定向时,model中的数据没发重定向:解决方法有两种
1、使用url模板以路径变量和/或查询参数的形式传递数据
2、通过flash属性发送数据

1.1、@RequestMapping("getResult)
	public String processRegistration(Spitter spitter,Model model){
		spitterRepository.save(spitter);
		model.addAttribute("spitterId",spitter.getId());
		model.addAttribute("userName",spitter.getName());
		return "redirect:/spitter/{userName}";
	}
	如果:userName=wangjun
	解释:重定向结果:/spitter/wangjun?spitterId=12   spitterId会作为参数带入重定向的请求中
	注意:此种情况下:重定向带入的参数即spitterId 只能是string和数字的值
	
2.1、flash属性的发送
	即工作过程:将属性装到会话中,请求转发后,把会话中的请求在放回model中
	eg:@RequestMapping
		public String processRegistration(Spitter spitter,RedirectAttribute model){
			spitterRepository.save(spitter);
			model.addAttribute("userName",spitter.getName());
			model.addFlashAttribute("spitter",spitter);
			return "redirect:/spitter/{userName}";
		}
		
		转发后的controller 取数据的时候:直接从model中取数据
			model.getAttribute("spitter");

5、自定义servlet 和filter

1、public class MyServletInitializer implements WebApplicationInitializer{
		@Override
		public void onStartUp(ServletContext servletContext){
			Dynamic myServlet = servletContext.addServlet("myServlet",MyServlet.class);//增加servlet
			myServlet.addMapping("/custom/**");//映射servlet
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值