springMVC初探--環境搭建和第一個HelloWorld簡單項目


注:此篇為學習springMVC時,做的筆記整理.

MVC框架要做哪些事情?

  a,將url映射到java類,或者java類的方法上

  b,封裝用戶提交的數據

  c,處理請求->調用相關的業務處理—>封裝響應的數據

  d,將響應的數據進行渲染

springMVC框架有什么優點?

        性能比struts2好

        簡單便捷易學,能進行更簡潔的web層開發

        天生和spring無縫集成

        使用約定優於配置

        能夠進行簡單junit測試

        支持restful風格

        異常處理,本地化國際化,數據驗證,攔截器

   提供一套強大的JSP標簽庫,簡化JSP開發

簡單了解springMVC的結構和流程

  這是在網上找到的一張springmvc的結構流程圖:

    

環境搭建和hello springMVC簡單案例

1.配置文件開發(非注解方式)

  a.導入相關jar包 

commons-logging-1.1.3.jar

spring-beans-4.2.5.RELEASE.jar

spring-context-4.2.5.RELEASE.jar

spring-context-support-4.2.5.RELEASE.jar

spring-core-4.2.5.RELEASE.jar

spring-expression-4.3.0.RELEASE.jar

spring-web-4.2.5.RELEASE.jar

spring-webmvc-4.2.5.RELEASE.jar

spring-aop-4.3.0.RELEASE.jar

  b..在web.xml中配置DispatcherServlet

<!-- 配置分發器Dispatcher -->
  <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>

  c.添加Springmvc配置文件,默認在WEB-INF目錄下添加,springmvc-servlet.xml

<?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.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
        <!-- 配置HandlerMapping -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
    <!-- 配置HandleAdapter -->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
    <!-- 配置渲染器 -->
    <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <!-- 結果視圖的前綴 -->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!-- 結果視圖的后綴 -->
        <property name="suffix" value=".jsp"/>
    </bean>
    <!-- 配置請求和處理器 -->
    <bean name="/hello.do" class="com.wang.controler.HelloControler"></bean>


</beans>

  d.編寫HelloControler.java

package com.wang.controler;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class HelloControler implements Controller{

    @Override
    public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        ModelAndView mv=new ModelAndView();
        mv.addObject("msg","hello springmvc");
        System.out.println("111");
        mv.setViewName("hello");
        return mv;
    }
    
}

 在WEB-INF目錄下新建hello.jsp,簡單寫一句表達式${msg},瀏覽器中測試即可.

  使用注解方式

  a.導jar包(相同)

  b.在web.xml中配置DispatcherServlet(這次配置一個contextConfigLocation參數,以將mvc.xml放在src目錄下):

<servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:mvc.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <url-pattern>*.do</url-pattern>
  </servlet-mapping>

  c.在src目錄下新建mvc.xml文件:

<?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.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
        <!-- 配置渲染器 -->
    <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <!-- 結果視圖的前綴 -->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!-- 結果視圖的后綴 -->
        <property name="suffix" value=".jsp"/>
    </bean>
    <!-- 配置需要掃描的包(重點) -->
    <context:component-scan base-package="com.wang.controller"/>
</beans>

  d.src目錄下新建HelloController.jar(重點):

package com.wang.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloController {
    @RequestMapping("/hello")
    public ModelAndView hello(HttpServletRequest req,HttpServletResponse res){
        ModelAndView mv=new ModelAndView();
        mv.addObject("msg", "hello world");
        mv.setViewName("hello");
        return mv;
    }
}

參考博文http://jinnianshilongnian.iteye.com/blog/1594806


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM