当前位置: 首页 > news >正文

SpringMVC;MVC模式;Spring环境搭建;

一,介绍MVC模式:

         MVC模式:

                1.M:model 模型,业务模型和数据模型.

                2.C:controller 控制器

                3.V:view 视图

        优点:

                使用控制器C把视图V和业务模型M分离,从而使同一个程序可以使用不同的表现形式

        使用场景:

                中大型项目

        核心:

                控制器

二,学习SpringMVC框架原因

1.我们在使用servlet初期的时候发现,每一个请求都对应一个servlet ,如果有100个请求,这个时候就需要写100个servlet,这样一来就 会造成servlet的数量太多,尽管后期进行了Servlet合并,但是任然是手动进行的,耦合度太高了。

2.使用servlet进行数据接收的时候,比较的麻烦 【参数绑定】

3.我们目前书写的代码没有办法实现java代码和servlet之间的解耦

三,SpringMVC框架

1.Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。

2.Spring MVC是一个基于MVC的web框架,Spring MVC分离了控制器,模型对象,过滤器以及处理程序对象的角色,这种分离让他们更 容易进行定制。

3.Spring MVC 3.0 后全面超越Struts2,成为最优秀的MVC框架

2.Spring MVC通过一套MVC注解,让POJO成为处理请求的控制器,而无须实现任何接口

4.采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性

5.进行更简洁的Web层的开发

6.天生与Spring框架集成(如:IOC容器,AOP等)

7.能简单的进行web层的单元测试

8.支持灵活的URL到页面控制器的映射

9.非常容易与其他试图技术集成,

三, SpringMVC和Spring关系

1.SpringMVC是Spring framework的子框架.

2.SpringMVC运行后形成自己的容器.Spring也有自己的容器. ​ 2.1 称Spring的容器和SpringMVC的容器是父子容器

3.SpringMVC就是比直接使用Spring多了spring-webmvc-xxx.jar

4.在环境搭建时,区分开父子容器. ​

         4.1 直观表现:Spring和SpringMVC的内容可以配置在一个配置文件中.区分不开父子容器.可能导致出现问题:例如声明式事务绑定无 效(不报错,还没有效果.) ​

        4.2 处理办法:Spring的东西配置一个配置文件中,SpringMVC的东西配在一个文件中.

四,SpringMVC框架的执行流程

1,流程描述:

2,介绍SpringMVC的组件:

五,SpringMVC环境搭建

1,创建maven web项目

1.New Project  点击Maven 先勾选Create from archetype 选择org.apache.maven.archetypes:maven-archetype-webapp
2.设置项目名称
3.创建完成后,手动添加resources和java目录

2,添加依赖;添加SpringMVC环境jar包(servlet-api.jar + jsp-api.jar)

 <dependencies><!--进行junit单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!--Spring的5大核心jar包 --><!--依赖于commons-logging日志管理 --><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version></dependency><!--提供了框架的基本组成部分,包括IOC 和 DI--><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.1.6.RELEASE</version></dependency><!-- 提供了BeanFactory--><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.1.6.RELEASE</version></dependency><!--上下文配置对象,提供一个框架式的对象访问方式--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.6.RELEASE</version></dependency><!--提供了强大的表达式语言--><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>4.1.6.RELEASE</version></dependency><!--springMVC的jar包--><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.1.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.1.6.RELEASE</version></dependency><!--java web依赖 --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.3</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version></dependency><!-- jstl表达式 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency></dependencies>

3,编写web.xml

<web-app version="2.5"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><display-name>Archetype Created Web Application</display-name><!--设置欢迎页 --><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!--配置前端控制器,拦截的是以do结尾的url --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 自启动-在启动tomcat时立即加载对应的Servlet --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping></web-app>

4,创建Spring核心配置文件

要求:

        1.在WEB-INF下

        2.新建名字叫:<servlet-name>-servlet.xml配置文件,并配置内容

                补:<servlet-name>-servlet.xml 的意思是:如果web.xml中,<servlet-name>springmvc</servlet-name>那么创建的Spring框架的核心配置文件名就叫做springmvc-servlet.xml。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 设置注解扫描路径 --><context:component-scan base-package="com.jr.controller"></context:component-scan><!-- 默认加载注解处理器映射器和处理器适配器及很多的参数绑定 --><mvc:annotation-driven/>
</beans>

5,编写控制器

@Controller
public class UserController {@RequestMapping("reg.do")public ModelAndView show(HttpServletRequest request){ModelAndView mv=new ModelAndView();String name=request.getParameter("username");request.setAttribute("uname",name);mv.setViewName("ok.jsp");return mv;}
}

6,创建index.jsp页面

<body><form action="reg.do" method="post">用户名:<input type="text" name="username"><br/>密码:<input type="password" name="password"/><br/><input type="submit" value="提交"></form>
</body>

7,创建success.jsp页面

<body>req:${uname}
</body>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【万象AI,安全新生】美洽献力2024国家网络安全宣传周-成都站
  • Vue3+TS项目pinia使用优化在stores目录下新建index.ts
  • String,StringBuffer ,StringBuilder 的区别及其详解
  • 【验证问题记录-001】后仿中无复位寄存器的初始化问题
  • TypeScript接口
  • C#环境搭建和入门教程--vs2022之下
  • shell脚本之双重循环(详解)
  • 批量插入insert到SQLServer数据库,BigDecimal精度丢失解决办法,不动代码,从驱动层面解决
  • 《机器学习》—— PCA降维
  • ios xib 子控件约束置灰不能添加约束
  • 我发的共同一作,到底有没有用?
  • vue3 自定义指令 directive
  • 项目管理:如何确保目标的实现?
  • 基于SpringBoot+Vue+MySQL的垃圾分类回收管理系统
  • 二层交换机和三层交换机的优缺点
  • 2018一半小结一波
  • angular组件开发
  • axios 和 cookie 的那些事
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • JSDuck 与 AngularJS 融合技巧
  • Magento 1.x 中文订单打印乱码
  • OSS Web直传 (文件图片)
  • PHP那些事儿
  • React 快速上手 - 07 前端路由 react-router
  • 从0实现一个tiny react(三)生命周期
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 如何合理的规划jvm性能调优
  • 数据仓库的几种建模方法
  • 算法系列——算法入门之递归分而治之思想的实现
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 用Python写一份独特的元宵节祝福
  • Java数据解析之JSON
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​iOS实时查看App运行日志
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #微信小程序:微信小程序常见的配置传旨
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (16)Reactor的测试——响应式Spring的道法术器
  • (6)添加vue-cookie
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (六)软件测试分工
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)jdk与jre的区别
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .NET MVC第三章、三种传值方式
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .Net Remoting常用部署结构
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET_WebForm_layui控件使用及与webform联合使用
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .Net语言中的StringBuilder:入门到精通
  • .py文件应该怎样打开?