第十次总结

小题:

1.Js对象和Jquery对象如何相互转换
js:Dom操作:
	1)推荐:通过document对象的方法获取标签对象
		document.getElementById(“id属性值”)---标签对象
							ByTagName(“同名标签名称”)--节点列表
							ByClassName(“同名的class属性”)--节点列表
							ByName(“同名name属性值”)----节点列表
引入jq的js库
	通过${js对象}---Jquery对象
Jquery对象----js对象
	Jquery的基本选择器:
		id
		class
		element
	层级选择器:
		后代选择器:selectorl	selector2
		子元素选择器:selector1》selector2
		$("id属性值").get(索引值)---->js对象
		使用js对象----获取标签文本中的文本内容:标签属性:innerHTML
		
		Jquery:获取标签的文本内容
			html():获取标签体内容
			html(“xxx”):设置标签体内容
			
			text():获取纯文本内容
			jq对象.val()
		input value=“xxxx”
2.Servlet中是生命周期
	init():初始化方法---在访问的时候创建对象并初始化
	service(HTTPServiceRequest request,HTTPServiceResponse response):业务服务方法
	destroy():销毁:服务器正常关闭
3.四个域对象分别是什么?以及范围
pagContext:当前jsp页面中有效
HTTPService request:在一次请求中有效
HTTPsession:在一次会话中有效
servletContext:当前项目下
4.final,finally,finalize的区别
final:状态修饰符
	修饰变量,该变量为常量,只可赋值一次,不能被更改
	修饰成员方法:该方法不可被重写
	修饰类:该类不能被继承
finally:捕获异常的一种标准格式
	try...catch...finally...
	finally中的代码一定会执行,除非jvm虚拟机提前终止
finalize:
	与GC垃圾回收器相关
	调用gc--调用finalize方法。回收没有更多引用的对象
5.Js中的数据类型
number-----对应js内置对象Number
string------js内置对象String
object------js内置对象Object
boolean---js内置对象Boolean
undefined:未定义,没有意义

jquery的http()和text()

区别:
http():获取标签属性的值
text():获取的是存文本

属性操作:attr()/prop()方法

attr():可以为标签添加额外属性值
$(“#id属性值”).attr(“属性名称”,“值”);

prop():js对象操作,也能为标签添加额外属性,但是不会显示在网页源码内
一般情况下推荐使用前者attr();


WEB项目

数据库:
	表:
		用户表:
			相关成员变量
		商品表:product
		商品分类:
			加载首页---将商品分页信息展示
				手机数码
				办公..
				......
		购物车:--将Cart存储session中
		订单表:order
项目模块:
	用户模块
		登录
		注册
		邮箱激活
		....
	商品模块:
		加载首页:商品分页信息展示
		商品分页查询
		扩展功能:
			使用cookie记住用户浏览过的商品id
	商品加入到购物车:(session中)
		封装一些方法
			addCart()
			deleteCart()
	订单模块:
		查询订单列表(分页查询)
		具体筛选查询
		....
	结算:---第三方支付

原生Ajax的使用

1)创建浏览器的代理对象
	去Ajax文档看源码:XMLHttpRequest
	代码:
	var xmlhttp;
	if(window.XMLHttpRequest){
		xmlhttp=new XMLHttpRequest();
	}else{
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	
2)建立连接
	xmlhtt.popen(“提交方式”,“url地址”,是否是异步)
	例:
		xmlhttp.open("get","MyAjaxServlet?username=tom",true);
		
3)发送异步请求
	代理对象.send()
	如果是post请求:将请求的参数:需要send(参数)
	get请求:直接url?参数名称=内容(写在浏览器的网址上)
	例:
	xmlhttp.send();
4)接收请求对象携带过来的响应数据
	当前代理对象携带过来服务器的数据:响应的状态:
	0.请求未初始化
	1.服务器连接已建立
	2.请求已接收
	3.请求处理中
	4.请求已完成,且响应已就绪
	
	xmlhttp.onreadystatechange=function(){
		服务器响应状态:200以及当前代理对象:状态4
		if(xmlhttp.readyState==4&&xmlhttp.status==200){
			var str=xmlHttp.responseText;
			alter("弹窗"); 
		}
	}

小题:

1.传统事务的四个特点
ACID
原子性
一致性
隔离性
持续性
2.事务的隔离级别
1)读未提交 read uncommitted
2)读已提交	read committed
3)可重复读 repeatable read
4)串行话	serializable
3.mysql的隐式内连接和显式内连接
隐式:select 字段列表 from 表名1 别名1,表名2 别名2 where 别名1.字段=别名2.字段;
显示:select 字段列表 from 表名1 别名2 inner join 表名2 别名1 on 别名1.字段=别名2.字段;
4.session和cookie的区别
session:存储在服务器端
	存储的数据类型可是是任意的Java类型
	存储的数据没有限制
	相对cookie,比较安全
cookie:存储在浏览器端
	存储的数据类型有限制:只能是String类型
	存储的数据有限制:每个页面的cookie是有限的,20-30个
	相对session,不适合存储隐私属性
	
5.获取反射的字节码文件对象的方式
1)任意Java类的class属性
2)类名.getClass
3)class.forName(“文件的路径”);


1.请求转发和重定向的区别
请求转发:有业务数据时使用。
1)地址栏没有变化
2)属于服务器行为,在整个启动过程中,request对象是一致的
3)只能访问本工程下的资源文件,包括WIB-INF下的文件
4)业务数据:使用请求转发,
重定向:仅仅只是页面跳转不携带数据。
1)地址栏有明显变化
2)属于浏览器行为,在整个过程中,request对象不一致
3)不仅访问本工程下的资源文件,以及外部工程下的资源文件
4)页面跳转,不携带数据

2.原生Jdbc的操作步骤
1)导入核心jar包
2)注册驱动
3)创建数据库连接对象
4)准备sql语句---参数化sql
5)创建预编译对象并对sql进行编译
6)给参数赋值
7)通用操作 executeUpdate()/executeQuery()---Request
8)关闭资源
3.Jquery的ajax发送异步请求的方式有几种
有三种:
$.ajax({
	"url":value
	"type":
	"data":
	"success":function(data){}
	"error":fuction(data){}
	"dataTypa":服务器响应过来的数据格式
})
get提交
$.get{}(url,data,function(data){},"服务器响应过来的格式"....json/text/xml/html)
post提交
$.post{}(url,data,function(data){},"服务器响应过来的格式"....json/text/xml/html)
4.有关Statement和PreparedStatement的区别
Statement:执行sql语句效率低
	执行的是静态sql语句
		存在sql凭借,就会出现SQL注入
PreparedStatement:执行sql前进行预编译(参数化sql)
	赋值时可以赋值不同的参数:执行效率高于Statement对象
		有效防止sql注入
5.Map集合的遍历方式有几种
keySet()---Set<K>获取所有键的集合
	在通过get(K k)---获取键对应的值
entrySet()---Set<Map.entry<K V>>:获取所有键值对对象
	getKey()
	getValue()

加载首页,最新商品的展示

后台:indexServlet完成业务操作
ProductService
ProductDao
	select * from product order by pdate limit 9;最新商品
	//热门商品:is_hot=1;

通过商品id查询商品详细信息

点击最新商品/热门商品的某一个商品
xxx/product?findPreduestByIdpid=$(取出id值)
findProduct
	//接收参数:商品id
	调用service,完善商品信息
	将商品Product存储在request域中
	请求转发到/jsp/product_info.jsp
	

点击具体分类信息

head.jsp
	更改超链接地址
	findByPage?currentPage=1&cid=获取id值

productService
public String findByIdPage(请求对象,响应对象){
	//接收参数
	当前页码
	设置每页显示条数
	接收分类id
	调用service
	将PageBean对象存储到request域中
	请求转发到product_list.jsp

}		

小题:

1.jsp表达式的四个域对象
	pageScope
	responseScope
    sessionScope
	applicationScope:
2.jsp的三大指令
<%@page>
<%@include>:静态导入:不会对被导入的jsp文件进行编译和翻译
	<jsp:include/>动态包含
<%@taglib>:
3.servlet的生命周期
servlet:是一个单例---在内存中始终只有一个对象
	单例:饿汉式和懒汉式
		饿汉式是不会出问题的单例模式
		懒汉式因为在使用的时候才创建对象,需要进行判断该对象是否为空,所以存在问题,解决方法就是加入线程
init():初始化
service():服务方法
destory():销毁
4.线程的状态有几种
	1)NEW
	2)RUNABLE
	3)BLOCKED
	4)WATING
	5)TIMED_WEATING
	6)TERMINED
	多线程实现方式:
		三种:
		继承自Thread接口
		实现Runnable接口
		线程池ExecutorService

5.TreeSet集合针对自定义对象进行排序?如何试下自然排序和选择器排序
TreeSet add()的put()---红黑树结构
TreeSet<自定义类型> 如果是空参构造:默认自然排序
	前提:当前自定义类型必须实现Comparable:重写compareTo(T t)按照一定规则排序
	如果是有参构造:选择排序
	

1.String,StringBuffer,数组的区别
String:是一个常量,一旦被赋值,其值不能被更改;作为形式参数,形参的改变,不会影响实际参数
StringBuffer:构造一个字符串缓冲区;是可变的字符序列,是一个线程安全的类;作为形式参数,形参的改变,会影响实际参数
数组和StringBuffer:两个都是容器
	数组:存储的元素只能是同一类型元素
	StringBuffer:缓冲区--存储任意类型元素---StringBuffer的toString()---String
2.集合和数组的区别
集合:能够存放任意类型的引用类型数据;长度可变;size属性;
数组:只能存放同一类型数据;长度固定;length属性;
3.Servlet的执行流程
1)浏览器发送请求到服务器
	http://localhost:8080/web App/url-patten
2)通过服务器解析路径---“url-patten”---找不到就会出现404
	找到当前servlet的名称
3)通过类名---找到这个类的全限定名称
4)通过反射方式创建该类实例
5)解析这个类中的方法
	通过字节码文件对象---获取Method----invoke(方法名,实际参数);

4.自定义注解里面的属性如何解析
自定义接口,继承自extends Annotation
	注解---将方法名---属性名
		属性的返回值
			string
			枚举
			注解类型
			以上类型的数组
如果将自定义注解应用在某个类上,给注解中的属性赋值
1)通过当前类获取他的字节码文件对象Class clazz
2)Class类中getAnnotation(注解类型的字节码文件)---返回当前:接口的子实现类
通过调用方法---获取属性值
5.IO流有哪些,举例
流的方向:
	输入流
	输出流
按类型
    字节流
        字节输入流InpuStream
        字节输出流OutputStream
    字符流
        字符输入流Reader
        字符输出流Writer

程序的解耦

解析xml文件-----核心配置文件
好处:
1)解析块--dom4j+xpath 将某个标签内容快速解析
2)符合Java的一种设计原则:开闭原则,对现有代码的修改进行关闭,对扩展开放

提供application.xml
	beans
		bean
			id=“service层/dao层接口名称:标识符”
			class=“service层和dao接口的子实现类全限定名称”
提供一个工程类:
	提供静态功能返回值Object
	public static Object getXXX(String id){
		1)获取解析器对象SAXReader
		2)获取资源文件的输入流
		3)read方法读取资源文件所在输入流
		4)xpath表达式---快速定位bean标签
	
	}

购物车

购物车	Cart
	很多购物车项
	Map<String:商品id,cartItem>
	总计金额
	
	添加购物车项
	从购物车删除购物车项
	清空购物车项
	
购物车项CarItem
	product 商品
	cont 数量
	subTotsl 小计
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值