本帖最后由 赵嘉鑫 于 2018-2-4 15:36 编辑
web阶段部分学习笔记
DDL:数据定义语言
* create,alter,drop...
DML:数据操纵语言
* update,insert,delete
DCL:数据控制语言
* grant,if..
DQL:数据查询语言
* select
s-f-w-g-h-o 数据库查询语句顺序
多表操作
多表的设计
foreign key references 指向
给orders表中的cid添加外键约束.
* alter table orders add foreign key (cid) references customer(cid);
多表的查询
内连接:
显式内连接:select * from A inner join B on 条件
隐式内连接;
外链接:
左外连接
右外连接 select *from
多表的查询的方式:
* 交叉连接:
* select * from A,B; --- 获得的是两个表的笛卡尔积.
* 内连接: inner join -- inner 可以省略
* 显式内连接:select * from A inner join B on 条件;
* SELECT * FROM customer c INNER JOIN orders o ON c.cid = o.cid;
* 隐式内连接:select * from A,B where 条件;
* SELECT * FROM customer c ,orders o WHERE c.cid = o.cid;
* 外连接:outer join -- outer 可以省略
* 左外连接:left outer join -- select * from A left outer join B on 条件;
* SELECT * FROM customer c LEFT OUTER JOIN orders o ON c.cid = o.cid;
* 右外连接:right outer join -- select * from A right outer join B on 条件;
* SELECT * FROM customer c RIGHT OUTER JOIN orders o ON c.cid = o.cid;
* animate(); --自定义动画
* toggle(); --单击切换函数
* Jq对象.toggle(fn1,fn2...);单击第一下的时候执行fn1,单击第二下执行fn2...
* 基本过滤选择器:
* odd :奇数
* even : 偶数
prop();新版本的方法.
* 使用方法一:$(“”).prop(“src”);获取属性
* 使用方法二:$(“”).prop(“src”,”test.jpg”);设置属性
* 使用方法三:$(“”).prop({“src”:”test.jpg”,”width”:”100”});
* removeProp();
* addClass()
* removeClass();
append(); ---在某个元素后添加内容.
* appendTO(); ---将某个元素添加到另一个元素后.
* remove(); ---将某个元素移除.
遍历的方式一:
* $.each(objects,function(i,n){
});
遍历的方式二:
* $(“”).each(function(i,n){
}
id选择器
* 用法:$(“#id”)
类选择器
* 用法:$(“.类名”)
元素选择器
后代选择器:使用空格 所有后代包含孙子及以下的元素
子元素选择器:使用> 第一层的元素(儿子)
下一个元素:使用+ 下一个同辈元素
兄弟元素:使用~ 后面所有的同辈元素
eq(索引) 等于
:lt(索引) 小于
:gt(索引)大于
总结:
* prop和css的区别:
* css专门设置样式相关的属性键值对(background ,width,height,color,border,font-size,margin,padding,line-height)
* prop一般是用于设置出css以外的属性键值对(比如: src, href,check,selected,action,method,id,name,class)
trigger和triggerHandler
总结:
* 作用: trigger和triggerHandler两个方法的本质作用,调用其他元素中已经绑定的事件
*
* trigger --- >不仅执行函数体,而且触发浏览器默认的这个函数的操作
* triggerHandler---->只执行函数体,并不会触发浏览器默认的操作
hover鼠标放上和离开改变属性
$("table tr").hover(function(){
$(this).css("background","aquamarine");
},function(){
$(this).css("background","white");
});
1.Tomcat
1.安装Tomcat
--1.JAVA_HOME要配置正确
--2.端口号冲突的问题要自己会解决---->去conf-->server.xml去找Connectioner的标签里面去修改
2.要会在Tomcat中发布自己的项目
--1.直接拷贝
--2.在conf--->server.xml中找Host--->Context的标签--->重要的两个属性-->(path(虚拟路径),docBase(实际路径))
--3.在conf--->引擎文件夹中---主机文件夹中---->创建以.xml结尾的文件(xml的文件名是虚拟路径)--->Context的标签-->一个重要的属性docBase
2.STS关联Tomcat
如何关联????
window-->prefer--->server--->runtime--->add--->apache7.0--->关联本地tomcat路径
server--->new Server--->apache7.0--->open---将默认的项目发送地址给成webapps
3.Http协议
1.0(已经淘汰了)
1.1这个不是立马断开连接
请求:
1.请求行
1.请求方式(get和post)
2.请求资源路径
3.协议的版本
2.请求头(消息报头)
User-agent--->用来解决浏览器版本不一致的问题
Referer--->防盗链
if-modify-since-->查找本地缓存
3.请求体(get方式没有请求体)
响应:
1.响应行
1.协议版本
2.状态码
200(成功)
302(重定向)
304(请求本地缓存)
404(请求的资源找不到)
500(服务器内部错误)
3.状态码描述
2.响应头
last-modify:查缓存
Location--->专门用来重定向用的
Content-disposition--->专门用来下载用的--->让浏览器以下载的方式打开文件
Refresh--->页面定时跳转用的
3.响应体
4.Servlet
用什么用?
运行在服务端的小程序
作用:
用来接受请求,处理请求的
使用方式:
1.定义一个类实现 servlet的接口
2.用去web.xml中配置虚拟路径
Servlet
Servlet-mapping
Servlet将请求封装成了ServletRequest对象,将响应封装成了ServletResponse对象
ServletRequest这个对象可以接受浏览器传来的数据
getParameter...这一类方式
乱码问题:
我们解决post的乱码
request.setCharaterEnconding("UTF-8");--->专门设置请求体中编码,如果不设置默认编码是ISO8859-1的编码,
get的方式不是这种解决方案
ServletContext读项目下的文件getservletcontext.getResourceAsStream("WEB-INF/classes/aa.txt)作为域对象存取数据服务器启动时候 服务器为每个web项目创建一个单独的servletContext对象页面响应的方法getwriter()字符流getoutputsteam()字节流两个互斥 不能一起使用解决乱码设置中文转成字节数组的时候取出的编码字节流 解决乱码getoutputsteam().getbyte("utf-8")---------getwriter()字符流 解决乱码设置response.setContentType("UTF-8")浏览器向服务器携带中文? get方式 get的参数都藏在请求行中,请求行中编码是固定ISO8859-1 解决方案: 通过String的构造方式来解决 例如: 文件名是filename---> new String(filename.getByte("ISO8859-1"),"UTF-8"); post方式 post的方式参数藏在请求体中,将请求体中的编码改成UTF-8就行了 request.setCharacterEnconding("UTF-8"); 服务器向浏览器输出中文的时候乱码解决??? 设置响应头 响应头的编码是固定的ISO-8859-1,所有我们需要给浏览器能看懂的东西 if(header.contains("Firefox")){ filename = base64EncodeFileName(filename); }else{ filename = URLEncoder.encode(filename, "UTF-8"); } public static String base64EncodeFileName(String fileName) { BASE64Encoder base64Encoder = new BASE64Encoder(); try { return "=?UTF-8?B?" + new String(base64Encoder.encode(fileName .getBytes("UTF-8"))) + "?="; } catch (UnsupportedEncodingException e) { e.printStackTrace(); throw new RuntimeException(e); } } 设置响应体 getOutputStream getWriter setContextType("text/html;charset=UTF-8")---> setHeader("Context-Type","text/html;charset=UTF-8 ") setCharaterEnconding("UTF-8");1.浏览器端如果想直接访问Servlet的话 路径的编写:使用: /工程名/servlet的虚拟路径2.浏览器如果想要直接访问.html.jsp或者其他静态资源 路径的编写:使用: /工程名/资源所在的路径3.servlet A想要跳转其他servlet B 1.重定向 路径的编写:使用: /工程名/B对应的虚拟路径 2.请求转发 路径的编写:使用: /B对应的虚拟路径4.servlet A想要跳转到 .html或者.jsp 1.重定向 路径的编写:使用: /工程名/.jsp或者.html所在的子路径 2.请求转发 路径的编写:使用: /.jsp或者.html所在的子路径5.servlet想要读取项目下文件 1.需要用ServletContext的对象来读取 1.ServletContext.getResouceAsStream("资源路径(不用再加工程名)") 2.ServletContext.getRealPath("资源路径(不用再加工程名)")Servlet的生命周期从创建到销毁的过程何时创建:客户第一次访问servlet创建何时销毁:当项目从服务器移除或者关闭服务器servlet的相关配置启动时创建servlet<load-on-starup>2</load-on-starup>相对路径 找位置的相对关系 不能以/开始绝对路径 不需要找位置的关系分为客户端 服务器 ---跳转页面response.setHeader("Refresh",3;url=dayaddHeader针对一个key对应多个value的响应头setHeader 一个key对应一个响应头(重点)ServletContext是一个域对象作用 获得全局初始化参数作为域对象存取数据用来读取web项目下的文件.
|