Spring实战(2)——DispatcherServlet

Spring MVC

DispatcherServlet(控制器的核心调度器)
  • dispatcher(调度员)是Spring MVC的入口,任何请求都要通过这个Servlet
    发送到相应的处理器中处理,携带的信息叫Model,返回的视图叫View。返回的视图会通过视图解析器匹配一个完整的视图。
Servlet3.0

在这里插入图片描述

/**
 *
 * {@link javax.servlet.ServletContainerInitializer} 代替web.xml
 * {@link javax.servlet.annotation.HandlesTypes} 在 {@link org.springframework.web.SpringServletContainerInitializer}中
 * 注解了{@link org.springframework.web.WebApplicationInitializer}
 * AbstractAnnotationConfigDispatcherServletInitializer 继承 {@link org.springframework.web.WebApplicationInitializer}
 * @author wuzhe1159@163.com
 * @date 2018/11/11 10:29
 */
public class SpitterWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
	@Override
	protected Class<?>[] getRootConfigClasses() {
		return new Class[]{RootConfig.class};
	}

	@Override
	protected Class<?>[] getServletConfigClasses() {
		return new Class[]{WebConfig.class};
	}

	@Override
	protected String[] getServletMappings() {
		return new String[]{"/"};
	}
}

Spring MVC 请求参数

  • 查询参数
  • 表单参数
  • 路径变量 @PathVariable(‘param’) 当方法的参数与占位符的名称相同,可以去掉@PathVariable的value属性

Spring MVC 校验表单

  • 现在基本都是传入Json字符串来解析得到相应的对象,很少在实体上直接校验数据,但是在使用这个校验的时候,必须引入hibernate的实现,javax中的只是规定了校验的接口,并没有实际的实现
graph LR
javax.validation.constraints-->|实现|hibernate.validator.constraints
//需要校验的实体类
@Data
public class Spitter {

	private Long id;

	@NotNull
	@Size(min=5, max=16)
	private String username;

	@NotNull
	@Size(min=5, max=25)
	private String password;

	@NotNull
	@Size(min=2, max=30)
	private String firstName;
}
/**
 *添加注释@Valid 和参数Errors,可以捕捉到参数错误
 *<sf:error>可以在页面上显示
 */
@RequestMapping(value = "/register",method = RequestMethod.POST)
	public String processRegistration(@Valid Spitter spitter, Errors errors){
 		if (errors.hasErrors()){
			return "registerForm";
		}
		spitterRepository.save(spitter);
	  return "redirect:/spitter/"+spitter.getUsername();
	}
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="sf" %>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值