资讯专栏INFORMATION COLUMN

SpringMVC入门笔记

zhaochunqi / 3097人阅读

摘要:入门笔记简介是一种基于的实现了设计模式的请求驱动类型的轻量级框架,是系开源项目中的一个,和配合使用。配置在中需要添加使用的和映射规则。入门较快,而掌握起来相对较难。

SpringMVC入门笔记 1. 简介

Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架 ,是Spring系开源项目中的一个,和IoC配合使用。通过策略接口,Spring框架是高度可配置的,而且支持多种视图技术。Spring分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让他们更容易进行定制。Spring MVC解决的问题如下:

将web页面的请求传给服务器;

根据不同的请求处理不同的逻辑单元;

返回处理结果数据并跳转至响应页面;

通过下面这样图可以看到Spring MVC在Spring全家桶中的位置:

2. Spring MVC实例

现在总结一下搭建一个完整SpringMVC的步骤,期间遇到了很多坑,404的问题坑了好久,先来记录一下成功的搭建步骤,后面附上源码。本文使用eclipse(Version: Photon Release (4.8.0))搭建SpringMVC。

2.1 新建maven工程

新建一个maven project。

新建好的工程结构应该是这样的:

│  .classpath
│  .project
│  pom.xml
│
├─.settings
│      .jsdtscope
│      org.eclipse.jdt.core.prefs
│      org.eclipse.m2e.core.prefs
│      org.eclipse.wst.common.component
│      org.eclipse.wst.common.project.facet.core.xml
│      org.eclipse.wst.jsdt.ui.superType.container
│      org.eclipse.wst.jsdt.ui.superType.name
│      org.eclipse.wst.validation.prefs
│
├─src
│  └─main
│      ├─resources
│      └─webapp
│          │  index.jsp
│          │
│          └─WEB-INF
│                  web.xml
│
└─target
    ├─classes
    ├─m2e-wtp
    │  └─web-resources
    │      └─META-INF
    │          │  MANIFEST.MF
    │          │
    │          └─maven
    │              └─com.wangjun
    │                  └─learnSpringMVC
    │                          pom.properties
    │                          pom.xml
    │
    └─test-classes
2.2 添加pom依赖

既然是SpringMVC工程,肯定要添加SpringMVC的包,可以去http://mvnrepository.com/查找,除了SpringMVC还需要添加javax.servlet的包。搞不懂为什么网上很多教程都添加了spring的bean,aop,core这些基础包,这些基础包已经被springmvc依赖了,已经包含进来了,就不用再pom文件手动依赖了。

pom.xml


  4.0.0
  com.wangjun
  spring1
  war
  0.0.1-SNAPSHOT
  spring1 Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      3.8.1
      test
    
    
    
        org.springframework
        spring-webmvc
        4.3.18.RELEASE
    
    
    
        javax.servlet
        javax.servlet-api
        4.0.0-b01
        provided
    
  
  
    spring1
  
2.3 配置web.xml

在web.xml中需要添加使用的servlet和映射规则。

web.xml




  Archetype Created Web Application
  
  
  
      springmvc
      
         org.springframework.web.servlet.DispatcherServlet
      
      1
   

   
      springmvc  
      / 
   
2.4 新建springmvc-servlet.xml文件

在web.xml同级目录下新建springmvc-servlet.xml文件(就是在web.xml配置的servletName+servlet)。这里面负责配置映射类和视图适配器等。

springmvc-servlet.xml



       
   
   

    
   
   
   
   
   
           
      
      
      
   
2.5 新建页面jsp文件

在WEB-INF下新建jsp文件夹,然后在jsp下新建demo.jsp

demo.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>




Insert title here


Hello springMVC!

2.6 新建controller控制类

在main文件夹下新建java文件夹,在新建HelloController.java文件,包名为com.learnspringmvc.controllers。

package com.learnspringmvc.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

//控制器注解
@Controller
@RequestMapping("/hello")
public class HelloController {

    @RequestMapping("/showdemo")
    public String getString() {
        
        // 必须在配置的view路径下存在demo.jsp,否则返回404
        return "demo";
    }

}
2.7 编译打包

进入到项目的根目录下(pom.xml存在的文件夹),打开doc,执行mvc install,出现BUILD SUCCESS表示打包成功,在target文件夹下生成learnSpringMVC.war,将此war包移动到tomcat的webapps下面,重启服务器,访问http://localhost:8080/learnSpringMVC/hello/showdemo:(注意:8080:后面紧跟的不是在web.xml中配置的servlet-name,而是在pom.xml中build的finalName属性)

2.8 关于404问题的坑

在搭建工程的时候,访问页面显示404,困扰了很久,也在网上搜了很多答案,这是一篇质量比较高的:https://blog.csdn.net/baidu_1...。404问题很难排查,因为并没有报错和堆栈信息,只能一个一个的排查可能的问题,写这边博客的时候又发现了一个导致404的原因,就是上面2.7写到的:8080:后面紧跟的不是在web.xml中配置的servlet-name,而是在pom.xml中build的finalName属性。可见404问题无处不见,由于自己对SpringMVC框架只是个小白,只能搜索加尝试。希望后面能成为大神级别的。这种问题都是小case。

源码:https://github.com/WangJun-SC...
3. SSH个SSM两个框架的区别

SSH(Spring,Struts,Hibernate)和SSM(Spring,SpringMVC,MyBatis)的区别其实就是SpringMVC和Struts,Hibernate和MyBatis的区别。

3.1 SpringMVC和Struts的区别

Struct和Spring-MVC都是负责取转发的,但是两者针对request的请求上面区别很大,Struct是针对一个Action类来进行请求的,即一个Action类对应于一个请求,所以类拦截,请求的数据类共享。而Spring-MVC则是针对于方法级别的请求的,也就是一个方法对应于一个请求,属于方法拦截,请求的数据方法不共享。

Spring-MVC的配置文件相对来说较为少,容易上手,可以加快软件开发的速度。

Spring-MVC的入口是Servlet级别的而Struct的级别是Filter级别的。

3.2 Hibernate和MyBatis的区别

Hibernate是一种O/R关系型,即完成数据库表和持久化类之间的映射,而MyBitas是针对的SQL-Mapping,Hibernate把数据库给封装好以后,可以调用相应的数据库操作语句SQL,而MyBitas则是用的原始的数据库操作语句。基于此原因,Hibernate优化起来相对MyBitas较难。

MyBitas入门较快,而Hibernate掌握起来相对较难。

针对高级查询,Mybatis需要手动编写SQL语句,以及ResultMap。而Hibernate有良好的映射机制,开发者无需关心SQL的生成与结果映射,可以更专注于业务流程。

Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。

3.3 总结:

SSH很笨重,现在除了一些老系统,很少有人使用SSH了,SSM则是现在的主流,当前还有SpringBoot,SpringCloud微服务这些。

参考:

https://www.cnblogs.com/ysoce...

https://blog.csdn.net/horero/...

SpringMVC映射的前端后台数据交互总结:https://blog.csdn.net/xiansky...

基于注解的入门实例:https://www.cnblogs.com/ysoce...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76978.html

相关文章

  • SpringMVC入门笔记

    摘要:简介注解用于修饰的方法,根据的的内容,通过适当的转换为客户端需要格式的数据并且写入到的数据区,从而不通过视图解析器直接将数据响应给客户端。并且这些解析器都实现了接口,在接口中有四个最为主要的接口方法。 SpringMVC 细节方面的东西很多,所以在这里做一篇简单的 SpringMVC 的笔记记录,方便以后查看。 Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本...

    gekylin 评论0 收藏0
  • Java学习路线总结,搬砖工逆袭Java架构师(全网最强)

    摘要:哪吒社区技能树打卡打卡贴函数式接口简介领域优质创作者哪吒公众号作者架构师奋斗者扫描主页左侧二维码,加入群聊,一起学习一起进步欢迎点赞收藏留言前情提要无意间听到领导们的谈话,现在公司的现状是码农太多,但能独立带队的人太少,简而言之,不缺干 ? 哪吒社区Java技能树打卡 【打卡贴 day2...

    Scorpion 评论0 收藏0
  • SpringMVC入门就这么简单

    摘要:也就是说映射器就是用于处理什么样的请求提交给处理。这和是一样的提交参数的用户名编号提交配置处理请求注册映射器包框架接收参数设置无参构造器,里边调用方法,传入要封装的对象这里的对象就表示已经封装好的了对象了。 什么是SpringMVC? SpringMVC是Spring家族的一员,Spring是将现在开发中流行的组件进行组合而成的一个框架!它用在基于MVC的表现层开发,类似于struts...

    SKYZACK 评论0 收藏0
  • 慕课网_《SpringMVC数据绑定入门》学习总结

    摘要:数据绑定入门学习总结时间年月日星期日说明本文部分内容均来自慕课网。慕课网教学示例源码个人学习源码第一章课程介绍数据绑定入门概述数据绑定概念来自百度百科简单绑定是将一个用户界面元素控件的属性绑定到一个类型对象实例上的某个属性的方法。 《SpringMVC数据绑定入门》学习总结 时间:2017年2月19日星期日说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.co...

    Karrdy 评论0 收藏0
  • angularjs+springMvc学习笔记

    摘要:回调说白了,就是把函数当参数传给另一根函数,在另一个函数执行时调用此函数例如,在下面这段代码中,上面定义了两个函数和,下面的方法请求成功执行,失败执行异步异步的原理我看了网上的一些博客和例子,大都以定时任务为例子说明,但具体的原理我还是不太 回调 说白了,就是把函数当参数传给另一根函数,在另一个函数执行时调用此函数例如,在下面这段代码中,上面定义了两个函数success和error,下...

    dreamGong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<