1.创建Maven项目
2.导入依赖(导入SpringMvc与Servlet的坐标):
XML
<dependencies>
<!--servlet依赖的坐标-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!--springmvc依赖的坐标-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.33</version>
</dependency>
</dependencies>
<!--Tomcat的插件-->
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
servlet的作用:
Servlet主要用于处理客户端传来的Http请求,并返回一个响应。
Servlet是一种独立于平台和协议的服务器端Java技术,用于生成动态的Web页面。它通过创建一个框架来扩展服务器的能力,以提供在Web上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让Servlet建立起服务器返回给客户机的响应。Servlet的主要作用包括:
- 接收客户端的请求数据:专门用来接收客户端的请求数据,然后调用底层service处理数据并生成结果。
- 生成响应内容:根据客户端的请求,生成响应内容并将其传给服务器。
- 与其它服务器资源进行通信 :包括数据库和基于Java的应用程序,进行必要的通信和处理。
- 处理多个客户机的连接:接收多个客户机的输入,并将结果广播到多个客户机上,例如,可以作为多参与者的游戏服务器。
- 特殊处理:采用MIME类型过滤数据,例如图像转换和服务器端包括(SSI)。
- 提供定制处理:将定制的处理提供给所有服务器的标准例行程序,例如,修改如何认证用户。
Servlet的运行环境称为Servlet容器或Servlet引擎,它给发送的请求和响应之上提供网络服务。Servlet不能独立运行,必须被部署到Servlet容器中,由容器来实例化和调用Servlet的方法。Servlet容器在Servlet的生命周期内管理Servlet,如Servlet的创建、使用与销毁等。
3.创建SpringMvc的控制器类
在Controller包下创建UserController控制器类:
java
//使用Controller来定义bean
@Controller
public class UserController {
//设置当前操作的访问路径
@RequestMapping("/save")
//设置当前操作的返回值类型
@ResponseBody
public String save(){
System.out.println("user save ...");
return "'module' : 'springmvc'";
}
}
4.初始化SpringMvc环境,设置SpringMvc加载对应的Bean
在Config包下创建SpringMvcConfig加载配置类
java
//创建SpringMvc的配置文件,加载Controller对应的bean
@Configuration
@ComponentScan("com.itheima.Controller")
public class SpringMvcConfig {
}
5.初始化Servlet容器,加载SpringMvc环境,并设置SpringMvc技术处理的请求
在Config包下创建ServletContainersInitConfig类
java
//定义一个servlet容器启动的配置类,在里面加载Spring的配置
public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
//加载SpringMvc容器配置
@Override
protected WebApplicationContext createServletApplicationContext() {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(SpringMvcConfig.class);
return ctx;
}
//设置哪些请求归属SpringMvc处理
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
//加载Spring容器配置
@Override
protected WebApplicationContext createRootApplicationContext() {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(SpringConfig.class);
return ctx;
}
}