zoukankan      html  css  js  c++  java
  • 一起学SpringMVC之入门篇

    本文属于SpringMVC的入门篇,属于基础知识,仅供学习分享使用,如有不足之处,还请指正。

    什么是SpringMVC ?

    SpringMVC是一个基于SpringMVC框架,继承了Spring的优秀特点,目前是使用率最高的Java EE Web MVC框架。

    SpringMVC优势有哪些?

    1. SpringMVC运行速度会比Struts快一些(SpringMVC是单例模式,线程不安全,所以不要使用成员变量,Struts是多线程的方式,线程间是安全的)
    2. SpringMVC更加简洁,开发效率更高;层次清晰,便于阅读

    SpringMVC体系结构

    如下图所示:

    SpringMVC环境搭建

    1. 新建一个Web工程【Dynamic Web Project】

    File-->New-->Dynamic Web Project,按照步骤执行即可。如下图所示:

    2. 导入SpringMVC需要的Jar(Java Archive)包

    需要导入的Jar包共8个,分为三个部分,如下所示:

    //日志包
    commons-logging-1.1.1.jar
    //spring核心包
    spring-aop-4.0.6.RELEASE.jar
    spring-beans-4.0.6.RELEASE.jar
    spring-context-4.0.6.RELEASE.jar
    spring-core-4.0.6.RELEASE.jar
    spring-expression-4.0.6.RELEASE.jar
    //WebMVC包
    spring-web-4.0.6.RELEASE.jar
    spring-webmvc-4.0.6.RELEASE.jar

    3. 配置web.xml

    主要是配置核心控制器,如下图所示:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
     3   <!-- SpringMVC是使用Servlet来做控制器的,默认在/WEB-INF/[servlet-name]-servlet.xml这个路径,如:dispatcher-servlet.xml -->
     4   <!-- 为什么用的时候才报错?Tomcat启动的时候不报错?
     5       Sturts只要配置报错了,启动的时候就会报错,SpringMVC是在第一次访问的时候才创建Servlet
     6    -->
     7   <servlet>
     8       <servlet-name>dispatcher</servlet-name>
     9       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    10       <!-- 以下语句配置,在tomcat启动时,启动核心控制器 -->
    11       <load-on-startup>1</load-on-startup>
    12       <!-- /WEB-INF/dispater-servlet.xml -->
    13   </servlet>
    14   <servlet-mapping>
    15       <servlet-name>dispatcher</servlet-name>
    16       <!-- 请求入口 -->
    17       <url-pattern>/</url-pattern>
    18   </servlet-mapping>
    19   
    20   <display-name>FirstSpringMvc</display-name>
    21   <welcome-file-list>
    22     <welcome-file>index.html</welcome-file>
    23     <welcome-file>index.htm</welcome-file>
    24     <welcome-file>index.jsp</welcome-file>
    25     <welcome-file>default.html</welcome-file>
    26     <welcome-file>default.htm</welcome-file>
    27     <welcome-file>default.jsp</welcome-file>
    28   </welcome-file-list>
    29 </web-app>

    4. 新建一个类实现Cotroller接口

    一个Controller只有一个handleRequest方法需要实现,用来处理页面的请求

     1 package com.hex.springmvc;
     2 
     3 import javax.servlet.http.HttpServletRequest;
     4 import javax.servlet.http.HttpServletResponse;
     5 
     6 import org.springframework.web.servlet.ModelAndView;
     7 import org.springframework.web.servlet.mvc.Controller;
     8 
     9 /**
    10  * 实现Controller接口
    11  * @author Administrator
    12  *
    13  */
    14 public class HelloWorldController implements Controller {
    15 
    16     @Override
    17     public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
    18         ModelAndView mav=new ModelAndView();
    19         mav.addObject("msg", "Hello World,你好,SpringMVC");
    20         mav.setViewName("WEB-INF/jsp/HelloWorld.jsp");
    21         System.out.println("控制器被执行了!!!");
    22         return mav;
    23     }
    24 
    25 }

    5. 新增Controller配置文件

    SpringMVC有一个默认的配置文件,默认在/WEB-INF/[servlet-name]-servlet.xml这个路径,如:dispatcher-servlet.xml。

    一个bean就表示一个Controller,用id属性来唯一表示。如下所示:

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <beans xmlns="http://www.springframework.org/schema/beans"
    3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4 xsi:schemaLocation="http://www.springframework.org/schema/beans
    5  http://www.springframework.org/schema/beans/spring-beans.xsd">
    6     <bean id="/HelloWorld" class="com.hex.springmvc.HelloWorldController"></bean>
    7 </beans>

    6. 新增JSP(Java Server Pages)页面

    ${msg}表示接收Controller传递过来的参数内容,如下所示:

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>SpringMVC欢迎你</title>
     8 </head>
     9 <body>
    10     <h1>欢迎信息</h1>
    11     <h1>${msg}</h1>
    12 </body>
    13 </html>

    7. 访问

    启动Tomact,打开浏览器,输入网址http://localhost:8080/FirstSpringMvc/HelloWorld,如下所示,则表示成功

    8. 文件结构

    整个文件结构,如下图所示:

    SpringMVC对静态资源的支持

    在配置核心控制器时<url-pattern>/</url-pattern>,会导致SpringMVC框架下,静态资源无法访问(css,js,img),则需要配置对静态资源的支持,如下所示:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4  xmlns:mvc="http://www.springframework.org/schema/mvc"
     5 xsi:schemaLocation="http://www.springframework.org/schema/beans
     6  http://www.springframework.org/schema/beans/spring-beans.xsd
     7  http://www.springframework.org/schema/mvc
     8  http://www.springframework.org/schema/mvc/spring-mvc.xsd">
     9      <!-- 静态资源的支持 -->
    10      <mvc:default-servlet-handler/>
    11     <bean id="/HelloWorld" class="com.hex.springmvc.HelloWorldController"></bean>
    12 </beans>

    配置过后,图片就可以访问了,如下所示:

    源码下载链接

    备注

     如山间清爽的风,如古城温暖的光

  • 相关阅读:
    android的窗口创建过程
    android的Binder
    Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
    android的事件分发测试结果
    Don't Store Data in the Application Object
    关于算法
    自定义控件其实很简单3/4
    自定义控件其实很简单2/3
    建设一个能承受500万PV/每天的网站
    strust2里面package的元素排列顺序
  • 原文地址:https://www.cnblogs.com/hsiang/p/11333620.html
Copyright © 2011-2022 走看看