Spring學習日記(三)搭建MVC基本開發環境
一、準備工作
1、新建web project
2、新增spring開發支援
此時會自動配置上web包,其中包含了springMVC支援。也就是說可以直接在專案中使用Spring MVC了
3、定義相關配置
(1)Spring MVC的所有配置都要在applicationContext.xml檔案
<!-- mvc的配置也是基於annotation實現的 --> <context:annotation-config/> <context:component-scan base-package="cn.mldn"/> <!-- 定義Spring MVC的處理 --> <mvc:annotation-driven/> <mvc:default-servlet-handler/>
(2)配置web.xml檔案
最好的MVC設計,所有的控制器的處理使用Servlet完成,springMVC也是的
從下面的程式程式碼可以看出:使用了Servlet進行所有Action的分配處理,也就證明,開發之中,過濾器可以用於所有的驗證操作。
<!-- 此部分是負責Spring容器啟動的,即使有spring MVC,這部分也不可少--> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!-- 配置springMVC中要用的控制器 --> <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:applicationContext.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> </web-app>
4、演示一下程式碼
(1)新建一個action類
package cn.mldn.action;
import javax.xml.ws.Dispatch;
import org.springframework.web.servlet.DispatcherServlet;
public class MessageAction {
public void print() {
}
}
(2)將專案釋出到TOMCAT上:暫時不會
二、Spring MVC的基本操作
用最原始的方式來實現。資料型別全是vo型別
1、建立一個Message.java類
public class Type { private String title; //生成setter/getter/toString
public class Message {
private Integer mid;
private String title;
private Double priceDouble;
private Date pubDate;
//生成setter/getter/toString
2、定義action
定義MessageAction,進行資料的接收
@Controller //定義了一個控制器
@RequestMapping("/pages/back/message/*") //整體訪問路徑
public class MessageAction {
@RequestMapping("hello_demo") //為demo方法定義對映子空間
public void demo(Message msg) {
System.out.println(msg);
}
}
3、由於是第一次執行,可以利用地址重寫的方式傳遞所要的資料
(1)點選圖示的那個按鍵:
(2)將專案新增到Tomcat,myeclipse好像自己有Tomcat,不過我事先也已經裝好了,如果不知道怎麼下載安裝,請點選此連結
(3)選擇start
(4)觀察到結果欄有資料,年月日一堆字母等等,就對了。再點選綠色開始按鍵。
此時,觀察myeclipse結果欄
說明請求有被傳過來
特點:控制器中不需要再編寫類屬性來接收引數,所有的引數都直接放到了處理的業務方法上,同時避免了例項化物件的問題。
傳遞的引數只需要傳遞屬性名稱即可,如果傳遞的是引用的資料型別,則要按照“.”排列即可(例如:type.title)
4、後臺可以輸出資訊,但是前臺顯示404,原因:對於返回值的處理,在springMVC中有一些要求
在正常的開發環境之中,往往提供一個forward.jsp頁面,功能是進行操作完成後的資訊提示。
(1)建立一個forward.jsp介面,並修改內容(重點看body部分),一般情況下,都這麼寫的
<%@ 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 'index.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>
<script type="text/javascript">
window.alert("${msg}")
window.location="<%=basePath%>${url}"
</script>
</body>
</html>
要想由一個控制器跳轉到forward介面,至少需要兩個東西
- 控制器要知道forward介面的路徑
- 需要傳遞若干個request屬性
在springMVC中提供一個類:org.springframework.web.servlet.ModelAndView,很重要!使用ModelAndView類用來儲存處理完後的結果資料,以及顯示該資料的檢視
- 儲存方法:ModelAndView addObject(String attributeName, Object attributeValue)
5、更好地處理跳轉
import cn.mldn.vo.Message;
@Controller //定義了一個控制器
@RequestMapping("/pages/back/message/*") //整體訪問路徑
public class MessageAction {
@RequestMapping("hello_demo") //為demo方法定義對映子空間,沒有指定請求方法(有GET/POST兩種)
public ModelAndView demo(Message msg) {
ModelAndView mav=new ModelAndView("/pages/forward.jsp");
mav.addObject("msg", "訊息資訊新增成功");
mav.addObject("url","/index.jsp");
System.out.println(msg);
return mav;
}
}
重新執行專案
總結:springMVC的優勢
- 避免了過於複雜的頁面跳轉路徑的配置操作
- 避免了專案之中出現過多的“.”作為引數的情況
相關推薦
Spring學習日記(三)搭建MVC基本開發環境
一、準備工作 1、新建web project 2、新增spring開發支援 此時會自動配置上web包,其中包含了springMVC支援。也就是說可以直接在專案中使用Spring MVC了 3、定義相關配置 (1)Spring MVC的所有配置都要在a
3ds Max學習日記(三)
arc 操作 自己 https img 螺旋 沒有 hello 就是 ??今天把第三章搞完了,學的是樣條線(splines)建模的一些操作。不過實習又有新任務了,得去研究一下如何將單張圖片轉化為三維模型(我擦,這神馬操作),所以可能沒有那麽多時間愉快地與3ds max玩耍了
Spring 學習歷程(三)
Bean容器初始化 基礎 org.springframework.beans org.springframework.context BeanFactory提供配置結構和基本功能,載入並初始化Bean ApplicationContext儲存了Bean物件,並且
快速開發框架SpringBoot-學習日記(三)
第2章 Spring Boot重要用法 Spring Boot中使用JSP頁面 步驟: 在src/main下建立webapp目錄 將webapp目錄指定的web資源目錄 匯入JSP引擎內建Tomcat的jasper<!--Sprin
Springboot學習日記(三)自動裝配
Spring模式註解裝配 定義:一種用於宣告在應用中扮演“元件”角色的註解。 舉例:@Component、@Service、@Configuration 裝配:<context:component-scan>(Spring 2.5) @ComponentScan(Spring 3.0) 複製程式
python學習日記(三)
今天最後一次更新部落格,終於也學完了一天的東西了!開心!以後就每次學完就更新,不拖更! 最後一講主要是學了python的資料型別。雖然說在python裡面不像c一樣,需要加變數型別來宣
Spring學習手札(三)理解IoC 拯救不開心
Inverse of Control,翻譯成“控制反轉”,是Spring的核心。IoC不是一種技術,而是一種設計思想。就是將原本在程式中手動建立物件的控制權(new Object() ),交由Spring容器來管理控制。不用new物件,直接從Spring那裡獲取一個物件(其內部使用的是反射技術)。
Spring 學習筆記(三)IOC之XML方式配置 第二回Bean節點屬性的配置
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/X
Spring 學習筆記(三)IOC之XML方式配置 第一回 javaBean的配置與獲取
IOC的兩種方式: XML方式 註解方式 XML方式 需要的jar包 spring-beans-4.3.3.RELEASE.jar spring-context-4.3.3.RELEASE.jar spring-context-support
嵌入式學習日記(三)
2018年11月08日 21:59:30 huyz_2008 閱讀數:12 個人分類: 嵌入式學習
numpy學習日記(三)
numpy裡要分清有哪些方法獲得的陣列是原始陣列的檢視,這樣的陣列它們共享了同一個資料記憶體,修改其中一個數組內的元素,另外的也會發生變化 獲取素組序列有兩種方法 1:使用整數序列存取元素 使用下標獲取元素 使用此方法獲得的陣列將
Spring學習日記(二)AOP的深入操作
上次的AOP操作簡單,但對初學者而言,刪繁就簡地體現了aop的設計思想。但有些過於簡化了,本次將把引數帶入到aop的操作中。 一、前置通知中含引數 1、修改切面處理類:改寫serviceBefore(),使其含有引數 public void serviceBefor
Spring學習筆記(三)資料庫的操作
資料庫的操作 首先增加依賴,在pom.xml中增加以下依賴 <!-- JPA --> <dependency> <groupId>org.springf
Makefile 學習日記(三)——makefile的瘦身
還是先看例子: 原料:main.c printfun.c methed.c 及其.h檔案 //main.c #include "main.h" void main() { print_f(); printf("\n%
VBS學習日記(三) 執行外部程式
利用 Vbs 執行外部程式 Vbs 只提供了程式設計的一個基本框架,使用者可以使用 Vbs 來定義變數、過程和函式, vbs 也提供了一些內部函式和物件,但是 Vbs 沒有提供任何命令來訪問 Windows 系統內部的部件,但是值得慶幸的是,Vbs 雖然不能自己完成這些任務
JavaWeb學習日記(三)
DTD語法(要求不高,不要求寫,要求會讀) 兩種寫法 引入中寫的:SYSTEM,表示當前的DTD檔案是本地的 如果寫的是:PUBLIC,則表示引入的DTD檔案是來自於網路的 在XML內部 <?xml version="1.0" encodi
Unity3D學習日記(三)貝塞爾曲線
這裡有很多小夥伴可能不知道啥事貝塞爾曲線是啥玩意,如果你用過PS的鋼筆功能就知道這是啥,如果還是不知道這是啥那麼說一個遊戲你就知道了“憤怒的小鳥”這個遊戲用到彈弓效果可以用這個貝塞爾曲線來實現。還不知道的話拿自己去百度谷歌,這個是遊戲很常用到的一個畫曲線的函式方式。 那麼我
安卓學習(1)——搭建安卓開發環境:Eclipse+ADT+Android SDK
安裝JDK 這裡可以參考我之前寫的一篇關於安裝JDK的教程, 請看下面連結吧。 安裝Eclipse Eclipse 是一個開放原始碼的、基於Java的可擴充套件開發平臺。就其本身而言,它只是一個框架和一組服務,用於通過外掛元件構建開發環境。幸運的是,Eclipse 附帶了一個標準的外掛集,包括Java開發工
資料分析與挖掘入門——學習筆記(三)numpy的基本函式使用
numpy的基本函式使用 1 通用函式彙總 一元函式 函式 說明 abs,fabs 計算整數、浮點數或複數的絕對值,對於非複數值,可以使用更快的fabs sqrt 計算各元素的平方根 square
Spring事務專題(三)事務的基本概念,Mysql事務處理原理
# 前言 本專題大綱: ![專欄大綱](https://gitee.com/wx_cc347be696/blogImage/raw/master/image-20200725231232778.png) 我重新整理了大綱,思考了很久,決定單獨將MySQL的事務實現原理跟Spring中的事務示例分為兩篇文