springmvc簡單入門案例1

最近在學習java的框架,簡單學完ssh以後,爲了工作,爲了更高效率的開發,有必要學習一下springmvc,菜鳥一枚
只能簡單的入門。
springmvc框架的簡介:是一種在web層的框架,Spring MVC 框架主要由 DispatcherServlet、處理器映射器、處理器適
配器、處理器(控制器)、視圖解析器、視圖組成。初學者可能對這些不明白,我自己的學習方式是不管先弄一個demo出
來,然後根據案例在根據自己的理解去學習這些組件,學了一段時間以後,再回來,根據自己的理解理清整個程序的運
行流程
第一個springmvc案例
一個簡單的表單的提交案例:
1、創建一個web工程
2、導入必須的jar包
3、引入springmvc的配置文件(剛開始什麼都不需要做,只要將掃描包裏面寫成我們自己寫的包)
4、在web.xml配置文件中配置一個轉發器(代碼都是固定的 ,可以先直接複製)
5、寫處理的方法的類,相當於之前學習的servlet用來處理用戶的請求以及轉發頁面等
6、編寫jsp頁面,創建一個表單的提交事件,通過表單提交發送數據給服務器
7、服務器接收到數據,然後做出處理,最後返回給客戶端
下面貼上代碼:
配置文件
web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>SpringMVCProject</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <!-- 配置SpringMVC前端控制器 -->
	<servlet>
		<servlet-name>mySpringMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 指定SpringMVC配置文件 -->
		<!-- SpringMVC的配置文件的默認路徑是/WEB-INF/${servlet-name}-servlet.xml -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springmvc.xml</param-value>
		</init-param>
		<!--啓動服務器,加載SpringMVC控制器 -->
		<!-- 設置這個以後,就可以讓用戶在發送請求是不需要等待很久 -->
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>mySpringMVC</servlet-name>
		<!-- 設置所有以action結尾的請求進入SpringMVC -->
		<url-pattern>*.action</url-pattern>
	</servlet-mapping>
	<!-- 配置springmvc中post提交中文亂碼問題 -->
	<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>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

springmvc.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:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       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
	   http://www.springframework.org/schema/aop
	   http://www.springframework.org/schema/aop/spring-aop.xsd
	  http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
	  http://www.springframework.org/schema/tx
	  http://www.springframework.org/schema/tx/spring-tx.xsd">
     <!--註解掃描  後面的包名是需要根據不同項目修改的-->
     <context:component-scan base-package="com.yxc.web"/>
</beans>

MyController.java

package com.yxc.web;
/**
 * springmvc中接收參數的集中方式
 */
import javax.servlet.http.HttpServletRequest;

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

//通過這個註解就可以把這個類定義爲轉發器 用來處理各種請求
//相當於servlet類
@Controller
public class MyController {
	//請求參數爲login.action的請求會找到這個方法 然後執行這個方法
	@RequestMapping("login.action")
	public ModelAndView login(HttpServletRequest request) {
		//創建一個模型頁面對象,這個類可以設置模型和試圖
		ModelAndView modelAndView = new ModelAndView();
		//在springmvc接收參數有很多的方式,這裏先使用最原始的方法
		//通過request對象請求中發送來的參數
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		//將接收的參數保存在域對象中,轉發到其它頁面可以取出數據
		modelAndView.addObject("username",username);
		modelAndView.addObject("password",password);
		//訪問成功以後可以跳轉的頁面
		modelAndView.setViewName("/success.jsp");
		return modelAndView;
	}
}

兩個jsp頁面:
index.jsp中只是寫了一個表單,然後點擊提交就會發送請求
success.jsp就是請求成功以後跳轉的頁面,並且簡單的通過EL表達式取出數據
index.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="${pageContext.request.contextPath}/login.action" method="post">
		用戶名:<input type="text" name="username"><br><br>
		密碼:<input type="password" name="password"><br><br>
		<input type="submit" value="提交">
	</form>
</body>
</html>

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>接收參數</h1>
用戶名:${username}
密碼:${password}
</body>
</html>

在這裏插入圖片描述
所需的jar包如下:
在這裏插入圖片描述
最後總結一下執行的流程:當然前期只是簡單的,真正的內部實現原理還要等學習完後面的一些組件才能講解
1、首先我們在jsp頁面中通過表單發送請求
2、系統會查看web.xml中發送的請求是不是符合要求的,符合要求的,交給配置好的轉發器處理,不符合要求的,直接報錯
3、轉發器收到請求,根據請求信息的參數(login.action)到我們自己寫的轉發器類(就是我們在類上面註解了@Controller的類)中找到對應請求參數的方法,如果沒有找到機會報404找不到,如果找到就會開始執行方法
然後根據執行方法將數據和頁面返回給客戶端
上面的執行流程只是我們看的見得,我們自己手寫的代碼中的流程,其實springmvc內部還有很多的控件是自行完成的,我們不需要編碼,但是又有必要了解內部的流程,這些後續學習以後總結。
這只是一個簡單的入門程序,在我個人看來,學習框架首先得自己先跑出來纔有學習下去的想法,不然看書聽視頻,根本不知道怎麼回事,動手實現了,然後再去學習,看書,才能更好的理解它(純屬個人觀點)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章