1 springmvc 框架
1.1 回顾mvc结构
1.2springmvc的介绍
是一个基于mvc的web层框架,使用spring的一个子项目
在使用springmvc的时候,不用单独和spring进行集成。
2 第一个springmvc的应用
2.1新建web项目
2.2加入jar包
2.3建立Controller
Controller:应用控制器,就是一个普通的javabean
模拟用户登录:
1 package org.guangsoft.controller; 2 3 import javax.servlet.http.HttpServletRequest; 4 import javax.servlet.http.HttpServletResponse; 5 6 import org.springframework.web.servlet.ModelAndView; 7 import org.springframework.web.servlet.mvc.Controller; 8 9 10 public class UserController implements Controller 11 { 12 13 /** 14 * ModelAndView:对象汇总封装了需要响应到客户端额的数据的视图的页面 15 */ 16 @Override 17 public ModelAndView handleRequest(HttpServletRequest request, 18 HttpServletResponse response) throws Exception 19 { 20 //获得页面请求数据 21 String username = request.getParameter("username"); 22 String password = request.getParameter("password"); 23 24 //创建一个ModelAndView对象,封装了需呀显示的视图和视图上需要显示的数据 25 ModelAndView mav = new ModelAndView(); 26 if(username.equals("root") && password.equals("root")) 27 { 28 //请求转发 29 mav.setViewName("success.jsp"); 30 mav.addObject("username",username); 31 } 32 else 33 { 34 mav.setViewName("error.jsp"); 35 mav.addObject("msg", "用户名或密码错误!"); 36 } 37 return mav; 38 } 39 40 }
2.4建立springmvc.xml配置文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans 3 xmlns="http://www.springframework.org/schema/beans" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xmlns:p="http://www.springframework.org/schema/p" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> 7 8 <!-- name是usercontroller请求的url --> 9 <bean name="/userController.action" class="org.guangsoft.controller.UserController"></bean> 10 </beans>
2.5在web.xml中配置springmvc的核心控制器
Springmvc的核心控制器是一个servlet
1 package org.guangsoft.controller; 2 3 import javax.servlet.http.HttpServletRequest; 4 import javax.servlet.http.HttpServletResponse; 5 6 import org.springframework.web.servlet.ModelAndView; 7 import org.springframework.web.servlet.mvc.Controller; 8 9 10 public class UserController implements Controller 11 { 12 13 /** 14 * ModelAndView:对象汇总封装了需要响应到客户端额的数据的视图的页面 15 */ 16 @Override 17 public ModelAndView handleRequest(HttpServletRequest request, 18 HttpServletResponse response) throws Exception 19 { 20 //获得页面请求数据 21 String username = request.getParameter("username"); 22 String password = request.getParameter("password"); 23 //床架一个ModelAndView对象,封装了需呀显示的视图和视图上需要显示的数据 24 ModelAndView mav = new ModelAndView(); 25 if(username.equals("root") && password.equals("root")) 26 { 27 //请求转发 28 mav.setViewName("success.jsp"); 29 mav.addObject("username",username); 30 } 31 else 32 { 33 mav.setViewName("error.jsp"); 34 mav.addObject("msg", "用户名或密码错误!"); 35 } 36 return mav; 37 } 38 39 }
2.6建立视图页面
建立登陆页面:
建立成功提示页面:
2.7发布测试
3第一个程序问题总结
Springmvc.xml的文件加载问题:
如果不配置,默认/WEB-INF/springmvc-servlet.xml
请求url的问题:
核心控制的路径:/* 会导致jsp页面404错误,要用*.action
4 controller应用控制器的不同实现
Handler的不同实现方式,UserHandler
4.1实现Controller接口
4.2实现HttpRequestHandler
最原始的servlet写法,获得请求参数和进行跳转都是用原始的servletapi。
1 package org.guangsoft.controller; 2 3 import java.io.IOException; 4 5 import javax.servlet.ServletException; 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 8 9 import org.springframework.web.HttpRequestHandler; 10 import org.springframework.web.servlet.ModelAndView; 11 12 public class UserController2 implements HttpRequestHandler 13 { 14 15 @Override 16 public void handleRequest(HttpServletRequest request, HttpServletResponse response) 17 throws ServletException, IOException 18 { 19 //获得页面请求数据 20 String username = request.getParameter("username"); 21 String password = request.getParameter("password"); 22 if(username.equals("root") && password.equals("root")) 23 { 24 //请求转发 25 request.setAttribute("username", username); 26 response.sendRedirect("success.jsp"); 27 } 28 else 29 { 30 response.sendRedirect("error.jsp"); 31 } 32 } 33 34 }
4.3自定义javabean(重点)
不需要实现任何接口,处理请求的方法自己定义(参数和返回值),配合注解一起使用
4.3.1定义Controller
通过扫描将controller纳入spring容器
1 package org.guangsoft.controller; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.ui.Model; 5 import org.springframework.web.bind.annotation.RequestMapping; 6 7 @Controller 8 public class UserController3 9 { 10 /** 11 * 返回值:stirng表示跳转的路径 12 * username:接受客户端请求的username 13 * passowrd:接受客户端请求的password 14 * model:封装需要响应到客户端的数据 15 * 参数名称必须和客户端请求的参数名称一致 16 * @return 17 */ 18 @RequestMapping("/userLogin")//客户端请求的url 19 public String userLogin(String username, String password, Model model) 20 { 21 if(username.equals("root") && password.equals("root")) 22 { 23 model.addAttribute("username",username); 24 return "success.jsp";//完成页面的跳转 25 } 26 else 27 { 28 model.addAttribute("msg", "您的用户名或密码错误!"); 29 return "error.jsp"; 30 } 31 } 32 }
4.3.2进行UserController3的配置
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans 3 xmlns="http://www.springframework.org/schema/beans" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:mvc="http://www.springframework.org/schema/mvc" 6 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 7 xmlns:p="http://www.springframework.org/schema/p" 8 xsi:schemaLocation= 9 "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 10 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd 11 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> 12 13 <!-- name是usercontroller请求的url --> 14 <bean name="/userController.action" class="org.guangsoft.controller.UserController"></bean> 15 <context:component-scan base-package="org.guangsoft.controller"></context:component-scan> 16 <mvc:annotation-driven></mvc:annotation-driven> 17 </beans>
时间: 2024-11-18 16:21:12