admin管理员组

文章数量:1794759

Spring mvc基础入门详解

Spring mvc基础入门详解

Spring mvc是当前最为流行的开发框架之一   有了它 我们可以高效方便的处理程序中的业务逻辑   因此在开发的时候 spring   mvc主要用于业务层  要进一步学习spring mvc  我们首先要知道  spring mvc的基本原理

一、基本原理

   spring mvc 中的  m  代表 模型  v  代表试图  c代表控制器     在这个框架中  有一个前端控制器  就是  DispatcherServlet

用来负责发送请求到合适的控制器  最后在渲染出视图来呈现给大家  下面 我们请看下图

首先是 第一步  用户浏览器发送了一个请求给  前置在控制器 

           第二步将请求传给处理映射器

           然后在第三步找到合适的控制器

         第四步 控制器返回模型及视图名称 传给前端控制器

         第五步 通过前端控制器在第六步找到视图解析器 最后第七步解析出视图并且进行响应

通过刚才的基本原理介绍 我们来看看在eclipse中如何搭建一个spring mvc程序吧?

工具: jdk1.7   eclipse  tomcat 7.0

所需jar包:

工程目录图:

   

         想要源码的可以加我QQ:1725576075  也可以加QQ群 464096313去群共享要

下面我们进行第一步  配置前置控制器  

打开web.xml  写入:

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="www.w3/2001/XMLSchema-instance" xmlns="java.sun/xml/ns/javaee" xsi:schemaLocation="java.sun/xml/ns/javaee java.sun/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>spring</display-name> <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:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>

接着我们配置完前置控制器以后  我们要配置spring mvc  在springmvc.xml中写入(这里采用的是注解模式  因此该配置也是按照注解模式来配置bean)

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="www.springframework/schema/beans" xmlns:xsi="www.w3/2001/XMLSchema-instance" xmlns:context="www.springframework/schema/context" xmlns:mvc="www.springframework/schema/mvc" xsi:schemaLocation="www.springframework/schema/beans www.springframework/schema/beans/spring-beans.xsd www.springframework/schema/context www.springframework/schema/context/spring-context-4.0.xsd www.springframework/schema/mvc www.springframework/schema/mvc/spring-mvc-4.0.xsd"> <mvc:annotation-driven/> <mvc:resources location="/WEB-INF/resources/images/" mapping="/images/**"/> <mvc:resources location="/WEB-INF/resources/js/" mapping="/js/**"/> <mvc:default-servlet-handler/> <context:component-scan base-package="com.project.springmvc"/> <!-- 配置视图解析器 如何把handler 方法返回值解析为实际的物理视图 根据控制器返回的字符串拼接成jsp路径:/WEB-INF/jsp/xx.jsp --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name = "prefix" value="/WEB-INF/resources/"></property> <property name = "suffix" value = ".jsp"></property> </bean> <!-- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name = "prefix" value="/WEB-INF/resources/"></property> <property name = "suffix" value = ".jsp"></property> </bean> --> </beans>

请注意 在这里我配置了mvc标签  该标签是用来加载静态文件的  如果不加上这个标签  spring mvc默认会对除了jsp文件以外的文件进行拦截  因此就会出现图片  css  js之类的静态文件显示不出来的问题

其语法为:

<mvc:annotation-driven/> <mvc:resources location="静态文件路径" mapping="映射的路径 也就是说你在页面中要引用这个路径名才可以访问到静态文件"/> <mvc:default-servlet-handler/>

控制器代码

package com.project.springmvc; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.json.MappingJackson2JsonView; import com.project.model.Shop; import com.project.model.UserInfo; @Controller public class Index { @RequestMapping(value="") public String index(){ return "index"; } } } @Controller:/*该注解代表该类为一个spring mvc控制器*/ @RequestMapping(value="")/*该注解为请求的路径名在value设置路径名 当浏览器请求路径名相同时 触发控制器*/

index.jsp代码

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="java.sun/jsp/jstl/core"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "www.w3/TR/html4/loose.dtd"> <html> <head> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>返回这里</title> </head> <body> 第一个jsp页面<img alt="" src="/images/BG_14.jpg"> </body> </html>注意  因为我们在前面mvc标签中设置的静态文件映射路径为  /images/  因此这里的src 路径也要写上 images

本文标签: 详解入门基础springMVC