Javaweb学习笔记
Javascript
变量类型:
- 数值:number
- 字符串:string
- 对象:object
- 布尔:boolean
- 函数;function
特殊值:
运算符:
- == 等于:数值相等
- === 全等于,数值、数据类型都相等
逻辑运算:
所有类型都可以作为boolean变量使用,null、undefined、0、“”空串都为false; &&: * 当表达式全为真返回最后一个表达式的值 * 当表达式中存在假,返回第一个为假的表达式的值 ||: * 当表达式全为假返回最后一个表达式的值 * 当表达式中存在真,返回第一个为真的表达式的值
数组:
var 数组名=[]; //定义一个空数组
var 数组名=new Array();
数组名[3] =“string” //可以通过任意下标赋值,数组自动扩容,未赋值内为undefined
函数:
function 函数名(a,b){} //定义函数方式一,形参不需要声明类型 var 函数名 =function(形参列表){} //定义函数方式二 JS不允许函数重载 隐藏参数:argument
自定义对象:
方法一: var 变量名=new Object(); //实例对象 变量名.属性名=值; //定义一个属性 变量名.函数名=function(){} //定义一个函数 方法二:
var 变量名={
属性名:值,
函数名:function(){}
}
事件:输入设备与页面进行交互的反应
注册事件(绑定):事件响应后的操作代码 静态注册事件:通过html标签的事件属性直接赋予事件响应后的代码 动态注册事件:先通过js代码得到标签的dom对象,再通过dom对象.事件名 =function(){} 赋予事件响应后的代码 1、获取标签对象 2、标签对象.事件名=function(){} 常用事件: onload:加载完成事件 onclick:单击事件 onblur;失去焦点事件 onchange:内容发生改变事件 onsubmit:表单提交事件 DOM模型: Document对象: document.getElementById();//返回第一个结果 document.getElementByName();//返回结果集合 document.getElementByTagName();///返回结果集合 优先级顺序:id>name>tagName 一定要在页面加载完成才能查
document.write("<h1>大标题</h1>")
function onloadFunc(){
alert("静态页面加载完毕")
}
window.onload=function (){
alert("动态页面加载完毕");
var buttonobj=document.getElementById("button1");
buttonobj.onclick=function (){
alert("动态注册onclick事件");
}
var textobj=document.getElementById("text1");
textobj.onblur=function (){
var d = document.getElementById("span1");
d.innerHTML="请输入";
}
}
jQuery
jQuery对象和DOM对象
jQuery对象=DOM对象数组+jQuery方法 jQuery对象和DOM对象属性、方法不能互用
转换
jQuery–> DOM jQuery对象[下标] DOM–》jQuery $(DOM对象)
核心函数:$()
- 传入参数为函数
$(函数) ,表示页面加载完成之后,相当于window.onload=function(){} - 传入参数为HTML字符串,根据字符串创建节点元素
- 传入参数为选择器字符串 返回查询结果
$("#id"); $(“标签名”); $(".class"); - 传入参数为DOM对象 会把DOM对象转换为jQuery对象
选择器
基本选择器
- 元素选择器
$(“p”) 选取 元素。 $(“p.intro”) 选取所有 class=“intro” 的 元素。 $(“p#demo”) 选取所有 id=“demo” 的 元素。 - CSS选择器
$("p").css("background-color","red");
过滤选择器
- 基本过滤选择器
- 内容过滤选择器
$("div:contains('内容')"); $("div:empty"); //空 $("div:parent"); //非空 $("div:has(div)");//返回含有选择器所匹配的元素的元素 - 属性过滤选择器
通过正则表达式过滤 $("div[href]") 选取所有带有 href 属性的元素。 $("[href='#']") 选取所有带有 href 值等于 “#” 的元素。 $("[href!='#']") 选取所有带有 href 值不等于 “#” 的元素。 $("[href$='.jpg']") 选取所有 href 值以 “.jpg” 结尾的元素。 - 表单过滤选择器
$(":type属性")
元素的筛选
$("选择器").筛选函数 ;
属性操作
不传参是获取,传参是设置:
html() 获取和获取头尾标签之间内容,和DOM innerHTML相同text() 设置和获取头尾标签之间的文本,和DOM innerTest相同val() 设置和获取表单项的value属性值,和DOM value相同attr("属性名"[,"属性值"]) 操作属性值,不推荐操作checked、readOnly、selected、disable等,可操作自定义属性值prop("属性名"[,"属性值"]) 与attr互补,该属性值为true|false
DOM的CRUD
增
内部插入
a.appendTo(b) 把 a元素插到b元素末尾,成为最后一个子元素a.prependTo(b) 把 a元素插到b元素前面,成为第一个子元素 外部插入a.insertBefore(b) a.insertAfter(b)
替换
a.replaceWith(b) 用b替换aa.replaceAll(b) 用a替换所有b
删除
a.remove() 删除a标签a.empty() 清空a标签里的内容
CSS样式操作
a.addClass("") 添加样式a.removeClass("") 删除样式a.toggleClass("") 添加切换样式offset() 获取和设置元素坐标
动画操作
show() hide() toggle() fadeIn() 淡入fadeOut() 淡出fadeTo() 在指定时长慢慢将透明的调整到指定的值fadeToggle() 切换 以上函数可以选择传入两个参数 1、speed(毫秒) 动画执行时间 2、callback 回调函数(动画完成后执行的函数)
jQuery事件操作
jQuery与原生JS加载的区别
什么时候触发?
jQuery在浏览器的内核解析完页面的标签创建好DOM对象后立即执行 原生JS在浏览器的内核解析完页面的标签创建好DOM对象、等标签显示需要的内容加载后执行
触发顺序
jQuery先于原生JS执行
执行次数
jQuery会把全部注册的function函数一次执行 原生JS只会执行最后一次赋值函数
常用事件
- click() 绑定并触发单击事件
- mouseover() 鼠标移入事件
- mouseout() 鼠标移出事件
- bind(“event1 event2…”,function()) 一次绑定多个事件
- one() 与bind 用法相同,只执行一次绑定事件
- unbind() 解绑
- live() 动态绑定事件
事件冒泡
概念:
父子元素同时监听一个事件,当触发子元素事件时,父元素也响应同一元素
如何阻止事件冒泡:
在子元素事件函数内添加:return false
Javascript事件对象
概念:
封装有触发事件信息的JavaScript对象
如何获取?
在给元素绑定事件的时候,在事件的function(event) 参数列表中添加一个参数event,event就是传递事件处理函数的事件对象
XML
XML简介
什么是XML
XML是可拓展的标记性语言
XML的作用
- 保存数据,且这些数据具有自我描述性
- 作为项目或模块的配置文件
- 作为网络传输数据的模式(现在以JSON为主)
语法
- 声明
<?xml version="1.0" encoding="utf-8" ?> - 注释
<!----> - 标签(元素) 与HTML大致一致
- 文本区域
<![ADATA[纯文本]]> 不需要转义的纯文本格式
XML解析
- W3C制定的DOM
- SUM公司制定的SAX (Simple API for XML)
- 第三方解析
jdom在dom基础上进行封装 dom4j在jdon基础上进行封装 pull主要用于Android开发,与SAX相似
dom4j解析技术
SAXReader saxreader = new SAXReader();
Document document=saxreader.read("java_test/src/book.xml");
Element root=document.getRootElement();
List<Element> books=root.elements("book");
for(Element book:books){
Element nameElement=book.element("name");
String name=nameElement.getText();
String price =book.elementText("price");
String sn=book.attributeValue("sn");
System.out.println(new Book(sn,name,price));
<?xml version="1.0" encoding="utf-8" ?>
<books>
<book sn="0004">
<name>时间简史</name>
<author>史蒂芬霍金</author>
<price>$80.0</price>
</book>
</books>
TomCat
由Apache组织提供的一种web服务器,提供对jsp和Servltet支持,是一种轻量级的javaweb容器(服务器).
修改Tomcat端口号
找到conf/server.xml , 修改Connector port=“端口号”
部署web到Tomcat
方法一: 把web工程目录拷贝到Tomcat的webapps目录下 通过http://ip:端口号/工程路径 访问 方法二: 找到 \conf\Catalina\localhost , 创建.xml配置文件:
<Contest path="/配置文件名" docBase="配置文件目录" />
Servlet
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
实现Servlet程序
方法一:实现Servlet接口
- 编写类实现Servlet接口
- 重写service方法,处理请求,响应数据
- 在web.xml 中配置Servlet程序访问的地址
public class ServletDemo1 implements Servlet {
public void init(ServletConfig arg0) throws ServletException {}
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {}
public void destroy() {}
public ServletConfig getServletConfig() {
return null;
}
public String getServletInfo() {
return null;
}
}
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello/</url-pattern>
</servlet-mapping>
</web-app>
方法二:继承HttpServlet
- 编写类继承HttpServlet类
- 根据业务需求重写doGet()和doPost()方法
- 在web.xml 中配置Servlet程序访问的地址
web.xml配置文件
web.xml文件是用来初始化配置信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。
常用web.xml标签功能
- 指定欢迎页面
- 命名与定制URL
- 定制初始化参数
- 指定错误处理页面
- 设置过滤器
- 设置监听器
- 设置会话(Session)过期时间
Servlet程序继承关系
Servlet <---- GenericServlet <---- HttpServlet Servlet: Servlet接口,只是负责定义Servlet程序的访问规范。 GenericServlet: 做了很多空实现。并持有一个ServletConfig类的引用。并对ServletConfig的使用做一些方法。 HttpServlet: 实现了请求的分发处理,HttpServlet抽取类实现了服务(方法,并实现了请求的分发处理)
ServletConfig类
Servlet程序的配置信息类
作用
- 获取Servlet程序的别名
- 获取初始化参数init-param
- 获取ServletContext对象
ServletContext接口
- 表示Servlet上下文对象
- 一个web工程,只有一个ServletContext对象
- ServletContext对象是域对象
ServletContext作用
- 获取web.xml中配置的上下文参数context-param
- 获取当前的工程路径,格式:/工程路径
- 获取工程部署后在服务器硬盘上的绝对路径
- 像Map一样存取数据
HTTP协议
请求
除了form中method=“POST”,其余一一般都为GET请求
GET请求
- 请求行
(1)请求的方式 GET (2)请求的资源路径[+?+请求参数] (3)请求的协议版本号 GET /untitled_war_exploded/hello HTTP/1.1 - 请求头
key:value
POST请求
1.请求行 2.请求头 3.空行 3.请求体
响应
响应HTTP协议格式
1.响应行 (1)响应的协议和版本号 (2)响应状态码 常见响应状态码 200:请求成功 302:请求重定向 404:服务器收到请求,请求数据不存在(请求地址错误) 500:服务器内部错误 (3)响应状态描述符 2.响应头 key:value 3.空行 4.响应体:回传给客户的数据
HttpServletRequest类
Tomcat服务器把请求过来的Http协议信息解析好封装到Request对象中,然后传递到service(doGet和doPost)方法中,可以通过HttpServletRequest对象获取所有请求信息
常用方法
i. getRequestURI() 获取请求的资源路径 ii. getRequestURL() 获取请求的统—资源定位符(绝对路径) iii. getRemoteHost() 获取客户端的IP地址 iv. getHeader() 获取请求头 v. getParameter() 获取请求的参数 vi. getParameterValues() 获取请求的参数(多个值的时候使用) vii. getMethod() 获取请求的方式GET 或POST viii. setAttribute(key , value); 设置域数据 ix. getAttribute(key ); 获取域数据 x. getRequestDispatcher() 获取请求转发对象 xi. setCharacterEncoding(“UTF-8”); 解决POST请求中中文乱码问题
HttpServletResponse类
HttpServletResponse 接口继承自 ServletResponse 接口,主要用于封装 HTTP 响应消息。
####两个输出流 两个流不能同时使用
- 字节流 getOutputStream(); 常用于下载(传递二进制数据)
- 字符流 getWriter(0; 常用于回传字符串(常用)
MINE类型说明
MINE是http协议中数据类型,格式:“大类型/小类型”
请求转发
服务器收到请求后从一个资源跳转到另一个资源的操作
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/index.jsp");
requestDispatcher.forward(request,response);
base标签 base标签设置页面相对路径工作时的参照地址,href属性就是参照的地址值
/ 斜杠的不同含义
- 在浏览器中解析:http://ip:port/
- 在服务器中解析:http://ip:port/工程路径/
解决响应中文乱码问题
方法一:
方法二: 此方法一定要在获取流对象前使用
请求重定向
服务器收到客户端请求,给客户端一个新的访问地址; 服务器发给客户端:响应状态码302;Location响应头:新地址 可以访问工程外资源 方法一:
方法二(推荐):
response.setRedirect("新地址");
JSP
Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。 JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合 JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
page指令
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
常见属性
- language 表示jsp翻译后是什么语言文件,暂时只支持java
- contenttype 表示jsp返回的数据类型
- pageEncoding 表示jsp页面本身的字符集
- import 等于java中的import
- aotuFlush 表示是否自动刷新缓冲区 默认值是true
- buffer 设置缓冲区大小,默认是8kb
- errorPage 设置jsp页面运行出错时,自动跳转的页面路径
- isErrorPage 设置当前页面是否是错误信息页面
- session 设置当前访问页面是否会自动创建HttpSession对象,默认是true
- extends 设置jsp翻译出来的java类默认继承对象
常用脚本
声明脚本
<%! 声明java代码 %> <%! 类属性 %> <%! static静态代码块 %> <%! 类方法 %> <%! 内部类 %>
表达式脚本
<%= 表达式 > 作用:在jsp页面上输出 数据
- 所有的表达式脚本都会被翻译到_jspService方法中
- 表达式脚本都会被翻译成为out.print()输出到页面上
- 表达式脚本不能以分号为结尾
代码脚本
<% java语句 %>
- 代码脚本都会被翻译到_jspService方法中
- 代码脚本可以由多个代码脚本块/表达式脚本完成一个java语句
jsp中三种注释
html注释会被翻译到java源代码中,以out.write()输出到客户端 java注释会被翻译到java源代码中 jsp注释 <%–jsp注释 --%>
9个内置对象
request 请求对象 response 响应对象 pageContext JSP的上下文对象 session 会话对象 application ServletContext对象 config ServletConfig对象 out jsp输出流对象 page 指向当前jsp的对象 exception 异常对象
四大域对象:
功能相同,存取数据范围不一致 ,使用优先级从小到大 pageContext(PageContextlmpl类) 当前jsp有效 request(HttpServletRequest类) 一次请求有效 session(HttpSession类) 一次会话(打开浏览器访问服务器到关闭浏览器)有效 application(ServietContext类) 整个web工程有效
out和response
当jsp页面中所有代码执行完成之后,会做以下两个动作: 1、执行out.flush()操作,会把out缓冲区中的数据追加到response缓冲区末尾 2、执行response的刷新操作,把全部数据写给客户端 由于jsp翻译之后,底层源代码都是使用out来进行输出,所以一般情况下,在jsp页面中统一使用out来进行输出。避免打乱页面输出内容的顺序。 而对于out输出的方法,又有两种: out.write():该方法对字符串输出有效 out.print():该方法对任意数据类型输出都有效 源码中,print是将其他几种数据类型都转换成字符串类型,然后调用write()输出的;而write()中,对于整型的输出,他是先转换成字符型,放入其缓冲数组中,然后再输出,此时输出的就是该数值对应的ASCII码的字符。
jsp常用标签
静态包含
<%@ include="/path"%>
- 静态包含不会翻译被包含的jsp页面
- 静态包含本质是把被包含的jsp页面代码拷贝到包含的位置执行输出
动态包含
<jsp:include page="/path"></jsp:include>
- 动态包含会把jsp页面翻译成java代码
- 动态包含底层是调用java代码执行输出jsp页面
- 动态包含可以带参数
请求转发
<jsp:forward page="/path">jsp:forward
EL表达式
Expression Language 表达式语言 替代jsp页面中的表达式脚本进行数据输出,主要用于输出域对象中的数据. ${}
运算
- empty运算
可以判断一个数据是否为空 以下几种情况为空: 1、值为null 值的时候,为空 2、值为空串的时候,为空 3、值是 object类型数组,长度为零的时候 4、list集合,元素个数为零 5、map集合,元素个数为零 - 三元/关系/逻辑/算术 运算 与java中一致
- []中括号运算:
- 输出有序集合中对应下标的值
- 输出map集合中key里含有特殊字符的key的值
11个隐含对象
变量 | 类型 | 作用 |
---|
pageContext | PageContextlmpl | 它可以获取jsp中的九大内置对象 | pagescope | Map<String,object> | 它可以获取pageContext 域中的数据 | requestScope | Map<String,object> | 它可以获取 Request 域中的数据 | sessionscope | Map<String.Object> | 它可以获取session域中的数据 | applicationScope | Map<String,Object> | 它可以获取ServletContext 域中的数据 | param | Map<String,String> | 它可以获取请求参数的值 | paramValues | Ma<String,String[]> | 它也可以获取请求参数的值,获取多个值的时候使用 | header | Map<String,String> | 它可以获取请求头的信息 | headervalues | Map<String,String[]> | 它可以获取请求头的信息,它可以获取多个值的情况 | cookie | Map<String,Cookie> | 它可以获取当前请求的cookie 信息 | initParam | Map<String,Cookie> | 它可以获取当前请求的Cookie信息 |
JSTL标签库
代替代码脚本 依赖:taglibs-standard-impl.jar taglibs-standard-spec.jar
set标签
往域中保存数据 <c:set scope="page" var="lqw01" value="09701" /> scope : 域 var : key value : value
if标签
做if判断 <c:if test="EL表达式"/>
choose/when/otherwise标签
<c:choose> <c:when test="${条件1}">动作1</c:when> <c:when test="${条件2}">动作2</c:when> <c:otherwise>其余动作</c:otherwise> </c:choose>
foreach标签
<c:forEach begin="1" end="10" var="i"> <h1>${i}</h1> </c:forEach>
item属性:遍历对象类型数组时的数据源 var : 遍历到的数据 begin : 开始索引值 end : 结束索引值 step : 遍历步长值 varStatus : 当前遍历到的数据的状态
文件的上传和下载
上传
1、要有一个form标签,method=post请求 2、form标签的encType属性值必须为multipart/form-data值 3、在form标签中使用input type=file添加上传的文件 4、编写服务器代码(servlet程序)接收,处理上传的数据。 encType=multipart/form-data表示提交的数据,以多段(每一个表单项一个数据段〉的形式进行拼接,然后以二进制流的形式发送给服务器
解析上传数据
依赖:commons-fileupload.jar commons-io.jar
下载
下载名中文乱码问题
IE和谷歌浏览器
resp.setHeader("Content-Disposition","attachment;filename="+URLEncoder.encode("文件名","UTF-8"));
BASE64编码解码
火狐浏览器
resp.setHeader("Content-Disposition","attachment;filename==?UTF-8?Bxxxx?="); =? 表示内容开始 UTF-8 表示字符集 B 表示BASE64编码 xxxx 文件名经过BASE64编码后的内容 ?= 表示编码内容的结束
动态切换
判断浏览器 req.getHeader("User=Agent").contain()
Cookie
Cookie是一段不超过4KB的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。
创建/获取/修改
生命控制
setMaxAge(int); 正数 : cookie存活时间 负数 : 浏览器关闭失效 0 : 立即失效
有效路径Path
cookie.setPath(request.getContextPath()+"/abc"); Path属性:定义了Web站点上可以访问该Cookie的目录
Session
1、session就一个接口( HttpSession )。 2、Seszion就是会话。它是用来维护一个客户端和服务器之间关联的一种技术。 3、每个客户端都有自己的一个 session会话。 4、 Session会话中,我们经常用来保存用户登录之后的信息。
创建和获取
request.getSession(); 第一次调用是创建 之后调用时获取创建好的Session会话对象 isNew(); true 表示刚创建 false 表示获取之前创建的 getId(); 每个会话都有一个唯一的ID值
数据域的存取
setAttribute(); getAttribute();
生命周期
Tomcat中默认时长:30min 设置单独某个Session超时时长:
setMaxInactiveInterval(int interval);getMaxInactiveInterval();
正数 : 超时时长时间负数 : 永不朝时(极少使用)invalidate() 立即超时
设置整个web工程超时时长
<session-config> <session-timeout>时长</session-timeout></session-config>
Filter过滤器
Java三大组件之一,javaEE规范,主要作用是拦截请求/过滤响应.
实现
1、编写一个类去实现 Filter接口 2、实现过滤方法doFilter() 3、到 web.xml中去配置 Filter的拦截路径 java <filter> <!--给Filter起一个别名--> <filter-name>HelloFilter</filter-name> <!--filter完整全类名--> <filter-class>HelloFilter</filter-class> </filter> <!--配置拦截路径--> <filter-mapping> <!--表示当前路劲给哪个filter使用--> <filter-name>HelloFilter</filter-name> <url-pattern>/jsptest.jsp</url-pattern> </filter-mapping>
生命周期
Filter的生命周期包含几个方法 1、构造器方法 2、init初始化方法 第1,2步,在web工程启动的时候执行(Filter已经创建) 3、 doFilter过滤方法 第3步,每次拦截到请求,就会执行 4、destroy销毁 第4步,停止web工程的时候,就会执行(停止web工程,也会销毁Filter过滤器)
FilterConfig
Filter过滤器的配置文件,Tomcat创建Filter的时候自动生成. FilterConfig 类的作用是获取filter过滤器的配置内容: 1、获取Filter的名称filter-name 的内容 2、获取在Filter中配置的 init-param初始化参数 3、获取ServletContext对象
FilterChain过滤器链
多个过滤器如何一起工作 FilterChain.doFilter 0方法的作用 1、执行下一个Filter过滤器(如果有Filter) 2、执行目标资源(没有Filter) 多个Filter过滤器执行的特点: 1、所看iter和百标资源双认都执行在同:一个线程中 2、多个Filter共同执行的时候,它们都使∶用同一个Request对象。 3、在多个Filter过滤器执行的时候,它们执行的优先顺序是由他们在web.xml中从上到下配置的顺序决定.
Filter的拦截路径
- 精确匹配
<url-pattern>/jsptest.jsp</url-pattern> - 目录匹配
<url-pattern>/web/*</url-pattern> - 后缀名匹配
<url-pattern>*.html</url-pattern>
JSON
JSON:JavaScript 对象表示法(JavaScript Object Notation)。 JSON 是存储和交换文本信息的语法。类似 XML。 JSON 比 XML 更小、更快,更易解析。
定义
value可以是任意数据类型 var jsonobj{ "key1":value, "key2":value2 }
访问
与访问对象属性一致 jsonobj.key;
两个常用方法
JSON.stringfy() 把json对象转为json字符串,一般进行数据交换用json字符串 JSON.parse() 把json字符串转为json对象,一般获取数据用json对象
JSON在java中使用
依赖:gson.jar
-
JavaBean和json转换 Book book=new Book("001","hhh","100"); Gson gson=new Gson();
-
list集合和json转换
- 转为json字符串与上相同
- json字符串转list
ArrayList<Book> books=gson.fromJson(booklistinfo,new BookListType().getType()); 第二个参数为继承TypeToken类的一个类 public class BookListType extends TypeToken<ArrayList<Book>> {}
map和json转换
与list相同
AJAX
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 AJAX 不是新的编程语言,而是一种使用现有标准的新方法。 AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。 AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。
JS原生AJAX请求
同步和异步 async
在Jquery中ajax方法中async用于控制同步和异步,当async值为true时是异步请求,当async值为fase时是同步请求。ajax中async这个属性,用于控制请求数据的方式,默认是true,即默认以异步的方式请求数据。 1、async值为true (异步) 当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和ajax块后面的脚本(另一个线程) 2、async值为false (同步) 当执行当前AJAX的时候会停止执行后面的JS代码,直到AJAX执行完毕后时,才能继续执行后面的JS代码。
JQuery实现ajax
$.ajaxt方法
url 请求的地址type 请求的类型GET/POSTdata 发送给服务器的数据,两种格式 1. name1=valu1e & name2=value2; 2. {key1:value1}success 请求成功响应的回调函数dataType 响应的数据类型
.
g
e
t
和
.get 和
.get和.post
$.getJSON
url 请求的地址data 发送给服务器的数据callback 回调函数
表单序列化serialize()
可以把表单中所有表单项内容获取到,并以"name=value"的形式拼接
i18n国际化
国际化三要素
* Locale对象:表示不同的时区 位置 语言* Properties属性配置文件:i18n_zh_CN.properties* ResourceBundle资源包:根据Locale和Properties获取文字信息
MAVEN
Maven作用
项目自动化构建工具
- 项目的自动构建,帮助开发人员做项目代码的编译,测试,打包,安装,部署等工作.
- 管理依赖
约定的目录结构
项目名 \src \mian 主程序目录 \java 源代码 \resources 配置文件 \test 测试程序代码 \java 测试代码的(junit) \resources 测试程序需要的配置文件 \pom.xml maven的配置文件(核心文件)
POM
Project Object Model项目对象模型,pom.xml 就是 maven 的配置文件,用以描述项目的各种信息。
坐标
https://mvnrepository.com/
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.codehaus.mojo</groupId> <artifactId>my-project</artifactId> <version>1.0</version> <packaging>war</packaging></project>
依赖
<dependencies> <dependency> gac </dependency></dependencies>
仓库
仓库是存东西的,maven的仓库存放的是:
- maven工具自己的jar包。
- 第三方的其他jar,比如项目中要使用mysgl驱动。
- 自己写的程序,可以打包为jar。存放到仓库。
仓库的分类: 1.本地仓库(本机仓库)︰位于你自己的计算机,它是磁盘中的某个目录。本地仓库:默认路径,是你登录操作系统的账号的目录中/.m2/repository c : \users \NING MEI.m2(repository 修改本地仓库的位置:修改maven工具的配置文件(maven的安装路径\conflsetting.xml) 步骤: 1)创建一个目录,作为仓库使用。目录不要有中文和空格。目录不要太深。 例如:D:lopenrepository 2)修改setting.xml文件,指定 D:lopenrepository这个目录 <localRepository>D :/ openrepository</localRepository>
生命周期/插件/命令
maven的生命周期:项目构建的各个阶段。包括清理,编译,测试,报告,打包,安装,部署 插件:要完成构建项目的各个阶段,要使用maven的命令,执行命令的功能是通过插件完成的。插件就是jar,一些类。 命令:执行maven功能是由命令发出的。比和mvn compile
常用命令
(1)maven clean。 对项目进行清理,清理的过程中会删除删除target目录下编译的内容。 (2)maven validate 验证,验证项目是正确的并且所有的信息是可用的; (3)maven compile。 编译项目源代码。 (4)maven test。 对项目的运行测试。 (5)maven packet。 可以打包后的文件存放到项目的 target 目录下,打包好的文件通常都是编译后生成的class文件。 (6)verify 运行任何检查,验证包是否有效且达到质量标准。 (7)maven install。 在本地仓库生成仓库的安装包可以供其他项目引用,同时打包后的文件存放到项目的 target 目录下。 (8)site 生成项目相关信息的网站 (9)deploy 部署,在构建环境中完成,复制最终的包到远程库。
依赖管理
依赖范围:使用scope表示依赖范围 compile:默认,参与项目构建的所有阶段 test:测试,在测试阶段使用 provided:提供者,项目在部署到服务器时,不需要提供这个依赖的jar,而是由服务器这提供这个依赖
常用设置
properties配置
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties>
自定义变量
- 定义
<变量名>变量值</变量名> - 使用
${变量名}
|