为了账号安全,请及时绑定邮箱和手机立即绑定
  • web-INF 目录下为私有文件

    查看全部
    0 采集 收起 来源:JSON(下)

    2019-07-25

  • 视图层:为用户提供UI,重点关注业务的呈现。

    模型层,业务数据的信息表示,关注支撑业务的信息构成,通常是多个业务实体的组合。

    Controller 调用业务逻辑产生合适的数据。




    查看全部
    0 采集 收起 来源:MVC概念

    2019-07-24

  • Spring MVC基本概念

    查看全部
  • pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

      <modelVersion>4.0.0</modelVersion>

      <groupId>imcc-zyh</groupId>

      <artifactId>spring-mvc-demo</artifactId>

      <packaging>jar</packaging>

      <version>1.0-SNAPSHOT</version>

      <name>spring-mvc-demo Maven Webapp</name>

      <url>http://maven.apache.org</url>

      

      <properties>

      <commons-lang.version>2.6</commons-lang.version>

      <slf4j.version>1.7.6</slf4j.version>

      <spring.version>4.1.3.RELEASE</spring.version>

      </properties>

      

      <!-- 依赖管理, 管理传递依赖, 比如两个工程依赖的spring 包版本不一致, 可以通过依赖管理来指定 -->

      <dependencyManagement>

      <dependencies>

      <dependency>

      <groupId>org.springframework</groupId>

      <artifactId>spring-framework-bom</artifactId>

      <version>${spring.version}</version>

      <type>pom</type>

      <scope>import</scope>

      </dependency>

      </dependencies>

      </dependencyManagement>

      

      <dependencies>

      <dependency>

      <groupId>org.springframework</groupId>

      <artifactId>spring-webmvc</artifactId>

      </dependency>

     

      <dependency>

      <groupId>commons-lang</groupId>

      <artifactId>commons-lang</artifactId>

      <version>${commons-lang.version}</version>

      </dependency>

     

      <dependency>

      <groupId>org.slf4j</groupId>

      <artifactId>slf4j-log4j12</artifactId>

      <version>${slf4j.version}</version>

      <exclusions>

      <exclusion>

      <artifactId>slf4j-api</artifactId>

      <groupId>org.slf4j</groupId>

      </exclusion>

      </exclusions>

      </dependency>

      </dependencies>

      

      <build>

      <plugins>

      <plugin>

      <groupId>org.eclipse.jetty</groupId>

      <artifactId>jetty-maven-plugin</artifactId>

      <version>9.2.2.v20140723</version>

      </plugin>

      </plugins>

      </build>

    </project>

    查看全部
    0 采集 收起 来源:Hello Spring MVC

    2019-07-14

  • SpringMVC中启动对JSON的支持:

    步骤1:SpringMVC的上下文环境mvc-dispatcher-serlver.xml中配置ContentNegotiatingViewResolver,具体参数不做详细讲解,只需要知道它可以将SpringMVC相同的数据呈现不同的数据表现形式,由于这里主要讲解JSON数据格式,这里使用MappingJackson2JsonView工具类库,将模型数据转化称JSON格式。如下图配置,其中JsonView类的作用是将模型数据转化成JSON格式。

    https://img1.sycdn.imooc.com//5d1c62cf0001dcd410070239.jpg

    步骤2:Maven的pom文件引入依赖,使用jackson提供工程的javaBean的JSON的转换。

    https://img1.sycdn.imooc.com//5d1c637d0001497f06310255.jpg



    https://img1.sycdn.imooc.com//5d1c639f000160b805810182.jpg


    案例:Controller中编写支持JSON的方法,其它同之前课程一样,只不过方法的返回参数Course前添加了@ResponseBody注解(并不是唯一的方式,它是简洁的方式,不需要其他配置),返回的数据将以JSON格式进行呈现,可以把数据复制到具有JSON功能的文本编辑器,并使用JSON的视图进行展示。

    数据转换为JSON的格式2:方法返回值前使用@ResponseEntity注解(该注解是SpringMVC抽象的实体,它用泛型包裹了实体类),只需要返回这个类的实例。如下图(了解)


    https://img1.sycdn.imooc.com//5d1c66910001967308190184.jpg


    查看全部
    1 采集 收起 来源:JSON(中)

    2019-07-03

  • SpringMVC协同JSON工作

    JSON(JavaScript Object Notation)定义:轻量级的数据交换格式,SpringMVC协同JSON使得模型数据在前端具有不同的表现形式。JSON在Restful Web Service中发挥重要作用,也使得Restful Web Service 称为Web Service的一种标准。

    SpringMVC处理JSON的方式:使用ContentNegotiatingViewResolver的机制处理相同数据不同呈现方式要求的应用场景,使用ViewResolver处理数据的不同呈现格式,如果需要HTML的数据呈现格式,它就会把数据代理给JSPView,如果需要JSON数据格式,它就把数据代理给JsonView。

    SpringMVC看待JSON方式:数据格式没有改变,改变的只是数据的呈现方式。



    查看全部
    0 采集 收起 来源:JSON(上)

    2019-07-03

  • repository:.容器;仓库

    查看全部
    0 采集 收起 来源:Maven的配置

    2019-06-24

  • maven 中的坐标包含 groupId,artifactId,version,packaging。这四个方面可以唯一确定我们需要的产品以及包

    查看全部
    0 采集 收起 来源:Maven介绍

    2019-06-24

  • SpringMVC中启动对JSON的支持:

    步骤1:SpringMVC的上下文环境mvc-dispatcher-serlver.xml中配置ContentNegotiatingViewResolver,具体参数不做详细讲解,只需要知道它可以将SpringMVC相同的数据呈现不同的数据表现形式,其中JsonView类的作用是将模型数据转化成JSON格式。

    https://img1.sycdn.imooc.com//5d0ed52a0001717510800487.jpghttps://img1.sycdn.imooc.com//5d0ed54e0001608306140117.jpg

    步骤2:Maven的pom文件引入依赖,提供工程JSON的转换。


    https://img1.sycdn.imooc.com//5d0ed6460001d5e106710076.jpg

    https://img1.sycdn.imooc.com//5d0ed64600012a3b06560165.jpg


    案例:Controller中编写支持JSON的方法,其它同之前课程一样,只不过方法的返回参数Course前添加了@ResponseBody注解(并不是唯一的方式,它是简洁的方式,不需要其他配置),返回的数据将以JSON格式进行呈现,可以把数据复制到具有JSON功能的文本编辑器,并使用JSON的视图进行展示。

    https://img1.sycdn.imooc.com//5d0ed9ae0001dcac06510583.jpg数据转换为JSON的格式2:方法返回值前使用@ResponseEntity注解,并添加泛型,只需要返回这个类的实例。如下图(了解)

    https://img1.sycdn.imooc.com//5d0edb540001819308760153.jpg


    查看全部
    0 采集 收起 来源:JSON(中)

    2019-06-23

  • FileUpload——单文件上传(SpirngMVC提供了文件上传的支持,通过配置,就可以使用SpringMVC提供的接口来完成文件的上传)

    配置:在SpringMVC的上下文环境mvc-dispatcher-servlet.xml中添加一个<bean>如下图,其中CommonsMultpartResolver是解析上传文件的类,它其中的属性maxUploadSize,是用来限制上传文件的大小,并设置大小为200兆的字节(209715200),默认编码属性defaultEncoding选用UTF-8,属性resolveLazily为是否使用延迟加载,这里值为true,使用延迟加载提高性能,在需要时才进行文件上传的解析,并在依赖管理中引入这个commons-fileupload的jar包,并且该jar包依赖commons-io的jar包(隐性的引入了该jar包),正好编码中也是用到了这个io包,这里就不用显示的引入它了。


    https://img1.sycdn.imooc.com//5d0cc4350001510f10640191.jpg

    https://img1.sycdn.imooc.com//5d0d80340001b74f04990177.jpg

    书写Controller:提供一个名为showUploadPage()方法,该方法用于跳转到下载文件的界面,跳转的JSP界面提供了一个form表单,表单包含input的类型为file的标签和input的类型为submit的标签,表单form中加入一个enctype属性,值为multipart/form-data,该属性是文件上传必须要显示指明的一个属性,如果没有该属性无法完成文件上传,form表单的action属性值为/courses/doUpload,所以要在CourseController中提供一个方法,并且文件上传通常指明它是通过POST方式传递过来,RequestMapping(value="doUpload",method=RequestMethod.POST),在方法的参数里使用到了SpringMVC提供的支持文件上传的类(MultipartIFile),可以查看该类的源代码(可以上网查阅如何查看Maven下的源代码),MuilipartFile提供了一些方法来访问文件,比如,获取文件名、获取文件的最初文件名(也就是本地文件名)、获取文件类型、查看该文件是否是空文件、文件大小以及文件二进制、还可以获取它的流进行读取操作,如下图二,并且这里使用@RequestParam("file")使表单的file的input标签与该方法参数相关联,这样SpringMVC就会将input的name为file的元素值绑定到Controller的参数上,并且类型会转换成MultipartFile,接下就需要把服务器传过来的文件存储在某个地方,以提供其他应用所使用,这里把它拷贝到C盘的目录(C:\temp\imooc),如果文件不为空,输出日志信息和本地文件名字,FileUtils是Commons-io的一个文件类,可以用它的copyInputStreamToFile做文件的拷贝和文件流的操作,该方法有两个参数,第一参数是源文件所代表的流(InputStream类型,这里使用MultipartFile的getInputStream()获取该流),第二个参数是File类型,并且File的第一个参数是目标地,第二个是文件名,这里必须+文件的原始名称,否则报错。

    https://img1.sycdn.imooc.com//5d0d839800013e1009230168.jpghttps://img1.sycdn.imooc.com//5d0d85450001bef502900264.jpg

    https://img1.sycdn.imooc.com//5d0d8a9f0001db0b10710345.jpg

    查看全部
  • Binding:将请求中的字段按照名字匹配的原则填入对象模型(模型对象和页面数据的绑定)。

    案例:课程添加及保存的维护界面。

    描述:创建增加课程的方法,并跳转课程增加的界面,设定访问该方法的路径为admin,请求限定为request,限制有一个请求参数add(意思是浏览器访问时候路径后+?add),注意:edit.jsp中标签的name属性应当和模型对象中的Course属性名称一致,

    随后Controller中添加增加课程的方法,该方法通过在方法里设置Course对象来获取前端form表单提交的数据,这里通过返回"redirect:view2/"+course.getCourseId();就可以重定向到viewCourse2的方法并进行添加课程的展示,添加日志信息确定是否拦截到了表单的数据信息,并把它绑定到了模型对象中log.debug("Info of Course:");log.debug(ReflectionToStringBuilder.toString(course)),ReflectionToStringBuilder是apache.lang包中Builder的一个类,进行日志输出进行程序的调试很常见,将课程的内容以键值对的形式,输出在日志当中,这样就可以查看是否映射到了Course对象中

    映射多目录结构JSP:相对路径即可。

    https://img1.sycdn.imooc.com//5d0c2cb2000170ac11260377.jpg

    @ModelAttribute:放在方法参数的注解,也可以完成数据绑定的功能,当@ModelAttribute放在方法参数上时,和使用这个标签没有区别。当将@ModelAttribute放在方法上标识的时候,表示执行这个controller类中的@RequestMapping标注的方法前都要先执行标有@ModelAttribute的方法。

    查看全部
    1 采集 收起 来源:Binding

    2019-07-02

  • Controller——传统方式

    Controller中使用HttpServletRequest对象(方法中使用HttpServletRequest对象)

    【步骤1】pom文件中引入Servlet的API

    https://img1.sycdn.imooc.com//5d0b80380001d49a04820202.jpg

    【步骤2】通过request把逻辑数据放入域对象request对象中

    https://img1.sycdn.imooc.com//5d0b815d0001e2d508030380.jpg

    课程总结:

    1、通过@Controller的annotation声明了一个Controller

    2、通过@RequestMapping的annotation映射了URL和方法,通常出现在类级别和方法级别,二者共同组合完成了对一个URL映射请求的拦截。

    3、通过URL template结合使用(@Requestparam and @PathVariable)两个标记可以将URL路径之中的参数绑定到方法参数中

    4、可以通过使用HttpServletRequest或者HttpSession之类的对象来获取想要的结果。


    查看全部
  • Controller——现代方式

    通过注解SpringMVC可以识别Controller,并且将请求映射到正确的方

    法。

    【步骤1】:通知SpringMVC的DispatcherServlet这是一个Controller,所以在类上添加@Controller,这样它就会被DispatcherServlet上下文环境管理,并且完成它的依赖注入。

    【步骤2】:指明该Controller负责处理哪一个URL,通过添加@RequestMapping("/courses"),它处理Controller负责处理根URL,也就是courses下的路径都会被它拦截到。

    【步骤3】:指明映射到哪一个方法,所以在相应方法上添加注解@RequestMapping(value="/view",method=RequestMethod.GET),同时可以限制从get方法过来的请求。


    【步骤4】处理前端传过来的参数,第一种方式:也就是get请求带了一个参数courseId=123,它需要被方法所识别,这里在方法的参数上绑定annotation,属性就是前端传过来的key(courseId)的名,通过在方法参数前使用@RequestParam("courseId"),这里可以通过日志查看绑定数据的行为(log.debug("In viewCourse,courseId={}",courseId)

    https://img1.sycdn.imooc.com//5d0cd0840001ea2f12110240.jpg

    解决不能再JSP页面引入JSTL的原因?


    <dependency>

        <groupId>javax.servlet</groupId>

        <artifactId>jstl</artifactId>

        <version>1.2</version>

    </dependency>

    第二种方式:绑定路径参数,这里使用@PathVariable("course"),要在URL路径中显示声明这个路径,也就是在@RequestMapping注解的value属性中,在路径后使用/{courseId}花括号括起来表示一个路径变量。

    例如访问路径:http://localhost:8080/view2/courseId=123

    https://img1.sycdn.imooc.com//5d0cd19b00011eb814360272.jpg

    查看全部
  • Controller——基础代码

    根据课程的ID查询某一个课程的详情

    创建名称为CourceController,首先有个依赖CourseService来完成课程查询的业务逻辑功能,并且通过@Autowired对其进行自动注入,之后可以添加日志,在pom中添加日志的依赖,private static Logger log=LoggerFactory.getLogger(CourseController.class),调用业务逻辑方法完成ID的查询,所以提供一个方法,传入课程ID和SpringMVC提供特有的类型Model,然后再向Model中添加模型对象,调用CourseService的逻辑方法,并把返回的对象通过Model的addAttribute(course),前端页面EL表达式的对象名就是course,就可以通过该对象进行取属性,由于使用了SpringMVC的InternalResourceViewResolver,所以返回的时候只需要给定jsp的名字即可如下图。

    https://img1.sycdn.imooc.com//5d0b368c0001bc3404670185.jpg

    https://img1.sycdn.imooc.com//5d0b3a410001964a08300597.jpg

    https://img1.sycdn.imooc.com//5d0b3a41000140cd08190260.jpg


    查看全部
  • 用Spring MVC开发一个课程管理模块

    配置文件:

    【配置1】——web应用的部署描述文件web.xml,当前的web.xml是由maven自动生成的,它用到web-app_2_3的版本,这个标准之下,JSP页面会默认将EL表达式语言关闭,所以要将它替换掉,使用web_app_2_4以上版本,如下图,这样Web应用就可以使用EL表达式。

    https://img1.sycdn.imooc.com//5d0b2aa2000170a507460184.jpg

    【配置2】——web.xml中加入Spring和SpringMVC的声明,以及所需Spring配置文件和SpirngMVC所需路径,如下图,所以现在有两个上下文环境一个是SpringMVC的上下文环境,一个是Spring的上下文环境(提供了所有应用公共使用的一些组件、一些服务,有service层、dao层等等,这些服务是被整个应用所共享的,没有局限在某一个DispatcherServlet上下文环境之中),另外一个则是与DispatcherServlet上下文相关的WebApplicationContext上下文,该上下文包含Controllers、HandlerMapping、ViewResolver,这里通常指的是配置文件,可以有多个DispatcherServlet,多个DispatcherServlet可以使用公共的WebApplicationContext,可以使用不同的DispathcerServlet进行不同的分发,更好进行不同类型的请求。

    https://img1.sycdn.imooc.com//5d0b2c0a0001fff308710320.jpg

    https://img1.sycdn.imooc.com//5d0b31190001c79c08090590.jpg

    【配置3】——DispatcherServlet配置文件的配置。

    https://img1.sycdn.imooc.com//5d0b336900017cb812530890.jpg

    https://img1.sycdn.imooc.com//5d0b336a0001348510890839.jpg



    【配置4】——Spring配置文件的配置。

    https://img1.sycdn.imooc.com//5d0b33330001a2c112200414.jpg

    查看全部

举报

0/150
提交
取消
课程须知
本课程是JAVA高级课程,小伙伴们需要熟练掌握JAVA开发语言基础语法以及Spring IOC/DI的配置使用。对Spring不熟悉的童鞋慎入~~
老师告诉你能学到什么?
1、MVC的思想精髓 2、Spring MVC的基本概念 3、如何利用Maven搭建Spring MVC开发环境 4、用Spring MVC实际开发一个功能模块

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!