2021.6.16JavaWeb考试

这篇博客详细解析了JavaWeb开发中的Servlet、JSP内置对象及其使用,包括获取初始化参数、请求处理、异常处理等关键知识点。还深入探讨了JavaBean、EL表达式以及前端技术如CSS、JavaScript的相关概念和用法。内容涵盖了类之间的关系、抽象类与接口、异常处理策略等核心概念,旨在帮助开发者巩固Java语言基础和提升Web开发技能。
摘要由CSDN通过智能技术生成

又要考试了,临时抱抱脚丫子~

javaweb

第三章Servlet

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.D。通过ServletContext的getInitParameter()获取的是在web.xml中为整个应用定义的在这里插入图片描述
区别于 init-param参数,可以通过ServletConfig对象的getInitParameter()方法获取到,对应于web.xml中的定义是在这里插入图片描述

4.A。不清楚原因。通过地址栏貌似只能访问doGet
D实现了一种自动提交表单,让servlet执行dopost函数的方法

5.request.getParameterValues(String name)获取的是一个数组,通常是因为这个name有多个对应值,所以通过length可以得到数组的长度;而request.getParameter(String name)返回的是相应名的数据(value),如果有重复的名,则返回第一个的值(value).

6.一般在写servlet的时候,都会在前面加上 response.setContentType(“text/html;charset=utf-8”);
request.setCharacterEncoding(“UTF-8”);
request设置编码只是单方面的解码,因为你从request只能设置数据源的解码方式,而不能指定数据源的编码方式,所以有可能解出来是乱码
response设置的是双方面的,可以保证jsp得到response之后按照你指定的方式去解码

7.A。B这两个方法压根就不存在好吧
另外,sendRedirect中使用相对路径的时候,’/'表示到当前主机地址而已,不表示到具体项目。c应该是/project/success.jsp

第五章JSP

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.A。。。page指令是作用于整个界面的。因为别忘了他的import属性是可以导包的。如果有多个包需要导入,当然可以分多次导包

2.只有page的import是可以导包的吧,好像。
<jsp:include page="WTF.jsp>用来在当前jsp导入另外一个
对应的另外一个是
<%@ include file=“WTF.jsp”%>
当然,也可以是html
区别在于<% include 这个东西只是将两个jsp糅合在一起,如果有同名变量那就GG了
而< jsp:include >会将两个jsp分别生成一个servlet,使用的时候动态调用
而且他有一个flush属性默认是fause
也就是不使用缓冲区,就是服务器端动态解释出来一点东西,就往客户端送过去。。。一般小页面无所谓了不用管

6.有意思啊。null直接可以转换成字符串输出了。一般还是用< c:out >输出吧,又安全又可以设置默认值。

第六章JSP内置对象

在这里插入图片描述
在这里插入图片描述

3.某个jsp需要跳转到一个错误界面的话,需要加上<%@ page errorPage=“error.jsp” >,你设定的错误界面也需要加上<%@ pageisErrorPage=“true” > 这样,错误界面的jsp才可以使用一个叫做exception的对象,用来捕获从初始界面得到的一个异常

4.jsp有两个关于page的对象,一个是page,另外一个是pageContext;需要知道的是,page是该jsp的实例化对象,而pageContext才是你想要的page作用域,例如:pageContext.setAttribute(“wanker”,“wanker”);而El表达式中的pageContext是储存该页的一些对象引用,比如可以得到${pageContext.request}

第七章JavaBean

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.A。格式:scope中的格式为page.session .request. application而不是pageContext.

3.属性不存在不相当于你没给属性初始化。因为属性即使没初始化,它也有默认值,因为javaBean是个java的实例化对象啊。不存在的话,直接报500了

4.想要引用一个javabean,也就是在一个jsp中可以访问到这个bean的属性。通过getProperty或者set等等其他方法也可以。useBean一般用来新建某一个bean。

第八章EL表达式

在这里插入图片描述
答案在上面。以下内容分析选项。

1.A。EL的内置对象和JSP的有挺大的区别的。对于JSP来说,一共有9个内置对象:request、response、session、application、out、pagecontext、config、page、exception;但是如果使用EL表达式的话,就没有request,response这些对象,想要获得request都需要写${pageContext.request}
D。javabean就是一个类的对象。他的私有方法当然不能访问。

2.在EL表达式中的‘+’只有数学运算的功能,没有连接符的功能,它会试着把运算符两边的操作数转换为数值类型,进而进行数学加法运算,最后把结果输出。若出现 $ {‘a’+‘b’ } 则会出现异常。当然,如果有${1+null}中的null是被当成0处理。而在逻辑表达式中,比如 null被当作false处理

4.javaBean的变量都是私有变量,如果通过java语句访问javaBean的变量,只能通过他的get/set函数访问了

5.D.EL表达式里的第一个东西要么是EL的对象,要么是JavaBean,要么是所有省略了域的一个attribute。这个选项,如果是第三种情况,是没问题的。不知道答案有没有问题。。。

7.在这里插入图片描述其中,eq(equal),ne(not equal),lt(less than);gt(greater than);le(less or equal);ge(greater or equal)

java

第一章java概述

在这里插入图片描述

参考答案:b.d.b.c.d

5.多行注释和文档注释的区别在于一个是 / * 另一个 / * *

6 . 程序的入口

7.首先,java编译器将java源程序编译成java字节码(对应的是javac命令)
其次,字节码在本地或通过网络传送给JVM
再次,JVM对字节码进行即时编译或解释执行后形成二进制的机器码(java命令)
最后,生成的机器码可以在硬件上直接运行

第二章java语言基础

题外话:对于强制类型转换来说,也就是(int)99.36;之类的;在基本类型变量之间的强制转换很容易理解;但对于某个类来说,强制类型的转换需要你保证它们之间有继承关系。例如:a是b的父类,则可以(a)b;
在这里插入图片描述
在这里插入图片描述

1.java中一个带小数点的数默认是double类型。在这里插入图片描述

3.switch与if_else if的很大区别就是switch有一个击穿。你如果没有及时在一个分支break的话;他会进行下一个语句的判断。

7.在这里插入图片描述
java多维数组的定义规范就是,如果某一维度你给他定义了大小,那么它的前几维就必须要定义。

第三章面向对象基础

在这里插入图片描述
在这里插入图片描述

2.在访问权限为缺省的情况下,这个变量或函数只可以在同一个包中被访问。而且,如果一个类为缺省状态的话,其他包是无法导入的。举两个例子:
第一个例子:
这是与MyClass1不在同一个包下的类中的一个方法:红色为报错
在这里插入图片描述
另一个例子
如果在某一个包中有
在这里插入图片描述
那么在另外一个包中,不可以在这里插入图片描述protected的限制相对松了一点。
如果在一个类中定义了一个protected函数或变量
只要某个类继承了这个类
不管这个类是不是在同一个包中
所有protected的东西是可以使用的
但是,
如果没有继承关系
那么只可以在同一个包中使用

5.重载和覆盖区分:从英语的角度来说,重载是overload,load理解为再装入一些东西,也就是与现有的东西是平行关系。覆盖是override,ride都骑上去了,可不是覆盖了。
A。可以在子类中重载。也可以在子类中覆盖。重载要求函数签名不一样,覆盖要求除了函数体,其他都一致。
C:重载与返回值没有必然联系。只要改了函数签名,那么返回值怎么着都没问题。

8.可变参数接受的是一个数组,但比正常数组形参多了一点方便之处:
如果sum2使用了可变参数
其函数为:
在这里插入图片描述
那么在调用的时候可以:
1,2,3会自动转换为一个数组
在这里插入图片描述
但可变参数有要求:可以同时有其他参数,但必须放在参数列表的最后面

第五章类之间的关系

在这里插入图片描述

5.子类中的构造函数要么在第一行包括this()要么是super();要么不加;this和super不可 同时存在,这保证了调用子类的构造函数的时候总会先调用父类的构造函数。

6.D.局部内部类是在函数中定义的类。既然是在函数中定义,本身已经限制了作用域,也就是说,局部内部类只能在函数中实例化,所以根本不需要private和public
C.内部类的逻辑就是只有在外部类存在的情况下,才有内部类存在的可能。比如:在这里插入图片描述发动机是可以独立存在的一个东西。
而对于内部类
成员内部类的地位和类中的其他变量和函数的地位是一样的。所以有各种访问权限修饰符给它们使用public protected 缺省 private。成员内部类不是静态的,那么就需要外部类实例化之后,再专门为它们实例化,否则没法使用。静态内部类是依赖于类的。举一个例子:
在这里插入图片描述观察main中的牛腿的构造方法:全部依赖于cow对象
总之,内部类比组合类的依赖关系更强。

第六章抽象类和接口

在这里插入图片描述
在这里插入图片描述

题外话:书中介绍了instanceof在这里插入图片描述instanceof首先会判断前后两者的编译类型是否存在继承关系,不存在则报错;如果存在的话,如果前者可以强制转换为后者的类型,那么返回true.

5.举个例子在这里插入图片描述接口中的变量默认会加上public static final
接口中的方法默认会加上public abstract
所以在接口中写方法,直接返回值函数名括号就完事了
如果你闲得慌加上个public 他会提示你多余了
如果想要在接口中实现具体方法,需要加上default
当然,也可以有实现了的静态方法

7.一个类实现一个接口的话(implements),就必须把接口中的所有抽象函数都写出来好吧。当然,如果接口继承一个接口(extends),可以对其进行扩充。如果一个类继承自一个抽象类而未全部实现其抽象函数,这个类还是一个抽象类。

第七章异常

在这里插入图片描述
在这里插入图片描述

3.举个例子在这里插入图片描述
①上面这个东西,如果throws后面单纯只有非检测型异常的话,这个函数在别的地方调用的时候是不需要try_catch语句的。
②如果自定义了一个异常,并且在这个函数后面加上throws AgeException后。在方法体中是可以选择不抛出这种异常。
③如果抛出异常但是又有一些后续的工作必须实现的话,需要加上try,finally语句。条件就是try_finally语句所在的方法需要定义抛出这个异常
④try_finally的另一种使用方法就是中间放着非检测型异常。

6.A。继承于exception需要try_Catch而继承于runtime不需要。这两个都是实现自定义异常的方法

前端

第四章CSS

在这里插入图片描述

在这里插入图片描述

2.注意外部样式有两种使用方法:
①链接
在这里插入图片描述②导入在这里插入图片描述
推荐使用第一种方法,因为在使用Document对象的时候,@import中引入的东西不受控制。

题外话
css的语法规则在这里插入图片描述

第六章javascript

在这里插入图片描述

在这里插入图片描述

5.命名规则
在这里插入图片描述

题外话:javascript自定义函数
①自动执行的函数
var kiss="bust my ass"; (function(ass){ alert(ass) })(kiss);
(function(ass){ alert(ass) })(kiss)这个函数会自动执行
其中kiss为从外面传入的参数,即实参
function后面的参数为形参
②匿名函数

 var fun=function(){
         console.log('做包子的机器');
         };
 fun();

这种方式比较常用

第七章Javascript对象

Array对象:
在这里插入图片描述
注意,传入一个数字的情况下使用的是第二种。

创建数组:
var temp=[1,2,3];
也可以var temp=[];直接返回一个空数组

创建自定义对象
①原始法:
在这里插入图片描述
②构造函数法:
在这里插入图片描述
在这里插入图片描述
③一和二的混合法
④JSON:在这里插入图片描述一种比较轻量的方法。JSON的格式就是一对花括号。
json的牛逼之处在于其本质是一堆字符串:
在这里插入图片描述在这里插入图片描述通过eval函数也就是(evaluate)将其中的字符串转换为一个对象赋给movie
注意:json是包含花括号的部分。再套上一个()表示这里的花括号不是普通的花括号,是可以转换成为json对象的。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值