SpringMVC_创建一个springmvc

# SpringMVC 简介

# 创建一个SpringMVC

1:创建一个maven项目

(创建maven项目的目的是,便于开发者管理jar文件,当然也可以创建普通的web项目)

2:修改pom.xml文件中的内容(用于导入一些相关的jar包)

<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.doaoao</groupId> <artifactId>firstMvc</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.4.RELEASE</version> </dependency> </dependencies> <build> <finalName>firstMvc</finalName> <plugins> <!-- 编译插件,指定编译用的的jdk版本 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <!-- jdk的版本号 --> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build> </project>

3:在webapp目录下创建WEB-INF目录,在WEB-INF目录下创建web.xml文件(该文件可从其它wen文件中拷贝过来)

该文件用于注册springmvc的中央控制器

<?xml version="1.0" encoding="UTF-8"?>
<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_2_5.xsd"
id
="WebApp_ID" version="2.5"> <display-name>firstMvc</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!-- 注册spring MVC中央控制器 --> <servlet> <servlet-name>springMVC</servlet-name> <!-- spring MVC中的核心控制器 --> <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>*.do</url-pattern> </servlet-mapping> </web-app>

4:在maven项目的src/main/resources目录下创建springmvc配置文件,文件名随意,但需与第三部中的<param-value>标签中的保持一致即可

<?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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    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">
</beans>   

 5:创建一个类来实现接口 " org.springframework.web.servlet.mvc.Controller ",将实现该接口的类称为Controller

package com.doaoao.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloSpringMvc implements Controller
{
    @Override
    public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception
    {
        ModelAndView mv = new ModelAndView();
        
        // 向ModelAndView这个对象中添加一条数据,命名未hello,内容为hello first spring mvc
        mv.addObject("hello", "hello first spring mvc");
        
        // 括号中的内容是要跳转的jsp的路径和文件名
        mv.setViewName("/WEB-INF/jsp/first.jsp");
        return mv;
    }
}

 6:在SpringMVC配置文件 springmvc.xml文件中注册Controller(该Controller为第5步所创建的)

<bean id="/hello.do" class="com.doaoao.controller.HelloSpringMvc" />

7:在WEB_INF/jsp 下创建文件 first.jsp(与第5步中跳转的页面地址一样)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
</head>
<body>
    ${hello}
</body>
</html>

 8:在浏览器中访问:http://localhost:8080/newMvc/hello.do

hello为第5步所编写的所要访问的地址

如果当前的浏览器显示 "hello first spring mvc" 说明创建成功

# 配置视图解析器

在上方的代码中,会有冗余现象出现

在Controller中,如果编写多个Cntroller的话,要编写多次 mv.setViewName("/WEB-INF/jsp/first.jsp"); 中的 /WEB-INF/jsp 和 .jsp 所以可以配置视图解析器来解决该问题,视图解析器是springmvc提供的

1:在springmvc.xml 文件中配置视图解析器

<!-- 视图解释类 -->
<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!-- 前缀 -->
    <property name="prefix" value="/WEB-INF/jsp/" />
    
    <!-- 后缀名 -->
    <property name="suffix" value=".jsp" />
</bean>
ean>

2:修改Conroller中的内容(也就是上方所创建的HelloSpringMvc中的内容)

mv.setViewName("first");

# 上方第一个SpringMvc的执行流程

1:用户按下回车键,浏览器将请求 http://localhost:8080/newMvc/hello.do 发送到web服务器(tomcat服务器),然后系统会在web.xml文件中查找与之匹配的servlet,我们在web.xml中设置的拦截请求 .do ,只要请求是以.do 结尾的,都会匹配到springMVC的核心 DispatcherServlet 上

2:随后 DispatcherServlet 会到springmvc配置文件springmvc.xml中查找与hello.do请求相匹配的Controller,就例如上面我们为请求 hello.do所配置的Cnntroller响应为 com.doaoao.controller.HelloSpringMvc  

3:当找到对应的Controller时,DispatcherServlet 会将请求转到对应的Controller中,并调用该类中的 handleRequest方法来处理该请求

4:在handleRequest方法中执行完成后会将ModelAndView对象返回给DispatcherServlet,然后DispatcherServlet将jsp响应给浏览器,流程结束

 ...

猜你喜欢

转载自www.cnblogs.com/Doaoao/p/10644843.html