Spring mvc 入门实例

1、MVC的请求流程

(1)客户端将请求提交到DispatcherServlet

 (2) DispatcherServlet查询一个或多个HandlerMapping找到处理请求的Controler

(3)Dispatcher将请求提交到Controller

(4)conttroller调用业务逻辑处理后,返回ModelAndView

 (5) DispatcherServlet 查询一个或多个ViewResolver视图解析器,找到ModelAndView指定的 视图

(6)视图负责将结果显示在客户端

2、Spring mvc 建立的步骤

(1)新建web project

 (2)添加Spring 支持

(3)修改web.xml,配置DispatcherServlet

 (4)实现Model层

(5)实现Controller层

(6)实现View层

(7)修改applicationContext.xml

3、web.xml的配置

<servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

4、model层

public class Account {
   private String id;
   private String name;
    private float balance;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public float getBalance() {
        return balance;
    }

    public void setBalance(float balance) {
        this.balance = balance;
    }
}

5、Controller层

public class loginControler extends AbstractController {
    public String formView;
    public String successView;

    public String getFormView() {
        return formView;
    }

    public void setFormView(String formView) {
        this.formView = formView;
    }

    public String getSuccessView() {
        return successView;
    }

    public void setSuccessView(String successView) {
        this.successView = successView;
    }

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        // 获取Id 和姓名
        String id = request.getParameter("id");
        String name = request.getParameter("name");
        // 业务逻辑进行判断
        Account account = getAccount(id, name);
        Map<String, Object> model = new HashMap<String, Object>();
        if (account != null) {
            model.put("account", account);
            return new ModelAndView(getSuccessView(), model);
        } else {
            model.put("error", "找不到对象");
            return new ModelAndView(getFormView(), model);
        }
    }

    public Account getAccount(String id, String name) {
        if (id.equals("123") && name.equals("456")) {
            Account account = new Account();
            account.setId(id);
            account.setName(name);
            account.setBalance(1.23f);
            return account;
        } else {
            return null;
        }

    }
}

6、配置applicationContext.xml的配置

<bean id="loginControler" class="com.yyw.servlet.loginControler">
        <property name="formView" value="login"></property>
        <property name="successView" value="showAccount"></property>
    </bean>
    <!-- 配置controler和url地址的映射关系 --><!-- 比较固定在以后的开发过程中可以直接利用 -->
    <bean id="urlMapping"
        class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/login.do">loginControler</prop>
            </props>
        </property>
    </bean>
    <!-- 配置视图解析器 -->
    <bean id="viewresolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

handlemapping和viewResolver的配置都比较固定,可以在实际开发过程中直接使用,只需要在loginController中进行定义即可

posted @ 2013-01-23 16:52  Peter_youny  阅读(455)  评论(0编辑  收藏  举报