SpringMVC:HelloWorld

MVC

MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分

M:Model,模型层,指工程中的JavaBean,作用是处理数据

JavaBean分为两类:

  • 一类称为实体类Bean:专门存储业务数据的,如 Student、User 等
  • 一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。

V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据

C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器


SpringMVC是表述层(controller)框架


<!-- 配置SpringMVC的前端控制器,对浏览器发送的请求统一进行处理 -->
<servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <!--
        设置springMVC的核心控制器所能处理的请求的请求路径
        /所匹配的请求可以是/login或.html或.js或.css方式的请求路径
        但是/不能匹配.jsp请求路径的请求
    -->
    <url-pattern>/</url-pattern>
</servlet-mapping>

由于Maven工程需要将配置文件放在resource文件下,所以默认配置方式不合适。因此引出了扩展配置方式。

<servlet>
    <servlet-name>SpringMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:SpringMVC.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

查漏补缺:Vue

//定义js对象方式一
var person = new Object();
person.name="tom";
person.hello=function(){
	alert("hello");
}
//定义js对象方式二
var student ={
    "name":"tom",
    "hello":function(){
    	alert("student hello")
    }
}
//定义vue对象
var vue = new Vue({
	//绑定标签
    "el":"#div1",
    "data":{
    	msg:"hello123"
    }
});
//v-bind可以绑定属性。可以缩写为:xxx
<input :value="userName"></input>

//v-model:value可以完成双向存储。
<div id="div1">
    <font>{{msg}}</font><br />
    <!--此时修改input框里的内容,font里的内容也会改变-->
    <input v-model:value="msg" />
</div>

//v-if和v-else之间不能有其他节点。
//v-for进行循环,类似于jstl的<c:for>
<tr v-for="fruit in fruitList">
    <td>{{fruit.name}}</td>
</tr>

//v-on:click表示绑定点击事件简写为@click
<input type="button" @click="fanzhuan" value="反转"/>
//需在Vue对象中定义方法。
methods:{
	fanzhuan:function(){
        this.msg=this.msg.split("").reverse().join("");
    }
}

查漏补缺——Thymeleaf

在index.html页面上加载java内从中的数据,这样的过程称之为渲染

  1. 添加thymeleaf的jar包
  2. 新建一个ViewBaseServlet
  3. 在web.xml中配置上下文参数(设置前缀、设置后缀)
  4. 使我们的Servlet继承ViewBaseServlet
    1. 逻辑视图名称:index
    2. 物理视图名称:前缀+逻辑视图+后缀即/index.html
  5. 通过逻辑视图名称得到物理视图名称。

SpringMVC

  • 创建一个控制器类。

    @Controller
    public class HelloController {}
    
  • 让他的方法来实现thymeleaf的跳转

    //到首页
    @RequestMapping("/")
    public String index(){
        return "index";
    }
    
    //到指定的页面
    <a th:href="@{/target}">点我跳转</a>
    @RequestMapping("/target")
    public String toTarget(){
        return "target";
    }
    
  • 小结

    浏览器发送请求,若请求地址符合前端控制器的url-pattern,该请求就会被前端控制器DispatcherServlet处理。前端控制器会读取SpringMVC的核心配置文件,通过扫描组件找到控制器,将请求地址和控制器中@RequestMapping注解的value属性值进行匹配,若匹配成功,该注解所标识的控制器方法就是处理请求的方法。处理请求的方法需要返回一个字符串类型的视图名称,该视图名称会被视图解析器解析,加上前缀和后缀组成视图的路径,通过Thymeleaf对视图进行渲染,最终转发到视图所对应页面

上一篇:IDEA(maven)创建springMVC项目(4)——传参


下一篇:springMVC-拦截器