javaweb仔细复习(内涵jQuery,servlet[常见响应],jsp语法[EL,JSTL],cookie,session,filter,线程锁定,filter过滤器,json,AJAX)

jQuery复习

- DOM基本过滤选择器

  • jQuery执行操作 $(执行部分)----客户端
    css 进行操作
    ,是同等级进行统一设置 eg:div,span,p{}
    . 是下属(和调用方法差不多) eg:div.mini
  • jQuery 是javaScript中的一个优秀的库
$("#btn3").click(function () {
					$("div").css("background-color","#bbffaa");
				})
  1. jQuery基本选择器
1.选择 id 为 one 的元素 
$("btn1").click(function){
	$("#one").css("background-color","#bbffaa");
}
2.选择 class 为 mini 的所有元素 		$(".mini").css("background-color","#bbffaa");
3.选择 元素名是 div 的所有元素 		$("div").css("background-color","#bbffaa");
4.选择所有的元素						$("*").css("background-color","#bbffaa");
5.选择所有的 span 元素和id为two的元素 $("span,#two").css("background-color","#bbffaa");

  1. jQuery层级选择器
1.选择 body 内的所有 div 元素 				$("body div").css("background-color","#bbffaa");
2.在 body 内, 选择div子元素  				$("body>div").css("background-color","#bbffaa");
3.选择 id 为 one 的下一个 div 元素 			$("#one+div").css("background-color","#bbffaa");
4.选择 id 为 two 的元素后面的所有 div 兄弟元素	$("two~div").css("background-color","#bbffaa");
  1. jQuery基本的过滤选择器
1.选择第一个 div 元素				$("div:first").css("background-color","#bbffaa");
2.选择最后一个 div 元素				$("div:last").css("background-color","#bbffaa");
3.选择class不为 one 的所有 div 元素	$("div:not(.one)").css("background-color","#bbffaa");
4.选择索引值为偶数的 div 元素			$("div:even").css("background-color","#bbffaa");
5.选择索引值为奇数的 div 元素			$("div:odd").css("background-color","#bbffaa");
6.选择索引值为大于 3 的 div 元素		$("div:gt(3)").css("background-color","#bbffaa");
7.选择索引值为等于 3 的 div 元素		$("div:eq(3)").css("background-color","#bbffaa");
8.选择索引值为小于 3 的 div 元素		$("div:lt(3)").css("background-color","#bbffaa");
9.选择所有的标题元素					$(":header").css("background-color","#bbffaa");
10.选择当前正在执行动画的所有元素		$(":animated").css("background-color","#bbffaa");
11.选择没有执行动画的最后一个div		$("div:not(:animated):last").css("background-color","#bbffaa");
  1. 内容过滤选择器
1.选择 含有文本 'di' 的 div 元素	$("div:contains(di)").css("background-color","#bbffaa");
2.选择不包含子元素(或者文本元素) 的 div 空元素	$("div:empty").css("background-color","#bbffaa");
3.选择含有 class 为 mini 元素的 div 元素	$("div:has(.mini)").css("background-color","#bbffaa");
4.选择含有子元素(或者文本元素)的div元素	$("div:parent").css("background-color","#bbffaa");
  1. 可见性过滤器
1.选取所有可见的  div 元素	$().css("background", "#bbffaa");
2.选择所有不可见的 div 元素	不可见:display属性设置为none,或visible设置为hidden
		$().show("slow").css("background", "#bbffaa");
3.选择所有不可见的 input 元素alert($().attr("value"));
  1. 属性过滤器
1.选取含有 属性title 的div元素 $("div[title]").css("background", "#bbffaa");
2.选取 属性title值等于'test'的div元素 $("div[title='test']").css("background", "#bbffaa");
3.选取 属性title值不等于'test'的div元素(*没有属性title的也将被选中)$("div[title!='test']").css("background", "#bbffaa");
4.选取 属性title值 以'te'开始 的div元素$("div[title^='te']").css("background", "#bbffaa");
5.选取 属性title值 以'est'结束 的div元素$("div[title$='est']").css("background", "#bbffaa");
6.选取 属性title值 含有'es'的div元素$("div[title*='es']").css("background", "#bbffaa");
7.首先选取有属性id的div元素,然后在结果中 选取属性title值 含有'es'的 div 元素$("div[id][title*='es']").css("background", "#bbffaa");
8.选取 含有 title 属性值, 且title 属性值不等于 test 的 div 元素$("div[title][title!='test']").css("background", "#bbffaa");
  1. 表单对象属性过滤选择器
val() 方法可以操作表单项中的属性值,不可用input操作
1.对表单内 可用input 赋值操作 $(":text:enabled").val("New Value")
2.对表单内 不可用input 赋值操作 $(":text:disable").val("New Value Too")
3.获取多选框选中的个数  使用size()方法获取选取到的元素集合的元素个数 alter($(":checkbox:checked").size())
4.获取多选框,每个选中的value值
 var $else=$(":checkbox:checked");
 $else.each(function(){
 	alter(this.value);
 })
5.获取下拉框选中的内容  
//这个选择器特殊,因为select中被选中的option才是需要的东西
//所以 selected选择器是和 select[name='test']属性选择器一样
var $options=$("select option:selected");
$(options.each(function(){
	alter(this.innerHTML);
})
  1. 元素筛选方法
过滤
	eq(index|-index) 			
	first() 					
	last() 						
	hasClass(class) 			
	filter(expr|obj|ele|fn) 	
	is(expr|obj|ele|fn)1.6* 	
	has(expr|ele) 				
	not(expr|ele|fn) 			
	slice(start,[end]) 			
	
	查找
	children([expr]) 			
	closest(expr,[con]|obj|ele)1.6*   
	find(expr|obj|ele) 				
	next([expr]) 					
	nextall([expr]) 				
	nextUntil([exp|ele][,fil])1.6* 	
	parent([expr]) 					
	parents([expr]) 				
	parentsUntil([exp|ele][,fil])1.6*  
	prev([expr]) 					
	prevall([expr]) 				
	prevUntil([exp|ele][,fil])1.6* 	
	siblings([expr])


				//(1)eq()  选择索引值为等于 3 的 div 元素
					$("div").eq(3).css("background-color","#bfa");
				//(2)first()选择第一个 div 元素
					$("div").first().css("background-color","#bfa");
				//(3)last()选择最后一个 div 元素
					$("div").last().css("background-color","#bfa");
				//(4)filter()在div中选择索引为偶数的
					//filter()  过滤   传入的是选择器字符串
					$("div").filter(":even").css("background-color","#bfa");
				 //(5)is()判断#one是否为:empty或:parent
				//is用来检测jq对象是否符合指定的选择器
					alert( $("#one").is(":empty") )
				//(6)has()选择div中包含.mini的
					//has(selector)  选择器字符串    是否包含selector
					$("div").has(".mini").css("background-color","#bfa");
				//(7)not()选择div中class不为one的
					//not(selector)  选择不是selector的元素
					$("div").not('.one').css("background-color","#bfa");
				//(8)children()在body中选择所有class为one的div子元素
					//children()  选出所有的子元素
					$("body").children("div.one").css("background-color","#bfa");
				//(9)find()在body中选择所有class为mini的div元素
					//find()  选出所有的后代元素
					$("body").find("div.mini").css("background-color","#bfa");
				//(10)next() #one的下一个div
					//next()  选择下一个兄弟元素
					$("#one").next("div").css("background-color","#bfa");
				//(11)nextAll() #one后面所有的span元素
					//nextAll()   选出后面所有的元素
					$("#one").nextAll("span").css("background-color","#bfa");
				//(12)nextUntil() #one和span之间的元素
					$("#one").nextUntil("span").css("background-color","#bfa")
				//(13)parent() .mini的父元素
					$(".mini").parent().css("background-color","#bfa");
				//(14)prev() #two的上一个div
					//prev()  
					$("#two").prev("div").css("background-color","#bfa")
				//(15)prevAll() span前面所有的div
					//prevAll()   选出前面所有的元素
					$("span").prevAll("div").css("background-color","#bfa")
				//(16)prevUntil() span向前直到#one的元素
					//prevUntil(exp)   找到之前所有的兄弟元素直到找到exp停止
					$("span").prevUntil("#one").css("background-color","#bfa")
				//(17)siblings() #two的所有兄弟元素
					//siblings()    找到所有的兄弟元素,包括前面的和后面的
					$("#two").siblings().css("background-color","#bfa")
				//(18)add()选择所有的 span 元素和id为two的元素
					//   $("span,#two,.mini,#one")
					$("span").add("#two").add("#one").css("background-color","#bfa");

- DOM增删改

/**
文档处理
内部插入

appendTo(content) 	   a.appendTo(b);  把a加到b里面				  添加到最后面
prependTo(content)	   a.prependTo(b); 把a添加到b里面    			  添加到最前面

外部插入
insertAfter(content) 	a.insertAfter(b);  把a插入到b的后面
insertBefore(content) 	a.insertBefore(b); 把a插入到b的前面


替换
replaceWith(content|fn) a.replaceWith(b)  把a用b替换
replaceAll(selector) 	a.replaceAll(b)	  用a替换所有的b

删除
empty() 				a.empty()   把a掏空,把a里面的所有元素都删除
remove([expr]) 			a.remove(b)  所有的a,是b的话就会删除	a.remove()删除a		



*/

- DOM CSS样式操作

		var $divEle = $('div:first');
		$('#btn01').click(function(){
			//addClass() - 向被选元素添加一个或多个类
			$divEle.addClass("redDiv blueBorder")
		});
		$('#btn02').click(function(){
			//removeClass() - 从被选元素删除一个或多个类 什么也不写,全部删除
			$divEle.removeClass("redDiv blueBorder")
		});
		$('#btn03').click(function(){
			//toggleClass() - 对被选元素进行添加/删除类的切换操作 
			$divEle.toggleClass("redDiv blueBorder")
		});
		$('#btn04').click(function(){
			//offset() - 返回第一个匹配元素相对于文档的位置。
			//获取,和 设置
			var pos = $divEle.offset();
			$divEle.offset({
				top:100,
				left:50
			})
		});

- DOM事件

只需要把代码写在$(function(){ jquery代码  })
	3、window.onload & $(function(){})
	window.onload只可以使用一次
	$(function(){})可以使用多次

- DOM事件绑定

$(function(){
				//*1.通常绑定事件的方式
				//给元素绑定事件  
				//jquery对象.事件方法(回调函数(){ 触发事件执行的代码 }).事件方法(回调函数(){ 触发事件执行的代码 }).事件方法(回调函数(){ 触发事件执行的代码 })
				//绑定事件可以链式操作
				$(".head").click(function(){
					$(".content").toggle();
				}).mouseover(function(){
					$(".content").toggle();
				});

				//*2.jQuery提供的绑定方式:bind(type,[data],fn)函数把元素和事件绑定起来
				//type表示要绑定的事件   [data]表示传入的数据   fn表示事件的处理方法
				//bind(事件字符串,回调函数),后来添加的元素不会绑定事件
				//使用bind()绑定多个事件   type可以接受多个事件类型,使用空格分割多个事件
				//toggle可以进行‘隐藏和显示‘的切换操作
				 $(".head").bind("click mouseover",function(){
					$(".content").toggle();
				}); 

				//3.one()只绑定一次,绑定的事件只会发生一次one(type,[data],fn)函数把元素和事件绑定起来
				//type表示要绑定的事件   [data]表示传入的数据   fn表示事件的处理方法
			 	$(".head").one("click mouseover",function(){
					$(".content").toggle();
				}); 

				//4.live方法会为现在及以后添加的元素都绑定上相应的事件
				$(".head").live("click",function(){
					$(".content").toggle();
				});
				$("#panel").before("<h5 class='head'>什么是jQuery?</h5>");
			});
				//5点击第一个button,将#bj上的mouseenter事件移除
				//unbind()可以移除指定的事件,只需要传一个事件名作为参数
				//unbind(type,[data|fn]])
				//type事件类型  当传入type的时候会解除type事件
				//如果没有传入type值,会移除所有事件
				$("button:eq(0)").click(function(){
					$("li").unbind("click mouseenter");
				});

- 事件冒泡

//冒泡就是事件的向上传导,子元素的事件被触发,父元素的响应事件也会触发
				//解决冒泡问题:return false;
				//给span绑定一个单击响应函数
				$("span").click(function(){
					alert("我是span的单击响应函数");
					//阻止冒泡
					return false;
				});

- 事件的动画

/* 	
		基本
		show([speed,[easing],[fn]]) 
		hide([speed,[easing],[fn]]) 
		toggle([speed],[easing],[fn]) 
		滑动
		slideDown([spe],[eas],[fn]) 
		slideUp([speed,[easing],[fn]]) 
		slideToggle([speed],[easing],[fn]) 
		淡入淡出
		fadeIn([speed],[eas],[fn]) 
		fadeOut([speed],[eas],[fn]) 
		fadeTo([[spe],opa,[eas],[fn]]) 
		fadeToggle([speed,[eas],[fn]])
		*/
		$(function(){
			//显示   show()
			$("#btn1").click(function(){
				$("#div1").show(1000);
			});		
			//淡入   fadeIn()
			$("#btn4").click(function(){
				$("#div1").fadeIn(500);
			});	
			//滑动
			$("#btn5").click(function(){
				$("#div1").slideToggle(1000,function(){单机之后回调函数中可以执行的功能});
			}
			//淡化到  fadeTo()
			$("#btn6").click(function(){
				$("#div1").fadeTo("slow",Math.random());
			});	
			//淡化切换  fadeToggle()
			$("#btn7").click(function(){
				$("#div1").fadeToggle("slow","linear");
			});	

- 全选全不选练习

var items = $("[name='items']");
		//全选按钮
		$("#checkedAllBtn").click(function(){
			items.attr("checked",true);
			$("#checkedAllBox").attr("checked",true);
		});
		//全不选按钮
		$("#checkedNoBtn").click(function(){
			items.attr("checked",false);
			$("#checkedAllBox").attr("checked",false);
		});
		//反选按钮
		$("#checkedRevBtn").click(function(){
			items.each(function(){
				this.checked = !this.checked;
			});
			var flag = $("[name='items']:checked").length==4;
			$("#checkedAllBox").attr("checked",flag);
		});
		//提交按钮
		$("#sendBtn").click(function(){
			$(":checkbox[name='items']:checked").each(function(){
				alert(this.value);
			});
		});
		//全选/全不选复选框
		$("#checkedAllBox").click(function(){
			items.attr("checked",this.checked);
		});
		//全选/全不选复选框与items状态同步
		$("[name='items']").click(function(){
			var flag = $("[name='items']:checked").length==4;
			$("#checkedAllBox").attr("checked",flag);
		});

- Servlet的工作流程
servlet的工作流程概况,在此之前配置tomcat

servlet 的生命周期
从xml中获取初始化参数
寻找一些已经保存的context-param参数,或者已经默认的路径
进行存取一些参数set(get)Attribute

大致的JavaEE三层框架的流程:输入xxx.jsp--->根据里面的href=xxx--->使用xml找到对应的servlet程序--->调用service处理逻辑--->进行数据库交互
请求重定向request.getRequestDispatcher("/a/b/c.html").forward(request,response); response.sendRedirect("http://localhost:8080/07_servlet/response2");
req,resp(重定向(可以访问工程外的资源),回传客户端数据) get post ServletConfig ServletContext 请求转发(只能在本工程下面)

- 常见的响应码说明

200	表示请求成功
302	表示请求重定向
404	表示请求服务器已经收到了,但是你要的数据不存在(请求地址错误)
500	表示服务器已经收到请求,但是服务器内部错误(代码错误)

- jsp语法


六:jsp本质就是servlet 相当于可以在页面上添加java代码 (九大内置对象)
	 <%!  脚本声明(属性,块,方法,内部类)  %> 
    /**<%!
        private Integer id;
        private String name;
        private static Map<String,Object> map;
    %> **/
	<%= 表达式脚本(输出内容)  %>
	/**
	<%=request.getAttribute("key")%>
	**/
	<%  代码脚本(java代码)  %>
	/**
	<%
    int i=12/0;
	%>
	**/
	<%@  include file="静态包含内容" %>-----(较为常用)
	<jsp: include page="动态包含页面"></jsp:include>
	<jsp: forward page="请求转发路径"></jsp:include>
		EL表达式------代替jsp表达式脚本	${}------11个隐含对象---基本比较运算,是否为空,特殊键值对的取值
		JSTL标签库----代替jsp代码脚本	<c:if test="EL表达式"></c:if>
										
										<c:choose><c:when><c:otherwise>
												/** <%
												        request.setAttribute("height",168);
												    %>
												    <c:choose>
												        <c:when test="${requestScope.height>190}">
												            <h1>小巨人</h1>
												        </c:when>
												        <c:when test="${requestScope.height>180}">
												            <h2>挺高了</h2>
												        </c:when>
												        <c:otherwise>
												<%--            when的父类一定要是choose--%>
												            <c:choose>
												                <c:when test="${requestScope.height>23}">
												                    <h3>非人类</h3>
												                </c:when>
												            </c:choose>
												        </c:otherwise>
												    </c:choose>**/
										<c:forEach/>						
												/**        
												<%request.setAttribute("arr",new String[]{"120","119","110"});%>
											    <c:forEach items="${requestScope.arr}" var="item">
											        ${item}<br>
											    </c:forEach>**/
<%--    往域中保存数据
        <c.set/>
        作用:set标签可以往域中保存数据
        域对象.setAttribute(key,varlue);
        scope   属性设置保存到那个域
        eg:request.setAttribute("height",168);
            	page表示pageContext域
            	request表示Request域
            	session表示Session域
            	application表示ServletContext
        		key    是多少
         		value  是多少
--%>

七:cookie
cookie的创建—服务器(Tomcat)==1:new Cookie(“键值对”),2:response.addCookie(前面new出来的cookie)
cookie的获取—Cookie[] cookies=req.getCookies();—cookie.getName()
cookie的修改—cookie.setvalue(“要修改的值”)
cookie的创建,获取,修改,生命周期(这里可以复习–jsp和servlet之间的关系)
八:session
session创建,修改,超时控制(session会话的结束和cookie的消亡有关)

九:filter过滤器–继承Filter重写三个方法–需要配置拦截路径(也有执行方法–和servlet的xml配置相似)
本质:在请求服务器的时候,过滤一下(条件判断)是否举有访问服务器的条件

十:ThreadLocal 锁定线程
public static ThreadLocal threadLocal=new ThreadLocal();
threadLocal.set(Thread.currentThread().getName()); 锁
threadLocal.get(); 取
九,十 可以把数据连接用ThreadLocal锁起来,filter进行问题过滤—以实现数据提交 或 回滚的操作

十一:json可以把很对语言转化为字符串的形式进行数据的传送—操作json要使用Gson–jar包
json在java中的使用 javaBean/list/map和json的互相转化
1,就是在JavaScript中进行键值对的形式存在 var jsonObj={键:值} 这个里面可以嵌套
常用的方法:1:JSON.stringify()—json对象转化为字符串 2:JSON.parse()—字符串转化为json对象
2,导包:gson=new Gson(); 对象转化为字符串gson.toJson(Person) 字符串转化过去 gson.fromJson(string,Person.class);
3,list和map和gson之间的转换----> gson.fromJson(string,new TypeToken<HashMap<Integer,Person()>>{}.getType())

十二:AJAX请求---->是一种浏览器通过js异步发起请求,局部更新页面的技术
1,自己看API自己实现
2,ajax方法 url(请求的地址),type(请求的类型get/post),data(请求发送的方法action=xxx),success(成功的回调函数),dataType(text/xml/json响应的类型)
3,get/post方法 url,data,callback,type
4,getJSON方法 url,data,callback
5,列表的序列化 serialize()
十二:i18n国际化,中英转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值