JavaWeb基础

JavaWeb

HTML、JavaScript、jQuery等相关基础技术直接对照文档学习
学习网址:w3school 在线教程
下面只是自己常用知识点,因为用到不太多,方便快速浏览回忆大致内容

我是看尚硅谷视频进行学习的,每个模块都有相应的知识文档和相关资料,板块划分清晰
(初学者建议克隆全部代码,看尚硅谷视频学习)
克隆地址:https://gitee.com/zhangxushare/java-web.git
在这里插入图片描述

html

字体<font>  , 标题<h1>  , 超链接<a>  ,图片<img>  , 表格 <table><tr><td>
表格的合并格子属性colspan,rowspan  , 单独完整内嵌页面<ifarme> ,
无序列表<ul><li> ,有序列表 <ol><li> ,定义列表(网站页尾标题相关信息)<dl><dt><dd>
表单<form> 可get或post  单选框radio,复选框checkbox,重置reset,下拉框select,
多行文本框textarea
绑定下拉输入框<datalist>  , 假链接和描点 <a href="#mid">#绑定指定位子id

常用的特殊字符:<  ==>>  &lt; >  ==>>  &gt; 空格  ==>> &nbsp;

JavaScript

基础知识点

1.script标签可用来定义js代码,也可用来引入js文件。但是,两个功能二选一使用。不能同时使用两个功能

<script type="text/javascript">alert(user);</script>
<script type="application/javascript" src="../1.js"></script><!--单纯只是引入插入到该位置-->

2.变量

javaScript的变量类型:数值类型: number , 字符串类型: string , 对象类型: object
布尔类型: Boolean , 函数类型: function

var let  const 定义变量,都可当作不同的作用域,怪麻烦的,就直接用var,有冲突了再考虑其他的

JavaScript的特殊值:undefined 未定义 ,null ,NaN 非数字,非数值

3.关系和逻辑运算:== 只判断值的大小 ===还要判断类型是不是一样
在JavaScript语言中,所有的变量,都可以做为一个boolean类型的变量去使用。
0 、null、 undefined、””(空串) 都认为是 false

&& 且运算。
有两种情况:
第一种:当表达式全为真的时候。返回最后一个表达式的值。
第二种:当表达式中,有一个为假的时候。返回第一个为假的表达式的值
|| 或运算
第一种情况:当表达式全为假时,返回最后一个表达式的值
第二种情况:只要有一个表达式为真。就会把回第一个为真的表达式的值

4.数组 :javaScript语言中的数组,只要我们通过数组下标赋值,那么最大的下标值,就会自动的给数组做扩容操作。

5.函数定义
匿名函数:function () {}; 使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数,
匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。
第一种方法:
直接用function 函数名 (){} 形式,此方法的函数可以在函数定义语句之前,也可以在定义语句之后调用,因为执行时会首先将“function 函数名 (){} ”进行提前编译。
第二种方法:
使用var 函数名=function(){} 形式来定义,但是此时的函数只能在定义语句之后进行调用。
a.函数有无返回值看有没有 return (JavaScript中的return,注意调用后有没有参数接收)
b.js的函数是不能重载的,最新的会覆盖之前的
c.函数中隐形参数arguments

6.自定义对象

Object对象的定义:
        //     var 变量名 = new Object();   // 对象实例(空对象)
        //     变量名.属性名 = 值;		  // 定义一个属性
        //     变量名.函数名 = function(){}  // 定义一个函数
大括号对象的定义:
        // var 变量名 = {			// 空对象
        //     属性名:值,			// 定义一个属性
        //     属性名:值,			// 定义一个属性
        //     函数名:function(){}	// 定义一个函数
        // };

事件

onload、onclick、onblur、onchange、onsubmit具体步骤都如下:雷同

		// onload事件的方法
        function onloadFun() {
            alert('静态注册onload事件,所有代码');
        }
        // onload事件动态注册。是固定写法
        window.onload = function () {
            alert("动态注册的onload事件");
        }	
	    <body onload="onloadFun();">

document

document.createElement 、document.getElementBy——Id,Name,TagName创建或获取标签

jQuery

$()核心函数的4个作用:
传入参数为[函数]时:在文档加载完成后执行这个函数
传入参数为[HTML字符串]时:根据这个字符串创建元素节点对象
传入参数为[选择器字符串]时:根据这个字符串查找元素节点对象
传入参数为[DOM对象]时:将DOM对象包装为jQuery对象返回

Servlet

手动实现 Servlet 程序
1、编写一个类去实现 Servlet 接口
2、实现 service 方法,处理请求,并响应数据
3、到 web.xml 中去配置 servlet 程序的访问地址

Servlet 的生命周期
1、执行 Servlet 构造器方法
2、执行 init 初始化方法 第一、二步,是在第一次访问,的时候创建 Servlet 程序会调用。
3、执行 service 方法 第三步,每次访问都会调用。
4、执行 destroy 销毁方法 第四步,在 web

Servlet类的继承体系

1.servlet顶级接口,2.GenericServlet 持有配置config,3.httpservlet实现service()方法,实现分发restful请求,4.自定义servlet程序

jsp

jsp 是 java server pages,java的服务器页面。jsp的本质是:Servlet程序。
作用:jsp的作用是为了代替Servlet程序回传html页面数据。

jsp有三种脚本

1、声明脚本
声明脚本它可以声明jsp页面中的代码。
格式是:<%! %>
2、达式脚本
作用: 表达式脚本的作用是在jsp页面上输出数据。
格式是:<%= %>
3、代码脚本
作用:可以在jsp页面中定义自己需要的语句。
格式是:<% %>

jsp注释
<%-- jsp注释 --%>
jsp注释可以注掉jsp中所有内容,在jsp翻译的时候会被完全忽略掉

jsp中的九大内置对象:1、request ,2、response ,3、pageContext, 4、exception,5、application,6、out输出,7、page 指向this对象,也就是jsp对象,8、session,9、servletConfig

四个域对象
pageContext
request
session
application

它们从小到大的顺序分别是:pageContext 、Request、Session 、application(优先从小找)

out和Response输出的区别。
out输出都写到out缓冲区中
response输出都写到Respnse的缓冲区中,

当jsp页面中所有代码都执行完成之后。全做以下两个操作
1、执行out.flush()操作,把out缓冲区中的数据都追加到Response缓冲区中
2、执行Response的flush()操作。把Response缓冲区中的数据,都写给客户端。

在jsp页面中,统一使用out来进行输出。 

out.write()可以输出字符串
out.print()可以输出任意数据(总结之后,都用print)

jsp的常用包含标签

​ 静态包含
​ 格式: <%@ include file=“”>

动态包含
	格式是:<jsp:include page="" >
请求转发
	格式是:<jsp:forward page="" >

EL表达式和JSTL

EL 表达式的格式是:${表达式}
EL 表达式在输出 null 值的时候,输出的是空串。jsp 表达式脚本输出 null 值的时候,输出的是 null 字符串。

${ empty emptyNull } empty可以判断是否为空,任何类型都可以

i.<c:set />
作用:set 标签可以往域中保存数据
域对象.setAttribute(key,value);
scope 属性设置保存到哪个域
page 表示 PageContext 域(默认值)
request 表示 Request 域
session 表示 Session 域
application 表示 ServletContext 域
var 属性设置 key 是多少
value 属性设置值

ii.<c:if />
if 标签用来做 if 判断。
test 属性表示判断的条件(使用 EL 表达式输出)

iii.<c:choose> <c:when> <c:otherwise>标签
作用:多路判断。跟 switch ... case .... default 非常接近
choose 标签开始选择判断
when 标签表示每一种判断情况
test 属性表示当前这种判断情况的值
otherwise 标签表示剩下的情况
<c:choose> <c:when> <c:otherwise>标签使用时需要注意的点:
1、标签里不能使用 html 注释,要使用 jsp 注释
2、when 标签的父标签一定要是 choose 标签	

<c:forEach>
1.遍历 1 到 10,输出
begin 属性设置开始的索引
end 属性设置结束的索引
var 属性表示循环的变量(也是当前正在遍历到的数据)
for (int i = 1; i < 10; i++)

2.遍历 Object 数组
for (Object item: arr)
items 表示遍历的数据源(遍历的集合)
var 表示当前遍历到的数据

3.遍历集合
items 表示遍历的集合
var 表示遍历到的数据
begin 表示遍历的开始索引值
end 表示结束的索引值
step 属性表示遍历的步长值
varStatus 属性表示当前遍历到的数据的状态

Filter

Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器。

Filter 的生命周期

1、构造器方法
2、init 初始化方法
第 1,2 步,在 web 工程启动的时候执行(Filter 已经创建)
3、doFilter 过滤方法 第 3 步,每次拦截到请求,就会执行
4、destroy 销毁 第 4 步,停止 web 工程的时候,就会执行(停止 web 工程,也会销毁 Filter 过滤器)

FilterConfig

FilterConfig 类见名知义,它是 Filter 过滤器的配置文件类。
tomcat 每次创建 Filter 的时候,也会同时创建一个 FilterConfig 类,这里包含了 Filter 配置文件的配置信息。
FilterConfig 类的作用是获取 filter 过滤器的配置内容
1、获取 Filter 的名称 filter-name 的内容
2、获取在 Filter 中配置的 init-param 初始化参数
3、获取 ServletContext 对象

FilterChain 过滤器链

就是过滤链(多个过滤器)其特点:
1.所有的资源和filter都默认执行在一个线程中
2.多个filter共同执行时,共用同一个request对象

FilterChain**.doFilter执行下一个拦截器,顺序是web.xml中从上至下**

ThreadLocal 的使用

public static ThreadLocal<Object> threadLocal = new ThreadLocal<Object>();

线程局部变量,可以给当前线程关联一个数据变量,其特点如下:
1、ThreadLocal 可以为当前线程关联一个数据。(它可以像 Map 一样存取数据,key 为当前线程)
2、每一个 ThreadLocal 对象,只能为当前线程关联一个数据,如果要为当前线程关联多个数据,就需要使用多个 ThreadLocal 对象实例。
3、每个 ThreadLocal 对象实例定义的时候,一般都是 static 类型
4、ThreadLocal 中保存数据,在线程销毁后。会由 JVM 虚拟自动释放。

使用Filter和ThreadLocal组合管理事物
1.使用ThreadLocal确保所有dao操作在同一个connection连接对象中完成
2.使用Filter过滤器统一给所有的service都加上try-catch

try { //所有service的异常一定要抛给Filter过滤器    
    filterChain.doFilter(servletRequest,servletResponse);//间接调用了service中的方法
    JdbcUtils.commitAndClose();// 提交事务 
 } catch (Exception e) { 
    JdbcUtils.rollbackAndClose();//回滚事务 
}

AJAX请求

Ajax 是一种浏览器通过 js 异步发起请求,局部更新页面的技术。
Ajax 请求的局部更新,浏览器地址栏不会发生变化
局部更新不会舍弃原来页面的内容

$.ajax 方法
    url 表示请求的地址 
    type 表示请求的类型 GETPOST 请求 
    data 表示发送给服务器的数据 格式有两种:
    一:name=value&name=value 二:{key:value} 
	success 请求成功,响应的回调函数 
    dataType 响应的数据类型 
    常用的数据类型有: text 表示纯文本 xml 表示 xml 数据 json 表示 json 对象
    $.ajax({
        url: "http://localhost:8080/ajaxServlet",
        //data: "action=jQueryAjax", 
        data: {action: "jQueryAjax"},
        type: "GET", 
        success: function (data) {
            // alert("服务器返回的数据是:" + data); 
            var jsonObj = JSON.parse(data);
            $("#msg").html("编号:" + data.id + " , 姓名:" + data.name);
        },
        dataType: "json"
    });
$.get 方法和$.post 方法
	url 请求的 url 地址 
    data 发送的数据
    callback 成功的回调函数 
    type 返回的数据类型 $.get/post(
        "http://localhost:8080/ajaxServlet",
        "action=jQueryGet",
        function (data) {},
        "json");
$.getJSON 方法
	url 请求的 url 地址
	data 发送给服务器的数据
	callback 成功的回调函数
表单序列化 serialize() 方法 可以把表单中所有表单项的内容都获取到,并以name=value&name=value 的形式进行拼接。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值