SpringMVC学习笔记——SpringMVC的简单应用

来源:互联网 发布:密码碰撞软件 编辑:程序博客网 时间:2024/06/08 05:52
目前最新版本Spring3.2.2

官方地址:http://www.springsource.org/download


流程

前置控制器

<servlet>
         <servlet-name>spring</servlet-name>
         <servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
         <load-on-startup>1</load-on-startup>
    </servlet>


     <servlet-mapping>
         <servlet-name>spring</servlet-name>
         <url-pattern>*.do</url-pattern>
     </servlet-mapping>


控制器

1、直接实现Controller 接口或AbstractController抽象类
2、用于直接跳转页面的ParameterizableViewController, UrlFilenameViewController
3、能封装表单参数的CommondController
4、在同一控制器类中处理多个请求的MultiActionController.具体调用的方法通过methodNameResolver决定
(InternalPathMethodResolver, ParameterMethodNameResolver,PropertiesMethodResolver)


方法签名

public (ModelAndView | Map | String | void) actionName(HttpServletRequest request, HttpServletResponse response, [,HttpSession] [,AnyObject]);


Handler Mapping

用于映射控制器

ModelAndView
ViewResolver
View

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
   <property name="mappings">
   <props>
   <prop key="toLogin.do">toLogin</prop>
   </props>
   </property>
   </bean>


跳转页面

ModelAndView
ViewResolver
View


例子:登陆

需要导入的包


JSP的准备


登陆的JSP

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'login.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><form method="post" action="login.do" name="loginForm"><p> username:<input type="text" name="username"></p><p> password:<input type="password" name="password"><br></p><p> <input type="submit" value="login" name="loginBtn"></p></form> </body></html>

成功页面的JSP

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'success.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>    This is my Success page. <br>    <h2>${name}</h2><h1>是广州恒大最帅的男人!</h1>      </body></html>

实体Bean

public class UserBean {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

登陆的控制器LoginBeanController

import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.validation.BindException;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.AbstractCommandController;public class LoginBeanController extends AbstractCommandController{@Overrideprotected ModelAndView handle(HttpServletRequest request,HttpServletResponse response, Object obj, BindException ex)throws Exception {// TODO Auto-generated method stubUserBean user = (UserBean)obj;//业务处理//跳转到相应页面,与要跳转的页面的名字相同ModelAndView mav = new ModelAndView("success");//页面将要取的值mav.addObject("name", user.getUsername());return mav;}}


配置文件

web.xml的配置

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  <servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></web-app>

springMVC-servlet.xml的配置

(取名和web.xml中servlet-name 的名字保持对应)

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-3.0.xsd"><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><prop key="login.do">login</prop></props></property></bean>   <bean id="login"class="com.lovo.mvc.controller.LoginBeanController"><property name="commandClass" value="com.lovo.bean.UserBean"></property></bean><!-- 返回视图的格式 --><beanclass="org.springframework.web.servlet.view.UrlBasedViewResolver"><property name="viewClass"value="org.springframework.web.servlet.view.JstlView"></property><property name="prefix" value="/"></property><property name="suffix" value=".jsp"></property></bean></beans>

效果








原创粉丝点击