從零開始搭建SpringMVC框架以及最簡單的 Hello World 例項
1Java環境要求:
1.1JDK 1.6
下載的是:jdk1.6.0_45-windows-x64.exe
安裝路徑:
將JDK下載後解壓,我的解壓路徑是:C:\Program Files (x86)\Java
新增環境變數,
A、屬性名稱:JAVA_HOME
屬性值:C:\Program\Files\Java\jdk1.6.0_02
B、屬性名稱:PATH
屬性值:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
C、屬性名稱:CLASSPATH
屬性值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
注意要加.表示當前路徑,另外,%JAVA_HOME%就是引用前面指定的JAVA_HOME
新增JAVA_HOME,
然後繼續新建CLASSPATH和Path環境變數:
別忘了最後有個點號,表示當前路徑
在Path環境變數後面新增
至此,Java JDK算是配置好了。
2安裝eclipse
注意JDK 和 eclipse的版本和電腦上作業系統的版本關係不大,
主要是JDK和eclipse要求是同一版本,要麼都是32位,要麼都是64位,
否則啟動eclipse會出錯。
我下載的是:eclipse-jee-luna-SR1a-win32_20150313.zip
直接解壓就可以用了。解壓目錄:
雙擊.exe可執行檔案即可開啟eclipse。
3.tomcat
伺服器 tomcat 6.0
下載apache-tomcat-6.0.43.tar.gz
直接解壓即可使用,不用安裝,解壓目錄:
環境變數的配置與JDK一樣,在環境變數中新增tomcat路徑就好:
CATALINA_BASE=H:\apache-tomcat-6.0.43
CATALINA_HOME=H:\apache-tomcat-6.0.43
接下來在eclipse中配置tomcat:
新增新的Server執行時配置。點選Eclipse選單,【Window】/【Preferences】,展開【Server】/【Runtime Environments】,
這樣,tomcat就配置好了。
4.mysql
接下來開始安裝資料庫
先下載.zip版本,直接解壓就可以了:MySQL-5.6.26-winx64.zip
下載後解壓即可,解壓路徑: H:\mysql
接下來修改配置檔案my-default.ini
環境變數中,在Path後面增加mysql路徑
免得每次執行bin目錄下的命令都要輸入全路徑。
接下來檢測資料庫是否安裝成功:
在管理員模式下執行cmd:
進入mysql/bin目錄下,執行命令 mysqld -install
這樣就可以啟動mysql,接著執行命令:net start mysql 來連線資料庫:
連線成功後輸入命令:mysql -u root -p
就會以根使用者身份進入資料庫,預設密碼為空,直接按回車即可
輸入命令:show databases; 可以檢視資料庫
輸入命令:use test; 表示使用test資料庫
並用create命令在test資料庫中新建了一張表,
表的名稱為YY,分別有3個欄位,id, name ,mail.
注意: 1 database是複數, 2 每一條sql語句都要以英文的分號“;”結束。
往YY表中用insert int 語句插入一條記錄:
再用select語句查詢:
這樣,說明資料庫已經安裝成功,並能正常使用。
在命令列模式下管理資料庫的話明顯不太方便,
接下來可以下載一個有UI來管理mysql的軟體:navigate
下載軟體: Navicat for MySQL.rar
按照提示安裝完畢後,執行navigate即可。
首先新建一個連線,然後設定好主機和埠號等。
接下來可以在navigate裡面來管理資料庫了:
在上面可以清晰的看到資料庫裡的資料。
也可以直接在上面修改資料,新增資料等操作。
至此,資料庫就安裝好了。
那接下來就是在eclipse中連線mysql
首先需要下載mysql的驅動 mysql-connector-java,之後才可以順利使eclipse連線到資料庫
在mysql 官網中只有.mis, 個人偏向於 .zip版本,在CSDN即可下載,
下載:mysql-connector-java-5.1.5.ZIP,然後直接解壓即可。
裡面有一個jar包:mysql-connector-java-5.1.5-bin.jar
這是eclipse用來連線mysql必須要的jar包驅動。
把這個jar包放到tomcat安裝目錄裡面common/lib下
之後等工程建好後再把jar包新增進去就好了。
這樣軟體方面就基本配置好了。
可以準備建立工程,搭建框架來實現hello world了
5.Dynamic Web Project
接下來就開始新建一個Dynamic Web Project
直接new一個就好了,這裡工程命名為springmvc.
點選finish一個工程就建好了。
目錄如下:
接下來把上一步中的mysql-connectro-java-5.1.5-bin.jar
複製到WEB-INF/lib 目錄下
然後選中工程名稱,滑鼠右鍵,在最下面選擇properties -> java build path ->Library -> Add Library -> User Library ->Add External JARs…
這樣就把mysql 和 eclipse的驅動連線好了。
剩下的就是在配置檔案裡設定好連線引數,eclipse就可以訪問資料庫了。
到這裡,我們就把Java環境,eclipse,mysql,tomcat配置好了。
6.SpringMVC 框架
接下來就是開始搭建簡單的SpringMVC框架了
首先需要準備好 jar包
將這些jar包複製到 WEB-INF/lib目錄下,
接著在WebContent目錄下新建一個index.jsp檔案
[html] view plain copy print?- <%@ page language=“java”contentType=“text/html; charset=ISO-8859-1”
- pageEncoding=“ISO-8859-1”%>
- <!DOCTYPE html PUBLIC ”-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
- <html>
- <head>
- <title>Spring 3.0 MVC demo</title>
- </head>
- <body>
- <ahref=“hello.html”>Say Hello</a>
- </body>
- </html>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Spring 3.0 MVC demo</title>
</head>
<body>
<a href="hello.html">Say Hello</a>
</body>
</html>
在WEB-INF目錄下新建兩個配置檔案,分別是web.xml 和 spring-servlet.xml
web.xml檔案程式碼如下:
[html] view plain copy print?- <?xmlversion=“1.0”encoding=“UTF-8”?>
- <web-appversion=“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”>
- <display-name>Spring3MVC</display-name>
- <servlet>
- <servlet-name>spring</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <!– load-on-startup:表示啟動容器時初始化該Servlet; –>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>spring</servlet-name>
- <!– url-pattern:表示哪些請求交給Spring Web MVC處理, “/” 是用來定義預設servlet對映的。 –>
- <!– 也可以如“*.html”表示攔截所有以html為副檔名的請求。 –>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- <!– 自此請求已交給Spring Web MVC框架處理,因此我們需要配置Spring的配置檔案, –>
- <!– 預設DispatcherServlet會載入WEB-INF/[DispatcherServlet的Servlet名字,也就是上面的spring]-servlet.xml配置檔案。 –>
- <!– 即spring-servlet.xml –>
- </web-app>
<?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">
<display-name>Spring3MVC</display-name>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- load-on-startup:表示啟動容器時初始化該Servlet; -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<!-- url-pattern:表示哪些請求交給Spring Web MVC處理, “/” 是用來定義預設servlet對映的。 -->
<!-- 也可以如“*.html”表示攔截所有以html為副檔名的請求。 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 自此請求已交給Spring Web MVC框架處理,因此我們需要配置Spring的配置檔案, -->
<!-- 預設DispatcherServlet會載入WEB-INF/[DispatcherServlet的Servlet名字,也就是上面的spring]-servlet.xml配置檔案。 -->
<!-- 即spring-servlet.xml -->
</web-app>
spring-servlet.xml程式碼如下:
[html] view plain copy print?- <?xmlversion=“1.0”encoding=“UTF-8”?>
- <beansxmlns=“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”>
- <context:component-scanbase-package=“net.spring.controller”/>
- <!– 在Spring配置檔案中配置ViewResolver –>
- <!– InternalResourceViewResolver:用於支援Servlet、JSP檢視解析;
- viewClass:JstlView表示JSP模板頁面需要使用JSTL標籤庫,classpath中必須包含jstl的相關jar包;
- prefix和suffix:查詢檢視頁面的字首和字尾(字首[邏輯檢視名]字尾),
- 比如傳進來的邏輯檢視名為hello,則該該jsp檢視頁面應該存放在“WEB-INF/jsp/hello.jsp”; –>
- <beanid=“viewResolver”
- class=“org.springframework.web.servlet.view.UrlBasedViewResolver”>
- <propertyname=“viewClass”
- value=“org.springframework.web.servlet.view.JstlView”/>
- <propertyname=“prefix”value=“/WEB-INF/jsp/”/>
- <propertyname=“suffix”value=“.jsp”/>
- </bean>
- </beans>
<?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">
<context:component-scan base-package="net.spring.controller" />
<!-- 在Spring配置檔案中配置ViewResolver -->
<!-- InternalResourceViewResolver:用於支援Servlet、JSP檢視解析;
viewClass:JstlView表示JSP模板頁面需要使用JSTL標籤庫,classpath中必須包含jstl的相關jar包;
prefix和suffix:查詢檢視頁面的字首和字尾(字首[邏輯檢視名]字尾),
比如傳進來的邏輯檢視名為hello,則該該jsp檢視頁面應該存放在“WEB-INF/jsp/hello.jsp”; -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
在jsp目錄下新建一個hello.jsp 檔案
[html] view plain copy print?- <prename=“code”class=“java”><%@ page language=“java”contentType=“text/html; charset=ISO-8859-1”
- pageEncoding=“ISO-8859-1”%>
- <%@ taglib prefix=“c”uri=“http://java.sun.com/jsp/jstl/core” %>
- <!DOCTYPE html PUBLIC ”-//W3C//DTD HTML 4.01 Transitional//EN”
- “http://www.w3.org/TR/html4/loose.dtd”>
- <html>
- <head>
- <metahttp-equiv=“Content-Type”content=“text/html; charset=ISO-8859-1”>
- <title>Spring mvc demo</title>
- </head>
- <body>
- <p> This is my message: ${message} </p>
- </body>
- </html>
<pre name="code" class="java"><%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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>Spring mvc demo</title>
</head>
<body>
<p> This is my message: ${message} </p>
</body>
</html>
在Java Resources資原始檔夾下新建一個包:net.spring.controller,
在包目錄下新建一個HelloWorldController.java檔案
程式碼如下:
[java] view plain copy print?- package net.spring.controller;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.servlet.ModelAndView;
- @Controller
- publicclass HelloWorldController {
- @RequestMapping(“/hello”)
- public ModelAndView helloWorld() {
- String me = ”Hello World, Spring 3.0!”;
- //ModelAndView: 包含了試圖要實現的模型資料和邏輯檢視名
- //message 為資料的名稱,在檢視中用來引用的名字
- //me 是對應的值
- //hello 是對應檢視的名字。
- ModelAndView modelAndView = new ModelAndView();
- modelAndView.addObject(”message”, me);
- modelAndView.setViewName(”hello”);
- return modelAndView;
- //以上4個語句相當於一下一句:
- //return new ModelAndView(“hello”,”message”,me);
- }
- }
package net.spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloWorldController {
@RequestMapping("/hello")
public ModelAndView helloWorld() {
String me = "Hello World, Spring 3.0!";
//ModelAndView: 包含了試圖要實現的模型資料和邏輯檢視名
//message 為資料的名稱,在檢視中用來引用的名字
//me 是對應的值
//hello 是對應檢視的名字。
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("message", me);
modelAndView.setViewName("hello");
return modelAndView;
//以上4個語句相當於一下一句:
//return new ModelAndView("hello","message",me);
}
}
最後,整個工程的目錄是這樣子的:
開始執行時,選擇該專案,滑鼠右鍵,選擇Run As —> Run On Server
然後選擇
這樣就可以允許專案了。
就可以看到index.jsp 渲染的歡迎介面:
點選 Say Hello 超連結,就可以跳轉到 hello.jsp頁面了
到這裡,我們的專案就基本成功了。
現在hello world只實現了基於簡單的SpringMVC框架來實現web訪問,後續可以加上資料庫的訪問。