前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring MVC框架:第一章:SpringMVC概述及初步体会SpringMVC使用过程

Spring MVC框架:第一章:SpringMVC概述及初步体会SpringMVC使用过程

作者头像
Java廖志伟
发布2022-09-28 11:27:32
1730
发布2022-09-28 11:27:32
举报
文章被收录于专栏:高级开发进阶高级开发进阶

第一节 SpringMVC在知识体系中的坐标

在我们学习框架知识以前,JavaSE+JDBC+JavaWeb+SQL这样的技术组合已经可以实现任何业务逻辑了。为什么还要学习SSM这样的框架呢?

很简单,MyBatis是对JDBC的封装,而SpringMVC是对JavaWeb的封装。 其中JavaWeb和SpringMVC提供了表述层(或称表示层)的解决方案,而JDBC和MyBatis是持久化层的解决方案。那Spring到哪去了?Spring中的IOC容器为我们的整个项目管理组件,而我们配置的各种bean、切面类、事务通知等等其实都是在容器中工作的组件,我们开发人员的任务其实就两件事:开发组件、组装组件。

在这里插入图片描述
在这里插入图片描述

第二节 使用SpringMVC前后代码的对比

使用原生ServletAPI获取请求参数:

代码语言:javascript
复制
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String userName = request.getParameter("userName");
    System.out.println("userName="+userName);
}

使用SpringMVC获取请求参数:

代码语言:javascript
复制
@RequestMapping("/user/login")
public String login(@RequestParam("userName") String userName){
    System.out.println("userName="+userName);
    return "result";
}

这仅仅是其中一个例子,使用SpringMVC后确实大大简化了表述层开发。

通过这个HelloWorld,大家初步体会SpringMVC使用过程中的总体流程。 第一步 创建DynamicWebProject项目 第二步 导入jar包

代码语言:javascript
复制
commons-logging-1.1.3.jar
spring-aop-4.0.0.RELEASE.jar
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
spring-web-4.0.0.RELEASE.jar
spring-webmvc-4.0.0.RELEASE.jar

第三步 在web.xml中配置SpringMVC的前端控制器:DispatcherServlet

代码语言:javascript
复制
<servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <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>

第四步 在src目录下创建Spring配置文件spring-mvc.xml并指定自动扫描的包

代码语言:javascript
复制
<context:component-scan base-package="com.mvc.controllers"/>

注意:Spring配置文件的文件名必须和web.xml中classpath:后一致,否则将无法找到。 第五步 在自动扫描的包下创建类HelloHandler

代码语言:javascript
复制
import org.springframework.stereotype.Controller;
@Controller
public class HelloHandler {

}

第六步 在HelloHandler类中声明一个方法用来处理请求

代码语言:javascript
复制
@RequestMapping("/hello")
public String hello() {
    System.out.println("SpringMVC处理了这个请求!");
    return "/WEB-INF/pages/result.jsp";
}
在这里插入图片描述
在这里插入图片描述

第九步 访问测试 控制台输出: SpringMVC处理了这个请求!

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

看看其它类似的项目,相比对SpringMVC使用过程中的总体流程有所了解了吧

在这里插入图片描述
在这里插入图片描述

疑问 url-pattern中为什么是“/”而不是“/*”? SpringMVC在url-pattern的配置中支持两种风格 REST风格: <url-pattern>/</url-pattern>

扩展名风格: <url-pattern>*.action</url-pattern>

以“/”开头的路径会被认为是REST风格,而“/*”的写法是不符合REST风格规范的。只有在SpringMVC这里有映射“/”的情况,其他地方一切照旧。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档