JavaWeb学习笔记4

一、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)
    数组(在方括号中)
    对象(在花括号中)
    null
    var 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官网<官网可查询相应代码>

  • 30
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值