搭建最簡單的SpringMVC框架
阿新 • • 發佈:2019-01-02
[html]
view plain
copy
print?
說明:其中字符集過濾器部分不是必須的,但是如果要處理中文的話,最好還是加上。
<context:component-scan base-package="com.my.web" />中的路徑,com.my.web,是需要在src/main/java中建立的包,用來放Java程式碼。
4.2新增依賴,在<dependencies>標籤中 [html] view plain copy print?
新增完成之後,通過更新工程,就會自動引入所依賴的jar包。
- <?xmlversion="1.0"encoding="UTF-8"?>
- <web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- version="3.0">
- <display-name>Archetype Created Web Application</display-name>
- <!-- spring MVC的核心就是DispatcherServlet,使用springMVC的第一步就是將下面的servlet放入web.xml
- servlet-name屬性非常重要,預設情況下,DispatchServlet會載入這個名字-servlet.xml的檔案,如下,就會載入
- dispather-servlet.xml,也是在WEN-INF目錄下。
- -->
- <servlet>
- <servlet-name>dispatcher</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <!-- 設定dispatchservlet的匹配模式,通過把dispatchservlet對映到/,預設servlet會處理所有的請求,包括靜態資源 -->
- <servlet-mapping>
- <servlet-name>dispatcher</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <!-- 字符集過濾器 -->
- <filter>
- <filter-name>encodingFilter</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- <init-param>
- <param-name>forceEncoding</param-name>
- <param-value>true</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>encodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- </web-app>
說明:其中字符集過濾器部分不是必須的,但是如果要處理中文的話,最好還是加上。
3.在WEN-INF目錄下建立dispatcher-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:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xmlns:p="http://www.springframework.org/schema/p"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd"
- default-lazy-init="true">
- <!-- 通過mvc:resources設定靜態資源,這樣servlet就會處理這些靜態資源,而不通過控制器 -->
- <!-- 設定不過濾內容,比如:css,jquery,img 等資原始檔 -->
- <mvc:resourceslocation="/*.html"mapping="/**.html"/>
- <mvc:resourceslocation="/css/*"mapping="/css/**"/>
- <mvc:resourceslocation="/js/*"mapping="/js/**"/>
- <mvc:resourceslocation="/images/*"mapping="/images/**"/>
- <!-- 添加註解驅動 -->
- <mvc:annotation-driven/>
- <!-- 預設掃描的包路徑 -->
- <context:component-scanbase-package="com.my.web"/>
- <!-- mvc:view-controller可以在不需要Controller處理request的情況,轉向到設定的View -->
- <!-- 像下面這樣設定,如果請求為/,則不通過controller,而直接解析為/index.jsp -->
- <mvc:view-controllerpath="/"view-name="index"/>
- <beanclass="org.springframework.web.servlet.view.UrlBasedViewResolver">
- <propertyname="viewClass"value="org.springframework.web.servlet.view.JstlView"></property>
- <!-- 配置jsp路徑字首 -->
- <propertyname="prefix"value="/"></property>
- <!-- 配置URl字尾 -->
- <propertyname="suffix"value=".jsp"></property>
- </bean>
- </beans>
<context:component-scan base-package="com.my.web" />中的路徑,com.my.web,是需要在src/main/java中建立的包,用來放Java程式碼。
4.使用maven引入SpringMVC所依賴的jar包。
修改pom.xml檔案
4.1新增屬性,在<project>標籤中
[html] view plain copy print?- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <spring.version>3.1.2.RELEASE</spring.version>
- </properties>
4.2新增依賴,在<dependencies>標籤中 [html] view plain copy print?
- <!-- spring begin -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jdbc</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aop</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <!-- spring end -->
新增完成之後,通過更新工程,就會自動引入所依賴的jar包。
做完上面的準備工作之後就可以寫程式碼了。
5.寫前臺頁面:
在maven工程中生成的有一個index.jsp,將其修改成一下內容,很簡單,只是一個登陸框,提交一個form表單,中的使用者名稱和密碼。
[html] view plain copy print?- <%@ 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>
- <metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
- <title>歡迎</title>
- </head>
- <body>
- <h2>Hello World!</h2>
- <formaction="login">
- 使用者名稱:<inputid="username"name="username"type="text"></input><br>
- 密 碼:<inputid="username"name="password"type="password"></input><br>
- <inputtype="submit">
- </form>
- <span>當前IP:<%=request.getRemoteAddr() %></span>
- </body>
- </html>
- package com.my.web.controller;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- /**
- * TODO 控制層程式碼
- * @author 591791
- * @date 2014年11月27日
- */
- @Controller
- publicclass MyController {
- @RequestMapping("login") //用來處理前臺的login請求
- private@ResponseBody String hello(
- @RequestParam(value = "username", required = false)String username,
- @RequestParam(value = "password", required = false)String password
- ){
- return"Hello "+username+",Your password is: "+password;
- }
- }