亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Spring MVC基礎入門

2019-11-14 21:18:52
字體:
來源:轉載
供稿:網友
SPRing MVC基礎入門

Spring MVC簡介

Spring Web MVC是一種基于java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架,即使用了MVC架構模式的思想,將web層進行職責解耦,基于請求驅動指的就是使用請求-響應模型,框架的目的就是幫助我們簡化開發,Spring Web MVC也是要簡化我們日常Web開發的。

Spring Web MVC處理請求的流程:

具體執行步驟如下:

1、 首先用戶發送請求到前端控制器,前端控制器根據請求信息(如URL)來決定選擇哪一個頁面控制器進行處理并把請求委托給它;

2、 頁面控制器接收到請求后,進行功能處理,處理請求和創建相應的Model,處理完畢后返回一個ModelAndView(模型數據和邏輯視圖名);

3、 前端控制器收回控制權,然后根據返回的邏輯視圖名,選擇相應的視圖進行渲染,并把模型數據傳入以便視圖渲染;

4、 前端控制器將響應返回給用戶,至此整個結束。

Spring MVC Demo

寫一個簡單的例子來說明Spring MVC是如何工作的,該例子默認啟動一個歡迎頁面,并有一個login的頁面,輸入用戶名和密碼,當用戶名和密碼不為空返回“登錄成功”,當輸入有空時,則停留在login頁面,例子非常簡單。

新建一個Dynamic Web Project。

看web.xml的配置:

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">  <display-name>SpringMVC_01</display-name>  <welcome-file-list>      <!-- 默認啟動頁面 -->    <welcome-file>home.jsp</welcome-file>  </welcome-file-list>        <!-- 配置Spring MVC DispatcherServlet -->       <servlet>          <!--這里的name要和servlet-mapping里的name一樣-->        <servlet-name>SpringMVC</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>/WEB-INF/springConfig.xml</param-value>        </init-param>         <!-- startup時就load配置文件-->        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>SpringMVC</servlet-name>        <!-- servlet要攔截的地址格式 -->        <!-- <url-pattern>*.html</url-pattern> --> <!--  只攔截html -->        <url-pattern>/</url-pattern> <!--  所有的都攔截 -->    </servlet-mapping>        <!-- 監聽spring上下文容器 -->        <!--<listener>          <listener-class>              org.springframework.web.context.ContextLoaderListener          </listener-class>      </listener>  -->        <!-- 如果配置了ContextLoaderListener,就要配置這里的contextConfigLocation -->     <!--<context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath*:config/applicationContext.xml</param-value>      </context-param> -->    </web-app>

load-on-startup表示啟動容器時初始化該Servlet;

url-pattern表示哪些請求交給Spring Web MVC處理, “/” 是用來定義默認servlet映射的。也可以如“*.html”表示攔截所有以html為擴展名的請求。

注意配置Spring MVC DispatcherServlet:默認DispatcherServlet會加載WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件。即每個servlet都要有個配置文件,文件名為[Servlet名字]-servlet.xml配置文件。但這里我使用了contextConfigLocation來設置配置文件的文件名和路徑。

springConfig.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:mvc="http://www.springframework.org/schema/mvc"    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">    <!-- spring注解要掃描的包 -->    <context:component-scan base-package="com.spring.test" />    <bean        class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <!-- 配置還回的View的前綴和后綴 -->        <property name="prefix" value="/WEB-INF/pages/" />        <property name="suffix" value=".jsp" />    </bean></beans>

InternalResourceViewResolver:用于支持Servlet、JSP視圖解析;

prefix和suffix:查找視圖頁面的前綴和后綴(前綴[邏輯視圖名]后綴),比如傳進來的邏輯視圖名為hello,則該該jsp視圖頁面應該存放在“WEB-INF/pages/hello.jsp”;

login 頁面:

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>登錄</title></head><body><h2>登錄</h2> <form action="login.html" method="post">      username:<input type="text" name="username" />      <p>      passWord:<input type="password" name="password"/>      <p>      <input type="submit" value="submit" />      </form>      </body></html>

login成功頁面:

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>登錄成功</title></head><body><h2>登錄成功</h2> username:${username }  <p>password:${password } </body></html>

Home頁面:

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Hello Spring MVC</title></head><body>    <h2>spring mvc 歡迎你</h2>  </body></html>

Controller實現:

HomeController:

package com.spring.test;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;@Controllerpublic class HomeController {    @RequestMapping("/home")      public ModelAndView index(){          //創建模型跟視圖,用于渲染頁面。并且指定要返回的頁面為home頁面          ModelAndView mav = new ModelAndView("home");          return mav;      }  }

UserController:

package com.spring.test;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;@Controllerpublic class UserController {        @RequestMapping(value="/login")      public ModelAndView login(String username,String password){          //驗證傳遞過來的參數是否正確,否則返回到登陸頁面。          if(this.checkParams(new String[]{username,password})){              //指定要返回的頁面為succ.jsp              ModelAndView mav = new ModelAndView("success");              //將參數返回給頁面              mav.addObject("username",username);              mav.addObject("password", password);              return mav;          }          return new ModelAndView("login");      }         private boolean checkParams(String[] params){          for(String param:params){              if(param==""||param==null||param.isEmpty()){                  return false;              }          }          return true;      }      }

Spring常用注解:

@Autowired:Spring通過一個BeanPostProcessor對 @Autowired 進行解析,所以要讓 @Autowired 起作用必須事先在 Spring 容器中聲明 AutowiredAnnotationBeanPostProcessor Bean。

<!-- 該 BeanPostProcessor 將自動起作用,對標注 @Autowired 的 Bean 進行自動注入 --><bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

@Controller:通過@Controller標注即可將class定義為一個controller類,成為Spring的一個bean。為使Spring能找到定義為controller的bean,需要在spring配置文件中增加如下配置:

<context:component-scan base-package="com.spring.test" />

@RequestMapping:在類定義處和方法定義處使用 @RequestMapping 注解,就可以很容易通過URL參數指定Controller的處理方法了。

@RequestParam:通過 @RequestParam 注解指定綁定的URL參數。

@RequestMapping(params = "method=listBoardTopic")public String listBoardTopic(@RequestParam("id") int topicId,User user)

對listBoardTopic()請求處理方法的 topicId 入參標注了 @RequestParam("id") 注解,所以它將和id的URL參數綁定。

運行結果:

源碼下載:http://download.csdn.net/detail/luxiaoxun/8029561

參考:

Spring Framework 主頁:http://projects.spring.io/spring-framework/

Spring Framework Source Code:https://github.com/spring-projects/spring-framework

Spring MVC document: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html

Spring注解:http://www.ibm.com/developerworks/cn/java/j-lo-spring25-mvc/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲无亚洲人成网站77777| 久久久久久成人精品| 国产精品视频1区| 亚洲性生活视频在线观看| 欧美剧在线观看| 国产999精品久久久| 最近更新的2019中文字幕| 国产精品都在这里| 日韩电影在线观看中文字幕| 热草久综合在线| 不用播放器成人网| 国产一区二区免费| 欧美日韩一区二区免费在线观看| 欧美最顶级丰满的aⅴ艳星| 欧美久久精品午夜青青大伊人| 国产精品久久久av| 成人妇女淫片aaaa视频| 成人h视频在线| 成人免费网站在线观看| 欧美激情极品视频| 成人两性免费视频| 欧美电影免费观看高清完整| 国产精品99导航| 国产精品视频色| 日韩成人av网址| 亚洲女人被黑人巨大进入| 国产精品劲爆视频| 国产精品久久久久久久app| 久久视频在线直播| 亚洲综合最新在线| 国产精品黄页免费高清在线观看| 日韩欧美国产黄色| 欧美成人午夜剧场免费观看| 国产精品久久久| 一区二区三区国产在线观看| 日韩精品欧美激情| 一区二区三区回区在观看免费视频| 欧美成人精品一区| 国产婷婷色综合av蜜臀av| 日韩精品视频在线观看网址| 国产精品∨欧美精品v日韩精品| 欧美裸身视频免费观看| 亚洲男人第一网站| 正在播放亚洲1区| 亚洲开心激情网| 久久久亚洲影院| 91精品久久久久久久久久久| 久久影视电视剧免费网站清宫辞电视| 欧美高清视频在线播放| 亚洲xxxx妇黄裸体| 九九精品视频在线| 国产精品视频网站| 懂色av一区二区三区| 日韩精品黄色网| 国产精品福利在线观看| 久久九九热免费视频| 在线电影中文日韩| 色婷婷综合久久久久中文字幕1| 欧美激情亚洲精品| 亚洲国产精品成人一区二区| 亚洲日本中文字幕| 日韩精品极品毛片系列视频| 国产精品久久一区| 大胆欧美人体视频| 欧美肥臀大乳一区二区免费视频| 成人福利网站在线观看11| 久久久av免费| 国产精品旅馆在线| 久久久久久美女| 欧美精品videossex88| 亚洲国产毛片完整版| 色妞久久福利网| 亚洲国产第一页| 日韩激情在线视频| 国产精品第3页| 久久久久久这里只有精品| 91tv亚洲精品香蕉国产一区7ujn| 久久久久久久国产精品视频| 国产精品9999| 国产精品久久久久免费a∨大胸| 色狠狠av一区二区三区香蕉蜜桃| 中文字幕精品www乱入免费视频| 国语自产偷拍精品视频偷| 亚洲黄色有码视频| 亚洲大胆美女视频| 欧美中文在线字幕| 国产精品高潮呻吟视频| 国产成人一区二区三区电影| 国产日本欧美一区二区三区在线| 亚洲精品视频网上网址在线观看| 国产精品青草久久久久福利99| 色偷偷噜噜噜亚洲男人| zzijzzij亚洲日本成熟少妇| 日韩成人av网| 97碰碰碰免费色视频| 欧美日韩国产丝袜另类| 永久免费看mv网站入口亚洲| 日韩最新中文字幕电影免费看| 日韩美女写真福利在线观看| 日韩在线免费观看视频| 成人精品在线视频| 欧美黄色免费网站| 久久久久久久91| 国产视频999| 亚洲欧美国产va在线影院| 日韩av影院在线观看| 国产日本欧美在线观看| 国产成人精品久久二区二区91| 亚洲白虎美女被爆操| 欧美亚洲成人免费| 日韩视频免费看| 日韩精品视频在线观看网址| 亚洲国产精品系列| 日本精品视频在线播放| 精品国产乱码久久久久久天美| 日韩av理论片| 国产亚洲欧美aaaa| 国产精品久久精品| 精品久久中文字幕久久av| 日本在线观看天堂男亚洲| 国产精品第2页| 日韩精品在线观看视频| 亚洲精品福利免费在线观看| 17婷婷久久www| 精品一区二区三区三区| 91久久精品在线| 国产精品久久久久久av下载红粉| 精品久久久久久久大神国产| 久久久久久久久久久免费精品| 91亚洲午夜在线| 亚洲美女av在线播放| 日本精品久久电影| 日韩亚洲精品电影| 久久久久久久成人| 国产精品国产三级国产专播精品人| 亚洲综合第一页| 91久久久久久| 国产视频精品在线| 亚洲社区在线观看| 浅井舞香一区二区| 国产精品视频xxx| 国产亚洲精品一区二555| 日本成熟性欧美| 一本大道久久加勒比香蕉| 在线观看国产精品淫| 色伦专区97中文字幕| 色妞久久福利网| 国产精品视频免费在线观看| 国产午夜精品全部视频在线播放| 78m国产成人精品视频| 国产精品免费久久久久久| 日韩在线观看精品| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品一区二区av影院萌芽| 精品一区二区亚洲| 欧美成人中文字幕在线| 日韩免费av一区二区| 欧美性猛交xxxx乱大交极品| 国产成人福利网站| 国内精品免费午夜毛片| 成人亚洲激情网| 疯狂蹂躏欧美一区二区精品| 亚洲xxx自由成熟| 成人久久久久久|