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>
自定义变量
- 定义
<变量名>变量值</变量名> - 使用
${变量名}
|