1.先搭建一个maven的web项目 ,然后把文件夹完善一下,创建一个java的文件夹和resource的问件夹,并指定他们各自的功能。
导入pom.xml文件的依赖
<properties> <!--这里用version进行版本的统一的控制--> <spring.version>5.1.5.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> </dependencies>
2.创建了一个controller的类 用来完成对前端jsp的请求的处理 就像servlet一样 但是在spring_mvc中就可以通过配置普通的类来完成控制 而无需再继承httpservlet类了
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller//配置扫描器的注解 将这个类可以被spring容器配置为bean对象 public class HelloController { // @RequestMapping("/hello") public String hello(){ System.out.println("你好,springmvc");
//这个return返回的就是要跳转的页面的名字 好像是这么说的
return "success"; } }
3.配置spring的xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--配置spring创建容器时要扫描的包 但是 还要的 web.xml中去初始化这个扫瞄器 --> <context:component-scan base-package="com.song"></context:component-scan> <!-- 配置视图解析器--> <bean id="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--指定那个文件夹下的jsp页面--> <property name="prefix" value="/WEB-INF/page/"></property> <!--指定以什么来结尾的文件--> <property name="suffix" value=".jsp"></property> </bean> <!--配置spring开启 mvc注解的支持--> <mvc:annotation-driven></mvc:annotation-driven> </beans>
4.此时还要再web.xml文件中将这个扫描器再初始化这个servlet的时候 创建
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--配置servlet初始化时的参数,读取springmvc的配置文件,创建spring容器--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <!--配置servlet启动时的加载对象--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
5.在WEB—INF下建立一个page的包用来放jsp文件
写一个跳转前的jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h3>你好</h3> <a href="hello">chick this</a> </body> </html> <!-- 跳转后的jsp页面--> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h3>hello mcv</h3> </body> </html>
5.在tomcat上添加这个项目 运行
注意:这里再tomcat上部署的war包 和war exploded的区别
war模式:将WEB工程以包的形式上传到服务器 ;
war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器;
(1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布;
(2)war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。
(3)在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。
ps:此处踩了一个小坑 就是再用idea创建了一个项目 , 当把这个项目删除时(从工作空间),再创建一个同名的项目,他会没有pom文件,
还会报出 -------
Failed to create a Maven project: already exists in VFS
这时我们在回收站中将这个被删除的项目彻底清除就可以了