SpringMVC学习笔记——HelloWorld

一、预备工作

  1. 创建Maven webapp工程。
  2. 使用Maven配置了需要使用的Jar包,Spring基于4.0.0版本。
    pom.xml如下:
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0modelVersion>
    <groupId>uestc.shengroupId>
    <artifactId>springMVCartifactId>
    <version>0.0.1-SNAPSHOTversion>
    <name>springMVC Maven Webappname>
    <url>http://maven.apache.orgurl>

    <properties>
        <slf4j.version>1.7.6slf4j.version>
        <spring.version>4.0.0.RELEASEspring.version>
    properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframeworkgroupId>
                <artifactId>spring-framework-bomartifactId>
                <version>${spring.version}version>
                <type>pomtype>
                <scope>importscope>
            dependency>
        dependencies>
    dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webmvcartifactId>
        dependency>

        <dependency>
            <groupId>commons-logginggroupId>
            <artifactId>commons-loggingartifactId>
            <version>1.1.1version>
        dependency>

        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-log4j12artifactId>
            <version>${slf4j.version}version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-apiartifactId>
                    <groupId>org.slf4jgroupId>
                exclusion>
            exclusions>
        dependency>
    dependencies>

project>

二、配置DispathcherServlet

在/WEB-INF/web.xml中作如下代码调整:


<web-app version="2.4" 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">

    
    <servlet>
        <servlet-name>dispatcherServletservlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        
        





        <load-on-startup>1load-on-startup>
    servlet>

    
    <servlet-mapping>
        <servlet-name>dispatcherServletservlet-name>
        <url-pattern>/url-pattern>
    servlet-mapping>
web-app>

(1)其中Maven为我们创建的事基于web-app2.3版本,我们手动更改成2.4或更高版本,此处基于2.5版本,http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
(2)配置一个Servlet,名字自己起,class为org.springframework.web.servlet.DispatcherServlet,DispathcherServlet负责接收请求,查找对应的Controller,接收返回值,显示视图,给客户反应,主要负责整体流程的控制。
(3)配置Servlet拦截的URL。

三、编写DispatcherServlet的配置

在web.xml中的指定位置,或默认位置,添加一个新的xml文件,作为DIspatcherServlet的配置文件,其中包括beans、context、mvc三种XSD命名空间。
内容如下:


<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"
    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-4.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

    
    <context:component-scan
        base-package="com.shen.springmvc">context:component-scan>

    
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/">property>
        <property name="suffix" value=".jsp">property>
    <`
bean>
beans>

(1)配置Spring的自动扫描功能,,扫描指定包下的所有类文件,解析成bean。
(2)配置一个指定的bean,InternalResourceViewResolver是一种视图解析器,把handler方法返回值(String类型)解析成实际的物理视图(JSP、JSTL、HTML)。

四、编写处理请求的处理器

(1)创建符合命名规则的包名,如com.shen.springmvc.handlers
(2)创建一个类,负责处理请求的一个Controller,示例如下:

@Controller
public class HelloWorld {

    /**
     * 1.使用@RequestMapping 注解来映射请求的URL
     * 2.返回值会通过视图解析器解析为实际的物理视图,对于InternalResourceViewReslover 视图解析器,会做如下的解析:
     * 通过prefox + returnVal + suffix 这样的方式得到实际的物理视图,然后做转发操作
     * /WEB-INF/views/ + success + .jsp
     */
    @RequestMapping("/helloworld")
    public String hello() {
        System.out.println("hello world!");
        return "success";
    }
}

说明:
(1)使用@Controller注解,标识该类是一个bean,其次我们知道他是一个Controller,使用@Controller而不是@Component。
(2)hello方法负责响应什么URL呢?使用@RequestMapping注解,value为响应的URL,因为可能响应多个URL,则是数组的形式,@RequestMapping(value = { "/helloworld1", "/helloworld2" }),若只有一个,则可以直接@RequestMapping("/helloworld")
(3)在注释中写道,返回值为String类型,被视图解析器解析成前缀+retVal+后缀,做转发操作。

五、编写视图

在/WEB-INF/下创建视图,其中包括视图解析器需要的视图。
/springMVC/src/main/webapp/index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>
    <a href="helloworld">Hello Worlda>
body>
html>

/springMVC/src/main/webapp/WEB-INF/views/success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>
    <h4>Page success !h4>
body>
html>

六、测试代码

采用Tomcat服务器的形式运行,不多说。

你可能感兴趣的:(spring-mvc,SSM学习之路)