Day45
jQuery动画
显示和隐藏
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><script src="js/jquery-1.8.2.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">$(function(){ // //方法一:切换事件 // $("#btn01").toggle( // function(){ // $("img").hide("slow"); // $("img").hide(2000); // }, // function(){ // $("img").show("fast") // $("img").show(1000); // } // )//方法二:toggle()方法$("#btn01").click(function(){$("img").toggle(3000)})})</script></head><body><button id="btn01">显示和隐藏</button><img src="img/时间.jpg" /></body> </html>
滑动
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><script src="js/jquery-1.8.2.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">$(function(){//方法一:切换事件$("#btn01").toggle(function(){ // $("img").slideUp("slow");$("img").slideUp(2000);},function(){ // $("img").slidedown("fast")$("img").slideDown(1000);}) // //方法二:slideToggle()方法 // $("#btn01").click(function(){ // $("img").slideToggle(3000) // })})</script></head><body><button id="btn01">显示和隐藏</button><img src="img/时间.jpg " width="100px" height="100px" /></body> </html>
淡入淡出
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><script src="js/jquery-1.8.2.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">$(function(){ // 方法一:切换事件 // $("#btn01").toggle( // function(){ // $("img").fadeOut("slow"); // $("img").fadeOut(2000); // }, // function(){ // $("img").fadeIn("fast") // $("img").fadeIn(1000); // } // )//方法二:fadeToggle()方法$("#btn01").click(function(){$("img").fadeToggle(3000);})})</script></head><body><button id="btn01">显示和隐藏</button><img src="img/时间.jpg " width="100px" height="100px" /></body> </html>
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><style type="text/css">.divFrame {border: solid 1px #666;width: 197px;text-align: center;}.divFrame .divTitle {background-color: #eee;padding: 5px 0px 5px 0px}.divFrame .divContent {padding: 5px 0px 5px 0px}.divFrame .divContent img {border: solid 1px #eee;padding: 2px;width: 120px;height: 120px;}</style><script type="text/javascript" src="../js/jquery-1.8.2.js"></script><script type="text/javascript">$(function() {$("#Select1").change(function(){var value = $(this).val();$("img").fadeTo(1000,value);})})</script></head><body><div class="divFrame"><div class="divTitle"><select id="Select1"><option value="0.2">0.2</option><option value="0.4">0.4</option><option value="0.6">0.6</option><option value="0.8">0.8</option><option value="1.0" selected="selected">1.0</option></select></div><div class="divContent"><img src="../img/石像.jpg" alt="" title="风景图片" /></div></div></body></html>
自定义动画
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><style type="text/css">.divFrame {border: solid 1px #ccc;background-color: #eee;width: 60px;height: 60px;font-size: 13px;padding: 5px}</style><script type="text/javascript" src="../js/jquery-1.8.2.js"></script><script type="text/javascript">$(function() {/** 需求:* 当点击图层的时候,图层的宽度变为200px,高度为100px,共经历3秒完成* 3秒后,字体大小为50px,*/$("div").click(function(){$(this).animate({"width":"200px","height":"100px"},3000,function(){$(this).css("font-size","50px");});})})</script></head><body><div class="divFrame">点击变大</div></body></html>
.animate({},3000,function(){})
jQuery的Ajax
加载文件
加载HTML
.load()
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><script src="../js/jquery-1.8.2.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">$(function(){$("button").click(function(){$("div").load("index.html");})})</script></head><body><button>加载页面</button><div></div></body> </html>
加载JSON数据
[{"name":"张三","age":18},{"name":"李四","age":23} ]
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><script src="js/jquery-1.8.2.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">$(function(){$("#btn01").click(function(){$.getJSON("jQuery的Ajax/new_file.json",function(data){$.each(data, function(index,stu) { // console.log(data[index].name+"--"+data[index].age);console.log(stu.name+"--"+stu.age);});})})})</script></head><body><button id="btn01">加载JSON数据</button></body> </html>
加载JavaScript
$.getJSON("new_file.json",function(data){$.each(data,function(index,stu){console.log(stu.name + " -- " + stu.age);}) })
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><script src="../js/jquery-1.8.2.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">$(function(){$("#btn01").click(function(){$.getScript("new_file.js");})})</script></head><body><button id="btn01">加载JS数据</button></body> </html>
加载xml
<?xml version="1.0" encoding="UTF-8" ?> <students><student><name>张三</name><age>18</age></student><student><name>李四</name><age>23</age></student> </students>
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><script src="../js/jquery-1.8.2.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">$(function(){$("#btn01").click(function(){$.get("new_file.xml",function(data){$(data).find("student").each(function(){var name = $(this).find("name").text();var age = $(this).find("age").text();console.log(name+"--"+age);})})})})</script></head><body><button id="btn01">加载JS数据</button></body> </html>
与服务器交互
<script type="text/javascript">function fun01(){window.location = "welcome.html";}$(function () {var bool = false;document.getElementById("registerForm").onsubmit = function (){return bool;//只有账号可以注册时才允许提交};$("#username").blur(function (){$.get("Student?action=isRegister",{"username":$(this).val()},function (data){console.log(data);if(data=="1"){$("#username+span").text("恭喜,账号可以注册");$("#username+span").css("color","green");bool = true;}else if(data=="-1"){$("#username+span").text("抱歉,该账号已被注册");$("#username+span").css("color","red");bool = false;}})})function showProvince(){$.post("User",{"action":"getProvinces"},function (data){var pros = eval(data);for (let i = 0; i < pros.length; i++) {var option = $("<option></option>");$(option).val(pros[i].code);$(option).text(pros[i].name);$("#province").append($(option));}})}showProvince();$("#province").change(function (){$.post("User",{"action":"getCities","parentCode":$(this).val()},function (data){$("#city").text("");var cities = eval(data);for (let i = 0; i < cities.length; i++) {var option = $("<option></option>");$(option).val(cities[i].code);$(option).text(cities[i].name);$("#city").append($(option));}})})})</script>
serialize()-序列化表单
表单中带name属性的组件都会拼接成xxx=xxx&xxxx=xxxx…
$.ajax()
除了可以使用全局性函数load()、get()、post()实现页面的异步调用和与服务器交互数据外,在jQuery中,还有一个功能更为强悍的最底层的方法$.ajax(),该方法不仅可以方便地实现上述三个全局函数完成的功能,更多地关注实现过程中的细节
jQuery.ajax(url,[settings])
列举几个常用的回调函数
如果要处理$.ajax()得到的数据,则需要使用回调函数。beforeSend、error、success、complete。
· beforeSend 在发送请求之前调用,并且传入一个XMLHttpRequest作为参数。
· error 在请求出错时调用。传入XMLHttpRequest对象,描述错误类型的字符串以及一个异常对象(如果有的话)
· success 当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。
complete 当请求完成之后调用这个函数,无论成功或失败。传入XMLHttpRequest对象,以及一个包含成功或错误代码的字符串。
利用$.ajax提交表单
$(function () {$("input[type='button']").click(function (){$.ajax({type:"post",url:"Student",data:$("#registerForm").serialize(),//序列化表单,表单中带name属性的组件都会拼接成xxx=xxx&xxx=xxx...async:true,success:function (data) {alert(data);}})})
Bootstrap
目前最受欢迎的前端框架
优势
移动设备优先,浏览器支持,容易上手,响应式设计。
使用
利用CDN:
加载链接地址即可使用,不用下载包(注意加载有先后顺序)。
提供了很多现成的样式可以直接使用。
标签 图片 列表组 表格 模态框
可视化布局
https://www.bootcss.com/p/layoutit
Maven
含义
Maven是一个构建项目的工具,也是一个管理项目的工具。
应用
1.构建项目
2.管理依赖
3.做项目的热部署
4.基于项目做多模块的构建
安装
注意:Maven不需要安装,下载解压就行。
1.配置环境变量
M2_HOME: 路径
path: %M2_HOME%\bin
2.验证是否配置成功
打开cmd,输入mvn -version
使用命令创建java项目
- 进入工作空间,取名(xxxMavenWorkspace)。
- cd C:\MavenWorkspace 进入到此目录。
- 输入命令来找模板 mvn archetype:generate
- 默认出现10个常见的模板 默认选择的是 7号模板(用来创建 java项目org.apache.maven.archetypes:maven-archetype-quickstart)
- 填写groupId – 组别(可以简单认为是包名)
- 填写 artifactId – 项目名
- 填写 version – 版本号(这个直接默认就好,一般情况下不改)
- 填写 package – 包名(默认是groupId,这里默认就好)
- 输入 Y (确定)
- 构建项目
项目目录解析
MavenWorkspace\JavaTest01\src
MavenWorkspace\JavaTest01\src\main
C:\MavenWorkspace\JavaTest01\src\main\java 存放java源文件
C:\MavenWorkspace\JavaTest01\src\test 存放测试文件MavenWorkspace\JavaTest01\pom.xml 插件管理、项目的依赖管理、整个项目自己的坐标
运行项目
cd C:\MavenWorkspace\JavaTest01 进入此目录
mvn package项目打包,此时会在项目根目录中生产target文件夹
cd C:\MavenWorkspace\JavaTest01\target 进入此目录
java -cp JavaTest01-1.0-SNAPSHOT.jar com.dream.test01.App 运行代码
注意:mvn clean-----清空target文件mvn install :打包并将这个jar文件放到本地仓库(管理jar文件的本地库)mvn test:运行所有的测试用例
使用命令创建web项目
- 进入工作空间,取名(xxxMavenWorkspace)。
- cd C:\MavenWorkspace 进入到此目录。
- 输入命令来找模板 mvn archetype:generate
- 默认出现10个常见的模板 默认选择的是 7号模板(用来创建 java项目org.apache.maven.archetypes:maven-archetype-quickstart),这里选择10号
- 填写groupId – 组别(可以简单认为是包名)
- 填写 artifactId – 项目名
- 填写 version – 版本号(这个直接默认就好,一般情况下不改)
- 填写 package – 包名(默认是groupId,这里默认就好)
- 输入 Y (确定)
- 构建项目
项目目录解析
MavenWorkspace\WebTest01\src
MavenWorkspace\WebTest01\src\main
MavenWorkspace\WebTest01\src\main\resources存放资源文件MavenWorkspace\WebTest01\src\main\webapp 存放前端资源和 web.xmlC:\MavenWorkspace\WebTest01\pom.xml 插件管理、项目的依赖管理、整个项目自己的坐标
注意:mvn package项目打包,此时会在项目根目录中生产target文件夹
IDEA中配置Maven
配置maven的国内仓库/中央仓库位置:C:\apache-maven-3.6.0\conf\settings.xml
<mirrors><!-- <mirror> <id>mirrorId</id> <mirrorOf>repositoryId</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://my.repository.com/repo/path</url> </mirror>--><mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror></mirrors>
配置maven的本地仓库位置:C:\apache-maven-3.6.0\conf\settings.xml
<!-- localRepository | The path to the local repository maven will use to store artifacts. | | Default: ${user.home}/.m2/repository <localRepository>/path/to/local/repo</localRepository>--> <localRepository>C:\.m2\repository</localRepository>
3.在IDEA中配置Maven – File–> Setting
在IDEA中操作Java项目
在IDEA中操作Web项目
其余步骤同上解析pom.xml:<?xml version="1.0" encoding="UTF-8"?> <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>com.dream.test01</groupId> <artifactId>WebTest02</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <!-- <packaging>jar</packaging>打包的时候打包成jar文件 - Java项目 <packaging>war</packaging>打包的时候打包成war文件 - Web项目 <packaging>pom</packaging>不打包,表示聚合项目工程 --> <name>WebTest02 Maven Webapp</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <!--项目的jar依赖--> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope><!--表示在测试的时候有效--> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope><!--表示在编译和测试过程中有效,最后生成的war包时不会加入--> </dependency> </dependencies> <!--项目的构建的时候使用的信息--> <build> <finalName>WebTest02</finalName> </build></project>
****注意:编写java代码的位置问题****在web项目中对的src/main中创建java并设置成源码文件夹
在IDEA中操作聚合项目**(父工程项目/**多模块构建)
其余步骤同上****目录解析**😗
*创建子级工程**😗***右键父级工程 --> new --> moudle—后面的步骤和创建单个工程一样使用maven构建项目的时候 需要先找模板 通过模板来创建 项目
聚合项目中工程之间相互引用
含义:在一个子级工程中引用另一个子级工程中的资源在子级工程pom.xml中配置另一个子级工程的项目坐标
<dependencies> <dependency> <artifactId>StudentManagerSystemPojo</artifactId> <groupId>com.dream.test01</groupId> <version>1.0-SNAPSHOT</version> </dependency><dependencies>
Maven管理项目依赖
含义:在Maven仓库中寻找Jar包仓库分类:本地仓库:本地的一个文件夹,用来存放所有的jar包,由自己维护 远程仓库(或私服):由公司或单位创建的一个仓库,由公司维护 中央仓库:互联网上的仓库,由Maven团队维护(国内一般设计阿里云为中央仓库,下载jar更快)寻找流程:本地仓库 --> 远程仓库(或私服) --> 中央仓库导包流程:1. https://mvnrepository.com查询jar包描述2. 在项目pom.xml中配置jar包描述,IDEA将jar包下载到本地仓库即可
导包:https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload/1.5
问题一:IDEA创建新的maven项目时需要反复修改下载路径,以及创建项目后没有src。
解决方案:file中选择close project,退回到全局设置 ,在Customize中找到All settings,进去后在build里修改maven的runner,添加 “-DarchetypeCatalog=internal” ,并在maven中修改home_path,settings file和loacl repository分别指定自己maven的位置以及maven中的config下的setting.xml文件,和本地jar包存储仓库。设置完毕后点击ok保存。再次创建项目时就有src,并且不用修改下载路径了。
问题二:即使导入了el的相关jar包,但是仍然无法识别el表达式?
原因: 自动生成的web.xml文件的web-app版本是2.3的,导致EL表达式混乱,因为EL表达式是2.4以上版本才支持的。
解决方案:1.找到maven-archetype-webapp的jar包位置 ,如C:.m2\repository\org\apache\maven\archetypes\maven-archetype-webapp\1.0, Maven后边的路径应该是一样的 。
2.用压缩包的形式打开jar包,然后找到 archetype-resources\src\main\webapp\WEB-INF\web.xml ,用记事本打开,将里面的内容修改为(tomcat的web.xml文件内容):
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><display-name>Archetype Created Web Application</display-name></web-app>