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内从中的数据,这样的过程称之为渲染
。
- 添加thymeleaf的jar包
- 新建一个ViewBaseServlet
- 在web.xml中配置上下文参数(设置前缀、设置后缀)
- 使我们的Servlet继承ViewBaseServlet
- 逻辑视图名称:index
- 物理视图名称:前缀+逻辑视图+后缀即/index.html
- 通过逻辑视图名称得到物理视图名称。
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对视图进行渲染,最终转发到视图所对应页面