文章目录
一、Filter
1-1、概念
- 概念:Filter 表示过滤器,是JavaWeb 三大组件(Servlet、Filter、Listener)之一
- 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。
- 过滤器一般完成一些通用的操作,比如:权限控制、统一编码处理、敏感字符处理等等。
1-2、Filter 快速入门
@WebFilter("/*" ) //配置的是需要拦截的地址
public class FilterDemo implements Filter //实现的是javax下的Filter接口
{
@Override
public void init(FilterConfig filterConfig) throws ServletException
{
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException
{
//1.放行前,对servletRequest的请求数据进行处理
//.......
//
System.out.println("执行doFilter.........");//服务器启动的时候,doFilter会默认执行一次。我记得有个什么属性可以改的在注解那。
//2.放行操作
filterChain.doFilter(servletRequest,servletResponse);
//3.放行后,对servletResponse的响应数据进行处理
//。。。
System.out.println("3");
}
@Override
public void destroy()
{
}
}
1-3、Filter 执行流程
1-4、Filter 使用细节
-
Filter 拦截路径配置
拦截具体的资源:/index.jsp:只有访问index,jsp时才会被拦截。
目录拦截:/user/*:访问/user下的所有资源,都会被拦截
后缀名拦截:jsp:访问后缀名为jsp的资源,都会被拦截
拦截所有:/:访问所有资源,都会被拦截 -
过滤器链
一个Web应用,可以配置多个过滤器,这多个过滤器称为过滤器链
注解配置的Filter,优先级按照**过滤器类名(字符串)**的自然排序
二、Listener
三、AJAX
3-1、概念:
- AJAX(Asynchronous JavaScript And XML):异步的JavaScript 和 XML
3-1-1、AJAX作用:
-
与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据使用了AJAX和服务器进行通信,就可以使用 HTML+AJAX来替换JSP页面了
-
异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想、用户名是否可用校验,等等…
3-1-2、同步和异步
简而言之就是异步,它不需要等待服务端的处理,可以直接连续进行客户端操作。
3-2、AJAX 快速入门
<script>
//1.创建核心对象
// 创建 XMLHttpRequest 对象
const xhttp = new XMLHttpRequest();
//2.发送请求
xhttp.open("GET", "http://localhost:8080/JavaWeb_new_war_exploded/AjaxServlet");//一般使用ajax之后,前后端分离(代码在不同项目里),所以需要写绝对路径。
xhttp.send();
//3.获取响应对象
xhttp.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200)
{
alert(this.responseText);
}
};
</script>
3-3、Axios 异步框架
- 下载axios-0.18.0.js文件
- 代码演示
<script src="../js/axios-0.18.0.js"></script>
<script>
axios({
method:"GET",
url:"http://localhost:8080/JavaWeb_new_war_exploded/AjaxServlet?userName=lee"
}).then(function (resp)
{
alert(resp.data);
})
/*axios({
method:"post",
url:"http://localhost:8080/JavaWeb_new_war_exploded/AjaxServlet",
data: "userName=lee"
}).then(function (resp)
{
alert(resp.data);
})*/
// post与get不同之处就是请求数据的书写格式不同
/*上述代码还没有成功实现,好像是axios-0.18.0.js的问题,不知道*/
</script>
四、JSON
4-1、概念
- JavaScript Object Notation。JavaScript 对象表示法
+由于其语法简单,层次结构鲜明,现多用于作为数据载体,在网络中进行数据传输
4-2、JSON 基础语法
- JSON的数据类型为:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
nullvar JSON= { "name":"lee", age:18, istrue:true, "addr":["gui","yang","guang"] } alert(JSON.addr)
4-3、JSON 数据和Java对象转换
-
使用阿里的fastjson工具类
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>2.0.0</version> </dependency>
User user=new User("lee","685470"); //请求数据:JSON字符串转为Java对象 String jsonString = JSON.toJSONString(user); //响应数据:Java对象转为JSON字符串 User user1 = JSON.parseObject(jsonString, User.class); System.out.println(jsonString); System.out.println(user1);
五、Vue
5-1、概念
- Vue 是一套前端框架,免除原生JavaScript中的DOM操作,简化书写
- 基于MVVM(Model-View-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上
- 官网:https://cn.vuejs.org
5-2、Vue 快速入门
<body>
<div id="app">
<input v-model="username">
<!-- 插值表达式 -->
{{username}}
</div>
<script src="../js/vue.js"></script>
<script>
//1.创建Vue核心对象
new Vue(
{
el: "#app",
data() {
return {
username: ""
}
}
}
)
</script>
</body>
5-3、Vue 常用指令
- Vue核心对象
//1.创建Vue核心对象 new Vue( { el: "#app", data() { return { username: "", url:"", arrs:["lee","min","jie","dei","mei"], count:5 } }, methods: { show() { alert("Vue按钮被点了!"); } } } )
(下述都所以标签都在id为app的div标签里)
-
v-model
<input v-model="username"> <!-- 插值表达式 --> {{username}}
-
v-for
<div v-for="(arr,i) in arrs"> <!--//v-for 是针对他所在的标签进行遍历,所以每遍历一次都会生成一个新的div--> {{i+1}}:{{arr}} <br> </div>
-
v-if
v-show
<div v-if="count==6">我是666</div> <div v-else-if="count==5">我是555</div> <div v-else-if="count==4">我是444</div> <div v-else-if="count==3">我是333</div> <!--这里只能用两个等于 == 进行判断,用===判断时,v-else-if不起效果 --> <div v-else>都不对!</div> <hr> <div v-show="count==5">lee在v-show的div里</div> <label> <input v-model="count"> {{count}} </label>
-
v-bind
<a v-bind:href="url">输入框内的地址</a> <br> <a :href="url">输入框内的地址</a> <!--与上述方式相同--> <input v-model="url">
-
v-on
<input type="submit" value="Vue按钮" v-on:click="show()"><!-- v-on:与事件绑定 --> <input type="submit" value="Vue按钮" @click="show()"> <!-- @ 同上-->
5-4、Vue 生命周期
- 生命周期的八个阶段:每触发一个生命周期事件,会自动执行一个生命周期方法(钩子)
- mounted:挂载完成,Vue初始化成功,HTML页面渲染成功。
六、Element
- Element:是饿了么公司前端开发团队提供的一套基于 Vue 的网站组件库,用于快速构建网页组件:组成网页的部件,例如 超链接、按钮、图片、表格等等~
- Element官网
6-1、Element 快速入门
6-2、Element 布局
Element 中有两种布局方式:
-
Layout 布局:通过基础的 24 分栏,迅速简便地创建布局
-
Container 布局容器:用于布局的容器组件,方便快速搭建页面的基本结构(一般就是左边具有一个导航栏的布局方式)
-
Element官网<官网可查询相应代码>