小村村长

导航

Web基础回顾

前端

html: 网页

超文本标记语言

作用: 在浏览器上展示数据信息

<a href="请求路径?参数名=值&参数名称=值">超链接</a>
<form action="请求路径" method="get默认|post">
    <input type="text|password|radio|checkbox" />
    <input type="buuton|reset|submit|image" src="图片路径" />
    <input type="hidden|file|date|email" />
    <select>
        <option>上海</option>
        <option>北京</option>
    </select>
    <textarea>文本域</textarea>
</form>
<img src="图片路径" alt="当路径错误时显示的提示信息" />
<table>
    <tr>
        <th>表头单元格</th>
        <td>普通单元格</td>
    </tr>
</table>
h1 - h6
p
b strong
i
ol li
ul li

JavaScript:动态效果

作用: 给页面添加动态效果

历史: 95年左右,当时java语言非常火
	网页: html + css
    展示: 需要依赖浏览器
        
    微软: 系统 + IE
    	JScript
    网景公司: 网景导航者  --->    火狐浏览器
        干掉IE,要成功主流的浏览器
        为了提高用户的体验度(让页面动起来)
        让页面动起来 ---> 仿造java语言开发了一门新的编程语言(liveScript)  --->  这么语言翻译即可执行,用于翻译liveScript的工具已经内置到网景导航者中 
      
    ECMA组织:
        ECMAScript: 核心
        BOM
        DOM
-------------------------
        脚本语言: 需要嵌套在其他语言中使用,不能单独使用
        JavaScript: 直接翻译即可,用于翻译js代码的工具叫做js引擎,js引擎已经被所有的浏览器内置了.
================================
JavaScript的工作机制: 事件驱动机制
    当用户在网页上做具体的某一件事情时,才会触发事件并调用函数进行处理.
组成:
	ECMAScript: js核心语法
        变量声明:
			var 变量名称 = 初始值;
			var关键字可以省去不写,如果省去不写,则该变量为全局变量
        数据类型:
			原始类型: 5种
                Number String Boolean Null Undefined
                var str; // str的数据类型为Undefined
				var str = "itheima"; //String
				var str = 123; //Number
				判断对象的所属类型: typeof 变量名称
			引用类型:
				Array: 数组
                    数组长度可变,类型任意
                Date: 日期
                Math: 数学函数
                事件:	
					onclick: 单击事件
                    onsubmit: 表单提交事件
                    onchange: 改变事件
                    onload: 页面加载事件
                    onfocus: 获得焦点事件
                    onblur: 失去焦点事件
		运算符:
			+ - * / %
            + : 字符串拼接  数值运算
            var i = "10";  var j = 3;
			alert(i+j); // 103
			// == !=   判断值是否相等
			// === !==  判断值和数据类型是否一致
			// 如果2个number比较,直接比较即可
			// 如果1个number和1个String类型的数字比较时,现将String转成Number再进行比较
			// 如果2个String比较.比较的是ASCII的值
			// 如果1个Number和一个纯字符串,永远无法比较,返回值false;
			-----   && || ! 
            // js中逻辑运算符,运行结果为决定结果的那个对象本身
            // js中逻辑运算符两边可以为任意对象
            // alert(true&&false); //false(运算结果由第二个值决定)
            // alert(false&&true); //false(运算结果由第一个值决定)
            // alert(false&&false);//false(运算结果由第一个值决定)
            // alert(true&&true); //true(运算结果由第二个值决定)
            // 现将对象转成boolean,再进行逻辑运算,运算结果为对象本身
            // "abc" --> true    0 --> false
            // alert("abc"&&0); //  0
            // alert("abc"&&123); //  123
            // alert(null&&123); //  123
            // 对象转boolean操作
            // 非空对象,非0数字,非空字符串为true,其他为false
		语句:
			if(){}else if(){}
			for(var i=0;i<10;i++){}
		函数: 实现了指定功能的代码片段
			普通函数:
				函数名称(参数列表); //调用函数
				function 函数名称(参数列表){
                    函数体
                    return 返回值;
                }
			匿名函数:
				var 函数名称 = function(参数列表){
                    函数体
                    return 返回值;
                }
				匿名函数的调用,必须在定义之后
                函数名称(参数);
		事件:
			事件和事件源绑定:
				事件源: 页面上的标签
                绑定事件:
					<XXX 事件名称="函数名()"></XXX>
                派发事件:
					//1.获取事件源对象
					var obj = document.getElementById("id");
					//2.派发事件
					obj.事件名称 = function(){
                        
                    }
    BOM: 浏览器对象模型
        作用: 操作和控制浏览器
        window: 窗口对象
            消息框:
				alert() : 警告框
                confirm() : 确认框
                prompt() : 对话框
            定时器:
				// 周期执行定时器
				var interid
                    = setInterval(函数名,毫秒值); // 每隔多少毫秒调用一次指定函数
				clearInterval(interid);
				// 单次指定定时器
				// 指定毫秒后,指定指定函数
				var timeId = setTimeout("函数名()",毫秒值);
				clearTimeout(timeId);
        history: 历史对象
            history.go(-1);
        location: 连接对象  ★
            location.href="路径";// 跳转到指定路径
			location.href; // 获取当前页面的完整路径
    DOM: 文档对象模型
        作用: 操作和控制页面
		DOM: 当一个网页加载到内存中时,就会形成一个DOM对象,DOM对象包含了当前页面上的所有标签.
        概念:
			html中的内容			DOM树中
			根标签					 根节点
			标签 					 元素节点
            属性					 属性节点
            文本					 文本节点
       	获取元素对象: 获取标签对象
            var obj = document.getElementById("id");
			var obj数组 = document.getElementsByTagName("标签名");
			var obj数组 = document.getElementsByName("name属性的值");
			var obj数组 = document.getElementsByClassName("class属性的值");
		操作标签上的属性:
			获取属性值: 标签对象.属性名;
			设置属性值: 标签对象.属性名 = 值;
		操作标签体:
			获取标签体的内容:
				标签对象.innerHTM; // 获取标签体的所有内容,包含子标签
				标签对象.innerText; // 获取标签的所有文本内容,不包含子标签
			设置标签体内容:
				标签对象.innerHTML = 值;  // 设置子标签
				标签对象.innerText = 值;  // 设置的所有内容充当文本
		操作css样式:
			获取css样式:
				标签对象.style.css属性; 
			设置css样式:
				标签对象.style.css属性名 = 值;

web三大组件

Servlet: /demo1Servlet
    接收浏览器请求: 请求路径与Servlet绑定路径保持一致
    处理业务逻辑: 调用service处理业务逻辑
    生成响应: 返回浏览器执行结果
        同步响应:
            请求转发
            重定向
        异步响应:
            response.getWriter().print(...);
Filter: 过滤器
    过滤请求和响应信息,主要过滤请求信息
Listener: 监听器
    作用: 监听javaWEB的三大作用域
        ServletContextListener: 监听上下文对象的创建和销毁
            通过监听上下文对象的创建和销毁,就可以间接得知服务器的启动和关闭,我们可以在服务器启动时,加载框架的配置文件,完成项目的初始化工作
    生成周期相关: 监听对象的创建和销毁
        HttpRequestListener
        HttpSessionListener
        ServletContextListener
    域对象中属性的变化:
        HttpRequestAttributeListener
        HttpSessionAttributeListener
        ServletContextAttributeListener
    javaBean与Session的绑定与解绑:

三大作用域

HttpRequest: 请求信息域对象
    请求来的时候,浏览器会根据HTTP协议,携带很多请求信息,Tomcat服务器接到请求后,立即解析请求信息,并创建Request对象,将解析到的数据存放到Request对象中.
    作用: 存放本次请求携带的所有数据信息
    生命周期:
        创建: 请求来的时候
        销毁: 响应生成的时候
        作用范围: 本次请求
HttpSession: 会话域对象
    HTTP协议是一个无状态的协议: 永远只能记住本次请求的数据信息
    Session: 在多次请求之间共享数据信息
    生命周期:
        创建: 
            请求没有携带JSESSIONID,并调用request.getSession();
            请求携带了JSESSIONID,但没有找到对应的session空间.
        销毁:
            session超时: 默认存活30分钟
            手动销毁: session.invalidate();
            非正常关机
        作用范围:
            本次会话
    API:
        request.getSession();
            创建session空间,并返回JSESSIONID
            根据JSESSIONID找到对应的session空间
ServletContext:
    一个项目有且仅有一个ServletContext
    生命周期:
        创建: 服务器启动时
        销毁: 服务器关闭时
        作用范围: 当前项目
        与项目共存亡

JSP

开发模式:
    servlet:
        接收请求
        处理请求
        生成响应:
            response.getWriter().print("<html>");
            response.getWriter().print("<table>");
            .....
            response.getWriter().print("</table>");    
            response.getWriter().print("</html>");
    JSP:
        组成: html + java + jsp特有内容
        JSP:浏览器访问JSP页面时,服务器会将jsp页面中所有的html代码以响应流的形式返回给浏览器
        JSP本质上就是Servlet,Servlet能做的事情,jsp都可以做,并响应数据时,开发效率比Servlet高.
        JSP的出现可以大大提高开发效率
-------------
    model1:
         技术架构:JSP + javaBean
              JSP: 接收请求,处理请求,生成响应
              javaBean: 封装数据
         优点:
            开发效率高
         缺点:
            执行效率低
            随着业务逻辑的增加,维护成本高
    jstl + EL: 为了增加jsp页面的功能
    model2:
        技术架构:JSP + Servlet + javaBean
              Servlet: 接收请求,处理请求
              JSP: 生成响应
              javaBean: 封装数据
        优点:
            逻辑清晰,方便维护
        缺点:
            简单的项目开发效率没有Model1效率高
MVC思想: 术业有专攻   
    model: 模型,封装数据
    view: 视图,展示数据
    Controller: 控制器,控制调用的相关方法和视图页面

posted on 2022-02-09 00:04  小村村长  阅读(32)  评论(0编辑  收藏  举报