WEB-INF/page/loginSuc.jsp,主要代码如下:
<body>
登录成功!欢迎来到后台管理页面
< span>body>
index.jsp代码:
<form action="<%=request.getContextPath()%>/op/luanXie/login.do" method="post">
用户名:<input type="text" name="username"><br/>
密 码:<input type="password" name="password"><br/>
<input type="submit" value="登录">
< span>form> |
步骤五:访问index.jsp页面,完成测试。
分析执行过程:为了清晰体会到整个处理器执行过程,我们首先在UserController.java中增加如下代码:
Java代码
protected Object formBackingObject(HttpServletRequest request) throws Exception {
System.out.println("formBackingObject方法执行-->01");
return super.formBackingObject(request);
}
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
System.out.println("initBinder方法执行-->02");
super.initBinder(request, binder);
}
protected void onBind(HttpServletRequest request, Object command) throws Exception {
System.out.println("onBind方法执行-->03");
super.onBind(request, command);
}
protected void onBindAndValidate(HttpServletRequest request, Object command, BindException errors)
throws Exception {
System.out.println("onBindAndValidate方法执行-->04");
super.onBindAndValidate(request, command, errors);
} |
(1)当访问…/login.do时,会首先被前端控制器DispatcherServlet拦截到,前端控制器通过查找spmvc-servlet.xml配置文件,并交给后端控制器处理。
(2)执行后,得到如下打印结果,通过打印结果我们知道它的一个大致执行过程。
执行preHandle方法-->01
formBackingObject方法执行-->01
initBinder方法执行-->02
onBind方法执行-->03
onBindAndValidate方法执行-->04
调用逻辑层,处理表单
Admin----123456
执行postHandle方法-->02
执行afterCompletion方法-->03
相关链接:
Spring-MVC入门(一):入门实例
Spring-MVC入门(二):后端控制器