第二周周报
本周继续学习了JavaWeb和JavaScript语言相关知识。
JavaWeb
本周学习了jsp中内置九大对象(JSP的内置对象是指在JSP页面系统中已经默认内置的Java对象,这些对象不需要开发人员显式声明即可使用。只能在<%%>中直接用)的其中五个,分别是
out: 页面输入内容 向客户端输出内容
可以用out.print();out.println();实现输出
request 请求 :
将请求数据封装到此对象里面去;用request getParameter函数
request对象常见的方法
String getParameter(String name)//根据key 获取参数
String[] getParameterValues(String name)//根据key 返回多个字段值
void setCharactorEncoding(“编码格式”)//设置的是post请求方式的编码,get方式请求编码,修改tomcat/conf/server.xml
getRequestDispatcher().forwarfd() //请求转发方式跳转页面 A页面跳转到B页面
ServletContext getServletContext()//获取项目的ServletContext对象
请求提交方式有两种 get和post
http请求默认是get方式请求
1:method =“get”
个体方式会将请求参数加入url中
get (url参数大小限制为4-5kb)
2:method = “post”
不会加入url
理论上发送数据大小是无限的(牵扯到密码、上传文件必须使用post)
get和post的区别
1.get请求一般是去取获取数据(其实也可以提交,但常见的是获取数据);
post请求一般是去提交数据。
2.get因为参数会放在url中,所以隐私性,安全性较差,请求的数据长度是有限制的,不同的浏览器和服务器不同,一般限制在 2~8K 之间,更加常见的是 1k 以内;
post请求是没有的长度限制,请求数据是放在body中;
3.get请求刷新服务器或者回退没有影响,post请求回退时会重新提交数据请求。
4.get请求可以被缓存,post请求不会被缓存。
5.get请求会被保存在浏览器历史记录当中,post不会。get请求可以被收藏为书签,因为参数就是url中,但post不能。它的参数不在url中。
6.get请求只能进行url编码(appliacation-x-www-form-urlencoded),post请求支持多种(multipart/form-data等)。
解决请求乱码
get请求乱码 是由Tomcat处理 将URIEncoding="UTF-8"添加到tomcat server配置文件中;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JvFNbo8K-1662719831680)(C:\Users\wjl\AppData\Roaming\Typora\typora-user-images\image-20220909160136088.png)]
post请求乱码 添加request.setCharacterEncoding(“UTF-8”)到代码前
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wxcsCP7L-1662719831681)(C:\Users\wjl\AppData\Roaming\Typora\typora-user-images\image-20220909155641940.png)]
response 响应
response 对象在 ASP 中负责将信息传递给用户.Response对象用于动态响应客户端请求,并将动态生成的响应结果返回到客户端浏览器中,使用Response对象可以直接发送信息给浏览器, 重定向 浏览器到另一个URL或设置 cookie 的值等
功能:向客户端发送浏览器能够处理的各种数据
page对象
这个对象就是页面实例的引用。它可以被看做是整个JSP页面的代表。
page 对象就是this对象的同义词。
exception :异常
exception对象用来处理JSP文件执行时发生的所有错误和异常,只有在page指令中设置为isErrorPage属性值为true的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。
使用:在page指令中指定errorPage属性值为error.jsp,即指定显示异常信息的页面。
用<%=exception.getMessage() %>来捕获错误信息。
实例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q308iGdg-1662719831681)(C:\Users\wjl\AppData\Roaming\Typora\typora-user-images\image-20220909160831849.png)]
JavaScript
本周的JavaScript课程学习了:
函数:
JavaScript中所有函数都是Funtion类的对象;
Function类的name属性,存储该函数的名称
Function类的length属性,存储该函数推荐的参数数量
任何函数对象上的constructor属性,指向Function类
定义函数:
可以使用Function类构造函数形式为new Function()
实例:
//使用Function类构造函数maxA;用来计算不定数量的数的最大值
let max;
let maxA = new Function('num1','num2','max = num1 > num2 ? num1 :num2;return max');
maxA(40,103);
可以使用function关键字构造函数:
语法:function 函数名 (参数列表){函数体;}
可以声明箭头函数
hello = function() {
return "Hello World!";
}
//可以写为:
hello = () => {
return "Hello World!";
}
let 函数名 = (参数列表) => 函数体;
//小括号中书写参数列表,当参数只有一个时可以省略小括号
//当函数体有多行代码可以使用大括号构造代码块
//如果没有return语句,箭头函数实际执行的最后一行代码就是它的返回值;
函数名
函数名就是变量名,该变量名在函数内部有效,在函数外部是否有效得看声明时它所处的位置
当声明一个函数的同时又把它赋值给一个变量则这个函数名在函数之外无法使用
参数
参数列表:
参数列表中的参数用逗号分开,列表中包含了传递给调用函数的变量的声明。
注意:参数列表包括两个因素(参数的类型和个数);如果参数个数相同,但是参数的类型不同。那么参数列表也是不相同的。
剩余参数
如果函数的最后一个命名参数以...
为前缀,则它将成为一个由剩余参数组成的真数组,其中从0
(包括)到theArgs.length
(排除)的元素由传递给函数的实际参数提供。
语法:
function (0, 1, ...theArgs) {
// ...
}
函数体内可以按照数组的方式访问剩余的所有参数
当实际调用时候没有传递剩余参数时,该数组也存在,只是length是0;
参数:arguments对象
隐含存在于函数中,用于描述和实参列表有关的数据或者属性
数据类型
undefined 类型:如果想访问的值不应该存在时,就是undefined;
注意:undefined不是关键字,而是全局对象上的一个名称为undefined的属性
可以通过typeof undefined判断某个作用域中的undefined是否是undefined
在不确定的作用域中想获得一个真正的undefined,可以参考:
//算完后不要结果
console.log(void(0));
//立即调用函数
console.log((function(){})());
Null类型
null类型只有一个特殊的值null
null值表示一个空对象指针。
只要意在保存对象的变量还没有真正保存对象,就应该明确让该变量保存null值。
Boolean类型
使用true和false表示真和假,用常用于逻辑运算
数值:整数0、浮点0、NaN(Not a Number不是数)对应false,其余对应true
null:false
underfined:false
字符串:当字符串中有内容的时候,对应true,否则对应false
引用类型:对象存在即可视为true。
整数
在其他值和整数之间转换,可以使用Number()、parselnt()函数
Number适合于将各种类型对应到整数,对于字符串的处理过程要求字符串必须是严格的数字字符(类型转换)
parsrlnt适合从字符串中分析出整数(做语法分析)
浮点数
字面量(小数)1.0、1.1、1.23E45
在其他值和浮点数之间转换,可以使用Number()、parseFloat()函数
大整数
用基本数据类型无法储存其精度的整数
用于处理比整数更大的整数
0n 、1n、123123125151231231241n
串的处理过程要求字符串必须是严格的数字字符(类型转换)
parsrlnt适合从字符串中分析出整数(做语法分析)
浮点数
字面量(小数)1.0、1.1、1.23E45
在其他值和浮点数之间转换,可以使用Number()、parseFloat()函数
大整数
用基本数据类型无法储存其精度的整数
用于处理比整数更大的整数
0n 、1n、123123125151231231241n