365bet亚洲版登录-bet官网365入口

365bet亚洲版登录拥有超过百间客房,bet官网365入口的文化历经几十年的传承和积淀形成的核心内容获得业界广泛的认可,365bet亚洲版登录是目前信誉最高的娱乐场所,同国内外几百家网上内容供应商建立了合作关系。

MVC学习笔记

  • 前端控制器Front Controller也称之为调度器(Dispatcher)---->控制器(Controller)
  • 控制器(Controller)了解所有的业务细节,负责业务数据的抽取,我们的视图模板(View template)了解所有的前端特性,负责页面呈现,我们的前端控制器(Front Controller)负责分发调度
  • MVC的核心思想是业务数据抽取同业务数据呈现相分离-->这也是一种解耦合

MVC的概念

Model + View + Controller

View:视图层,为用户提供一个UI,重点关注数据的呈现

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

Controller:控制层,调用业务逻辑产生合适的数据传递数据给视图层用于呈现

什么是MVC?
  • MVC是一种架构模式

程序分层,分工合作,即相互独立,又协同工作。

  • MVC是一种思考方式

需要将什么信息展示给用户? 如何布局? 调用那些业务逻辑?(Controller)

SpringMVC中的静态概念

  • DispatcherServlet
  • Controller
  • HandlerAdapter:在DispatcherServlet内部使用的一个类
  • HandlerInterceptor
  • HandlerMapping:
    • help DispatcherServlet to get the right Controller请求到来之后使用哪一个Controller响应请求
    • Wrap Controller with HandlerInterceptor
  • HandlerExecutionChain
    • preHandler->Controller method --> postHandle --> afterCompletion
  • ModelAndView
  • ViewResolver 视图解析器:告诉DispatcherServlet使用哪个View来呈现视图。Help DispatcherServlet to Resolve the right view to render page.
  • View: V in MVC Responsible for page rendering

    图片 1SpringMVC流程.png

web.xml的基本配置

注意web.xml的版本,我这里使用的是3.0版,只要是在2.3版本以上就可以默认的支持我们的jsp的EL表达式语言,因此这里选择比maven自动生成的头部更高的版本。

<?xml version = "1.0" encoding = "UTF-8"?><web-app 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/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Spring MVC Study</display-name> <servlet> <servlet-name>spring-mvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring-mvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping></web-app>

spring-mvc.xml spring MVC配置文件

?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/cache" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd"> <!--开启自动包扫描--> <context:component-scan base-package="cn.fungus.controller"/> <!--开启spring-mvc的注解--> <context:annotation-config/> <!--扩充了注解驱动,可以将请求的url参数绑定到Controller中某个方法的参数--> <mvc:annotation-driven/> <!--静态资源处理:css,js,html,img--> <!--<mvc:resources mapping="/resources/**" location="/resource/"/>--> <!--配置ViewResolver的bean--> <bean > <property name="prefix" value="/WEB-INF/pages/"> </property> <property name="suffix" value=".jsp"> </property> </bean></beans>

基础的Controller编写

package cn.fungus.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;/** * create by fungus on 2018/6/2 **/@Controllerpublic class HelloWorldController { @RequestMapping(value = "/hello") public String hello() { return "hello"; }}

基础的jsp页面的编写

<%-- Created by IntelliJ IDEA. User: fungus Date: 2018/6/2 Time: 13:06 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>hello world!</title></head><body> <h1>i am Hello World ,my father is HelloWorldController</h1></body></html>

需要会使用的注解

  • @Controller
  • @RequestMapping
  • URL template (@RequestParam and @PathVariable)
    • @RequestParam是用来匹配URL中的参数 比如:host:8080/hello/userId=100
    • @PathVariable用来匹配Restful标准的URL 比如:host:8080/hello/{userId},看起来更加的酷
  • HttpServletRequest and/or HttpSession

数据的绑定:

@ModelAttribute

添加数据之后的请求重定向:

  • redirect:
  • forward:

spring-mvc.xml中添加一个bean

<!--200*1024*1024即200M,resolveLazily启动是为了推迟文件解析,以便于捕获文件大小异常 --> <!--multipartResolver--> <!--背后依赖commons-fileupload包,所以需要引入这个包 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> --> <bean > <property name="maxUploadSize" value="209715200"/> <property name="defaultEncoding" value="UTF-8"/> <!--延迟加载--> <property name="resolveLazily" value="true"/> </bean>

POM文件中引入

 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency>

需要添加两个Controller,一个用来控制显示上传的页面,一个用来执行上传的逻辑

@RequestMapping(value = "/upload", method = RequestMethod.GET) public String showUploadPage() { return "files"; } @RequestMapping(value = "/doUpload", method = RequestMethod.POST) public String doUploadFile(@RequestParam MultipartFile file) throws IOException { if (!file.isEmpty { System.out.println("Process file(): " + file.getOriginalFilename; FileUtils.copyInputStreamToFile(file.getInputStream(), new File("C:\Users\fungus\Desktop\load", System.currentTimeMillis() + file.getOriginalFilename; } return "success"; }

file.jsp

<%-- Created by IntelliJ IDEA. User: fungus Date: 2018/6/2 Time: 14:40 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>Upload Files</title></head><body> <h1>上传附件</h1> <form method="post" action="/doUpload" enctype="multipart/form-data"> <input type="file" name="file"/> <input type="submit"/> </form></body></html>

success.jsp

<%-- Created by IntelliJ IDEA. User: fungus Date: 2018/6/2 Time: 14:44 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>Success</title></head><body> <h1>Success</h1></body></html>
  • JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
  • Restful Web Service

Spring MVC 提供了一种ViewResolver

ContentNegotiatingViewResolver--->针对不同的请求对象提供不同的数据格式

  • 人--> JSPView
  • 机器 --> JsonView

标记json数据格式方法:

  • ResponseEntity
  • @ResponseBody/@ResquestBody

本文由365bet亚洲版登录发布于计算机网络,转载请注明出处:MVC学习笔记

您可能还会对下面的文章感兴趣: