文章目录
代码地址
需求
客服端发起请求,服务端接收请求,执行逻辑并进行视图跳转。
开发步骤
1.导入SpringMVC相关坐标
位置:spring_mvc/pom.xml
<!--Spring坐标-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<!--SpringMVC坐标-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<!--Servlet坐标-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!--Jsp坐标-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
2.配置SpringMVC核心控制器DispathcerServlet
位置:spring_mvc/src/main/webapp/WEB-INF/web.xml
<!--配置SpringMVC的前端控制器-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!--关联到spring-mvc.xml上-->
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
3.创建Controller类和视图页面
Controller类位置:
import org.springframework.stereotype.Controller;
@Controller
public class UserController {
public String save(){
System.out.println("Controller save running....");
return "success";
}
}
PS:为什么要 return "success"
?
实际上,success
是下面这个jsp
的名字,我们要返回的是success.jsp
中的内容。
创建视图界面:
4.使用注解配置Controller类中业务方法的映射地址
在Controller
类中加上RequestMapping("/quick")
。
解释:一般tomcat启动一般访问的路径是 http://localhost:8080/
,加上RequestMapping("/quick")
以后,访问http://localhost:8080/quick
就会得到success.jsp
的内容
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class UserController {
@RequestMapping("/quick")
public String save(){
System.out.println("Controller save running....");
return "success";
}
}
5.配置SpringMVC核心文件spring-mvc.xml
位置:
这里的spring-mvc.xml
,其实就是第2步中的 classpath:spring-mvc.xml
6.客户端发起请求测试(tomcat)
6.1 安装tomcat
可以搜一下教程,网上很多
6.2 在IDEA中配置 tomcat**
1. add Configuration
2. 增加Tomcat server Local
3. 配置 Application server
4. 配置端口
此处默认填了8080,如果要修改的话,这两处都要修改。
5. 配置artifacts
配置页面提示,Warning: No artifacts marked for deployment
,是因为我们还没有将此项目打包
6. 打包此项目
打包的时候,需要注意将此项目打包成war
包,而不是jar
包,所以要在pom.xml
中增加一行
<packaging>war</packaging>
然后执行打包,如果安装了Maven Helper
插件,可以在右侧先点击clean
, 然后点击package
。
如果没有安装该插件,也可以直接在spring_mvc
这个项目的路径下执行 maven clean package
。
输出信息的最后,有这个war包的路径
7. 重新配置 artifacts
点击 Fix
,会出现两种artifact
,为了方便本地继续开发调试,所以我们选择两种模式的区别如下:
1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布;
2)war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。
下面的Application context
,会自动添加到http://localhost:8080/
的后面
8.启动tomcat
这两个图标都可以启动tomcat
启动后,自动打开的是index.jsp
页面
输入controller
类中配置的路径 /quick
,会打开 success.jsp的页面
参考资料
黑马程序员最全SSM框架教程|Spring+SpringMVC+MyBatis全套教程(spring+springmvc+mybatis) P41~44
Tomcat部署时war和war exploded区别以及平时踩得坑
Idea2017部署项目到tomcat时增加Artifacts的步骤