今天课下,偶然听到有几个同学在讨论这么一个问题:Servlet 到底属于 MVC 模式的哪一层?谈到这个问题就考察你对于 MVC 模式的熟悉程度了。本篇我们就分别从 MVC 模式、Servlet 和 JSP 的原理来探讨一下,Servlet 到底属于哪一层?
本章主要内容:<if>条件元素、<choose>、<when>、<otherwise>分支元素、<trim>、<where>、<set>添加前后缀元素、<foreach>遍历元素、<bind>字符串拼接元素。
新建一个Moudle , springmvc-02-hello,确定依赖导入进去了
作为.NET转Java的码农,有时候真的很怀念宇宙第一IDE:Visual Studio,根据模板创建的项目很少有不能直接运行的,算了,不说也罢,继续配置。。。
学习Spring的时候,在配置web.xml的时候,把url-pattern 配置成/*,启动项目后去访问自己的Controller总是报404.检查了很多发现资源是存在的,配置的地址也没有问题,为什么会出现404错误呢?最后发现是自己配置的 url-pattern 不对! 现整理一下: (1):在使用springmvc时,都会在web.xml中配置一个dispatchservlet,如下:
提高Java Web 开发,不得不说http协议,接下来就说Servlet 和 Jsp 这两个java类。
/ 和 /* 的区别:< url-pattern > / </ url-pattern > 不会匹配到.jsp, 只针对我们编写的请求;即:.jsp 不会进入spring的 DispatcherServlet类 。< url-pattern > /* </ url-pattern > 会匹配 *.jsp,会出现返回 jsp视图 时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报404错。
一般情况下,我们开发时,一个Controller类就是一个模块,而里面的所有处理器方法就是该模块的不同业务功能。这个时候,我们Controller与Controller之间就要用路径来区分开来。以表示不同的业务模块。这个时候,只需要在类上再加上@RequestMapping("/test")注解就OK了。
马克-to-win:动态网站项目开发中,当我们jsp表单一提交,应提交给谁呢?上一章,我们在讲jsp技术的时候,当时我们曾把jsp提交给另外一个jsp处理。这实际上是一个非常不好的实践,为什 么呢?因为Servlet的优势就是java代码好维护。换句话说,如果你要维护纯java代码的话,你应宁愿放在Servlet当中,也不愿放在jsp当中。因为jsp在能运行前,还需转成一个Servlet。所以当你编写jsp的时候,在eclipse当中,当你把光标放在一个变量上时,这个变量在文 件的其他地方,不会高亮。但当你编写Servlet时就不是这样了。马克-to-win:所以在实践当中,jsp一般我们提交给一个Servlet。 Servlet负责控制 (Controller[C])整个儿jsp(V[V]iew)表单提交后的流程。第一步,从request当中获取提交上来的数据。第二步调用bean (M [M]odel),让bean去处理这些数据,并返回结果。通常,复杂的业务处理过程需要和数据库打交道。第三步,处理返回的数据,比如放在 Session当中,之后做跳转。第二步通常非常复杂,代码量比较大。如果直接放在Servlet当中。Servlet会变得非常臃肿,不利于我们维护代 码。
在Spring MVC中,提供了一个全局异常处理器,用于对系统中出现的异常进行统一的处理。在一般的系统中,DAO,Service及Controller层都出现的异常都以“throws Exception”的形式向上层抛出,最后都会由Spring MVC的前端控制器DispatcherServlet统一由全局异常处理器进行异常处理。
1)如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 .
之前讲过,springboot项目源码里面有一个index.html页面,这个名字是固定的,项目一启动就会跳转到这个页面,没有的话那么就报错。
Spring MVC起源篇--01 MVC起源 Servlet独行天下的时代 繁盛一时的JSP时代 Servlet与JSP的联盟 数英雄人物,还看今朝 Spring MVC初探 实践出真知 ContextLoaderListener与/WEB-INF/applicationContext.xml ContextLoaderListener之外的选择 ServletContext是啥(Tomcat知识点巩固) Dispathcher与xxx-servlet.xml 小结 小案例 ---- MVC起源 Serv
1、新建一个Module , springmvc-02-hello , 添加web的支持!
最近在写一个业务上用到的框架,回想起接触过的一些 MVC 框架,尤其是主要贡献在后端表现层上的那些,它们之间有太多的相似,在不断解耦的过程中,层数和模块数也越来越多,需要不断引入层与层之间的映射逻辑将不同层次之间关联起来,我们不妨来查看一下这个过程,能否寻找一些 MVC 框架的共性和启示。
注意最上边<context:component-scan base-package="com.kb.controller"/>指定了扫描的包名,这里后面要创建的包要保持一致,可以后面再添加。
JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。从开始学习Java Web应用,第一个学习的就是JSP和Servlet,我们就不过多介绍。直接进入Spring Boot对其集成使用的部分。
这篇主要讲解 controller配置的几种方式。 1. URL对应 Bean 如果要使用此类配置方式,需要在XML中做如下样式配置 <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <bean name="/hello.do" class="cn.sxt.controller
摘要:SpringBoot官方不推荐使用JSP来开发web页面,而是推荐如Thymeleaf,FreeMarker等模板引擎来开发,但是绝大部分做java的程序员还是习惯jsp;所以,本文先讲解SpringBoot如何支持jsp开发,后面再讲如何支持Thymeleaf。 整合jsp还是比较简单的,具体实践步骤如下:
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。
在上篇博文 Spring MVC-01循序渐进之Model 2和MVC中,我们可以看到业务逻辑代码都写在了Servlet控制器中,这个Servlet随着应用复杂度的增加而不断增加,变得难以维护,为了避免该问题,我们应该将业务逻辑代码提取到独立的被称为controller的类中
MVC模式使应用程序的不同方面(输入逻辑,业务逻辑 和 UI逻辑)分离,同时提供这些元素之间的松耦合。
所谓 MVC(Model、View、Controller),其实是一种软件设计范式,通过将 业务逻辑、数据、显示分离的方法来组织代码,最主要的目的是降低视图和业务逻辑代码之间的双向耦合。其中的各部分如下:
1、在web.xml中配置前端控制器,拦截请求,然后配置加载SpringMVC的配置文件(处理器映射器、处理器适配器、视图解析器等) <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
上一篇我们学习了注解式开发的配置方式并写了一个小Demo跑起来。今天我们来学习注解开发的参数接收。处理器方法中的常用参数有五类,这些参数会在系统调用时由系统自动赋值,即程序员可以在方法中直接使用。具体如下:
Springmvc入门 本人独立博客https://chenjiabing666.github.io 作用 解决V(View)和C(Controller)的交互问题,即解决了Controller如果接收了用户的请求,并将结果响应给用户的问题 springmvc约定了一套处理用户请求的流程 Springmvc的核心组件 DispatcherServlet :前端控制器,请求入口 HandlerMapping : 控制器,其中存放着处理请求的组件,请求派发 Controller :控制器,处理请求 ModelA
-如果用户输入的的URL地址在这个<package>下,即是namespace符合,但是在其中没有相应的action的做出响应,可能是地址输错了,此时的我们需要使其跳转到error.jsp页面,给用户一个提示。那么我们这个时候就需要使用默认的action。
答∶JSP是以另外一种方式实现的Servlet,Servlet是JSP的早期版本,在JSP中,更加注重页面的表现,而在Servlet中则更注重业务逻辑的实现。
当我们发送一个请求时, 如果没有找到对应的 mapping,则会到配置文件当中进行匹配 mvc:view-controller
Java Web,是用 Java 技术来解决相关web互联网领域的技术栈。web 包括:web 服务端和 web 客户端两部分。Java 在客户端的应用有 Java Applet,不过使用得很少,Java 在服务器端的应用非常的丰富,比如 Servlet,JSP、第三方框架等等。Java 技术对 Web 领域的发展注入了强大的动力。
配置前端控制器 在web.xml中配置前端控制器 <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>DispatcherServlet的全限定类名</servlet-class> <init-param> <param-name>contextCo
SpringMVC框架是围绕 DispatcherServelt 调度器进行设计的
Spring MVC是一种基于MVC(Model-View-Controller)设计模式的Web框架,其中Controller处理用户请求并向View(JSP或HTML页面)返回模型数据。在这个过程中,Controller必须将数据传递到View中,这通常是通过将数据存储在request域对象中实现的。在Spring MVC中,我们可以使用多种方法将数据存储在request域对象中。
MVC 设计概述 在早期 Java Web 的开发中,统一把显示层、控制层、数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1: 出现的弊端: JSP 和 Java Bean 之间严重耦合,Java 代码和 HTML 代码也耦合在了一起 要求开发者不仅要掌握 Java ,还要有高超的前端水平 前端和后端相互依赖,前端需要等待后端完成,后端也依赖前端完成,才能进行有效的测试 代码难以复用 正因为上面的种种弊端,所以很快这种方式就被 Servlet + JSP +
这里使用注解的方式,有三个方法可以被前端调用,分别为controllerFunc1;controllerFunc2;controllerFunc3;URL分别为http://localhost:8080/controller1;http://localhost:8080/controller2;http://localhost:8080/controller3。由于springmvc-servlet.xml里配置了web访问的路径前缀包括jsp,因此在WEB-INFO路径下添加jsp文件夹,并创建test.jsp文件。
上一次我们使用Spring Boot开发了一个简单的REST服务应用,那么传统网页应用怎么做呢? 渲染HTML是Spring Boot可以完美胜任的,并且提供了多种模板引擎的默认配置支持,所以在模板引擎的支持下,我们可以很快的上手开发动态网站。 Spring Boot提供了默认配置的模板引擎主要有以下几种: Thymeleaf FreeMarker Velocity Groovy Mustache Spring Boot建议使用这些模板引擎,避免使用JSP,但JSP有天然的血缘关系,我们教程也是从最简便的
MVC(Model View Controller)是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:
Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来。
一、什么是MVC设计模式? MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。 (控制器Controller)- 负责转发请求,对请求进行处理。 (视图View) - 界面设计人员进行图形界面设计。 (模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。 二、model1和mod
Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。
很多公司都会用Spring MVC,而且初级程序员在面试时,一定会被问到这方面的问题,所以这里我们来通过一个简单的案例来分析Spring MVC,事实上,我们在培训中就用这个举例,很多零基础的程序员能很快用这个上手。 本文的文字和案例根据java web轻量级开发面试教程改编。 1 Spring MVC代码的讲解 步骤一,创建Web项目,编写web.xml,在其中指定使用Spring的MVC,主要的代码如下。 1 <servlet> 2 <servlet-name>spring
①DispatcherServlet(请求分配器,在web.xml中配置) ②HandlerMapping(请求映射器,eg:SimpleUrlHandlerMapping) ③Controller ④ViewResolver(View)(结果视图解析器,eg:UrlBasedViewResolver) SpringMVC 的工作流程: 某些请求(eg:以“.do”结尾的请求)通过①进行分发给③处理,分发时是通过②所配置的映射表进行的;③处理完之后,返回一个ModelAndView对象(其中包含了视
参数绑定,简单来说就是客户端发送请求,而请求中包含一些数据,那么这些数据怎么到达 Controller ?这在实际项目开发中也是用到的最多的,那么 SpringMVC 的参数绑定是怎么实现的呢?下
根据我们之前搭建好的SpringBoot+SSm的项目的基础上,来增加webapp/WEB-INF的文件,由此来完成jsp页面的跳转.
在 Spring MVC 中,应用程序被分为三个主要组件:Model、View 和 Controller。Model 表示应用程序的数据和业务逻辑,View 负责生成发送到客户端 Web 浏览器的 HTML,而 Controller 充当 Model 和 View 之间的中介,处理传入的 HTTP 请求并生成适当的响应。
领取专属 10元无门槛券
手把手带您无忧上云