##动态页面
var 定义的是全局变量
let 是局部变量
const 定义的是常量
#动态页面
后端如何解析前端url的地址值
public static void main(String[] args) {
String url = "http://127.0.0.1:8848/cgb2104/center?pwd=1&qpwd=1&num=1";
//通过截取?进行截取右边的下标为[1]
String[] a = url.split("\\?");
//由于浏览器都是字符串 所以打印的时候要用tostring
System.out.println(Arrays.toString(a));
//定义截取 ? 右边 的字符串
String b = a[1];
//通过&的符号进行截取
String[] s = b.split("&");
System.out.println(Arrays.toString(s));
//定义map集合 ConcurrentHashMap<>();币hashmap较好
Map<String,String> map= new ConcurrentHashMap<>();
// 将截取后的字符串进行遍历
for (String ss: s ){
String[] split = ss.split("="); //通过=进行截取
//将等号切完之后, 一个属性一个相应的值为一个数组,所以就变成了很多个数组;
String key=split[0]; //定义key和value
String value =split[1];
map.put(key, value); //将key和value存到map集合中
System.out.println(map);
}
}
}
后端如何与数据库进行交互的
浏览器向服务器发送了什么请求信息在点开F12之后,里面有表头信息,请求路径, 请求 和响应等
js(javascrapt)的作用
JS javascript脚本语言 实现页面前端和后端的数据交互,形成动态网页
js就是动态网页 : 比如当我们注册一个博客 ,那么在每个博客的账号里有不同的内容 , 所以如何动态的获取数据 ,这就是js的主要作用 ;
js可以用来编写大型的程序 , 但是一门基于对象和事件驱动 的弱脚本语言(就是只能在浏览器中使用)
基于对象:它不仅可以创建对象,也能使用现有的对象。
事件驱动:在JS中,大部分情况下都是通过事件触发驱动函数执行的,从而实现特定的功能。
脚本语言:在网络前端开发环境下,用于嵌入在客户端浏览器中的一段小程序
js的优势
(1)良好的交互性
(2)一定的安全性(JS被强制的要求,不能访问浏览器以外的东西,只能访问浏览器和浏览器内部的资源)
(3)跨平台性(Java语言具有跨平台性,是因为有虚拟机)
只要有浏览器的地方都能执行JS
js的三种语法
内部 :就是在head的标签内使用script ; 引入body里的内容
外部: 通过script标签进入外部js文件
外部引入js代码
首先创建js文件:命名为1.js,并且将js代码写入到该文件中
<script src="外部的js的文件">
function fn(){
alert("JS的第2种引入方式");
}
然后html页面中引入上面创建的js文件
<head>
<meta charset="utf-8"/>
<script>/* JS代码 */
function fn(){
alert("JS的第1种引入方式");
}
</script>
</head>
<body>
<div id="div1" onclick="fn();">Hello JavaScript</div>
</body>
内部引入js代码
将js代码写入到head标签的script标签里面
<head>
<title>hello</title>
<meta charset="utf-8"/>
<script>/* JS代码 */
function fn(){
alert("111");
}
</script>
</head>
<body>
<a href="#" onclick="fn();">鼠标点击事件...</a>
</body>
单击事件:点击"我是div" 一次会弹出弹框
<head>
<title>hello</title>
<meta charset="utf-8"/>
<script>/* JS代码 */
alert(100);
function fn(){
alert("111");
}
</script>
</head>
<body>
<a href="#" onclick="fn();">鼠标单击事件...</a>
</body>
双击事件: 就是点击两次"我是div"就会出现弹框
<!DOCTYPE html>
<html>
<head>
<title>hello</title>
<meta charset="utf-8"/>
<script>/* JS代码 */
alert(100);
function fn(){
alert("111");
}
</script>
</head>
<body>
<a ondblclick="fn();">鼠标点击事件...</a>
</body>
网站发送服务器的
js的打印语句alert 和 console.log的区别
1 ):alert和console.log其实是一样的用法,只是alert以弹出框形式呈现,而console.log在控制台输出而已。2):console.log() 可以打印任何类型的数据。而 alert() 只能输出string,如果alert输出的是对象会自动调用 toString() 方法。如果想 console.log() 输出的与alert相同,需要调用 toString()。
在js中类型用var类型包括了所有的类型 ; 数值类型-number , 字符串类型-string, 布尔类型-boolean
undefined , null,对象等类型
js的运算符
JS中的运算符和Java中的运算符大致相同
算术运算符: +,-,*,/,%,++,--
赋值运算符: =,+=,-=,*=,/=,%=
比较运算符: ==,!=,===,!==,>,>=,<,<=
位运算符: & , |
逻辑运算符: && ,||
前置逻辑运算符: ! (not)
三元运算符: ? :
% 是除数的余数, &&如果有一个为false则直接判断为false || 如果有一个true则全部为true |
a+=4就相当于 a=a+4
typeof打印的是该值的类型
var i = 3;
console.log(typeof i); 打印的值是number而不是3
在js中==比较的只是值 而===比较的是类型和值
三元表达式 : 如果为true则调用表达式1 false调用表达式2
在js中类型用var类型包括了所有的类型 ; 数值类型-number , 字符串类型-string, 布尔类型-boolean
undefined , null,对象等类型
var a = 1;
a=true;
a=100;
alert(a) ; //100
这样的情况则是打印最后赋予的值
在js中在打印框内动态输入数据的关键字是prompt
var a=prompt("请输入动态数据:")
console.log(a);
switch....case
注意: 每个case后面都要加一个break;
var day = 3;
switch( day ){
case 1:
alert("今天是星期一");
break;
case 2:
alert("今天是星期二");
break;
case 3:
alert("今天是星期三");
break;
case 4:
alert("今天是星期四");
break;
case 5:
alert("今天是星期五");
break;
}
1.19 JS数组
JS数组用于在单个的变量中存储多个值(其实就是一个容器)。
JS中的数组可以存储例如:数值、字符串、布尔值、undefined、null、对象、函数等
1.19.1 JS数组的声明方式
方式一: 通过new Array构造函数声明数组
var arr1 = new Array();//声明一个空数组
var arr2 = new Array("abc", "hello", true);//声明一个具有初始值的数组
alert(arr2.length);//3
方式二 : 通过数组直接量声明数组
var arr4 = [];//声明一个空数组
alert(arr4.length);//0
arr4 = ["abc", "hello", true];//声明一个具有初始值的数组
alert(arr4);
1.19.2 数组需要注意的细节
(1)JS数组中可以存放任意的数据类型
(2)JS中的数组长度可以被改变
var arr1 = [];//声明一个空数组
console.log( arr1.length ); //此时数组长度为 0
arr1.length = 10;
console.log( arr1.length ); //此时数组长度为 10
arr1[99] = "abc";
console.log( arr1.length ); //此时数组长度为 100
arr1.length = 0;
console.log( arr1.length ); //此时数组长度为 0
声明:function 函数名称([参数列表]){ 函数体 }
调用: 函数名称([参数列表]);
案例:
function a(){ //无参函数定义
var a = [1,2,3,4,5]; //定义数组
var sum =0; //定义变量
for (var i = 0; i <a.length; i++) {
if(a[i]%2==0){
sum+=a[i];
}
}
alert(sum);
}
a();//函数调用
function b(x,y){//定义含参函数
alert(x+y);
}
b(1,"2");//函数调用
b(1,2);//函数调用
声明:var 函数名称 = function([参数列表]){ 函数体 }
调用: 函数名称([参数列表]);
案例:
// fn2(); //这种方式定义的函数还未加载就调用,会报错.方式1没问题
var fn2 = function(){ //定义无参函数
alert(100);
}
fn2(); //函数调用
var fn3 = function(x,y){ //定义含参函数
alert(x*y);
}
fn3(0.32,100);//函数调用
fn2("王海涛");参数个数不匹配,王海涛undefined
var e = function(x,y){ //定义有返回值含参函数
return x-y;
}
alert("函数返回值:::"+ e(1.1,10.9) ); //函数调用