JavaWeb面试题(三)

1、HTTP请求的GET与POST方式的区别

①HTTP 只有POST和GET 两种命令模式;
②POST 是被设计用来向服务器上传数据的,而GET是被设计用来从服务器取数据的。POST的信息作为HTTP 请求的内容,而GET是在HTTP 头部传输的;
③POST与GET在HTTP 中传送的方式不同,GET的参数是在HTTP 的头部传送的,而Post的数据则是在HTTP 请求的内容里传送;
④POST传输数据时,不需要在URL中显示出来,而GET方法要在URL中显示;
⑤GET方法由于受到URL长度的限制,只能传递大约1024字节;POST传输的数据量大,可以达到2M,而根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节;
⑥SOAP是依赖于HTTP POST模式实现的;

2、解释一下什么是servlet

servlet是Java编写的服务器端程序,其主要功能在与交互式的浏览和修改数据,生成动态Web内容。servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。
Servlet的生命周期:
①Servlet 通过调用 init () 方法进行初始化。
②Servlet 调用 service() 方法来处理客户端的请求。
③Servlet 通过调用 destroy() 方法终止(结束)。
④最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

3、MVC的各个部分都有哪些技术来实现?

MVC:Model-View-Controller
Model代表业务逻辑层(通过JavaBean实现),View代表的应用的表示层(由JSP产生),Controller是提供应用的处理过程控制(一般是个servlet),通过这种设计模式吧应用逻辑、处理过程和显示逻辑分成不同的组件来实现,组件之间可以进行交互和重用。

4、execute,executeQuery,executeUpdate的区别是什么?

①Statement的execute(String query)方法用来执行任意的SQL查询,如果查询的结果是一个ResultSet,这个方法就返回true。如果结果不是ResultSet,比如insert或者update查询,它就会返回false。我们可以通过它的getResultSet方法来获取ResultSet,或者通过getUpdateCount()方法来获取更新的记录条数。
②Statement的executeQuery(String query)接口用来执行select查询,并且返回ResultSet。即使查询不到记录返回的ResultSet也不会为null。我们通常使用executeQuery来执行查询语句,这样的话如果传进来的是insert或者update语句的话,它会抛出错误信息为 “executeQuery method can not be used for update”的java.util.SQLException。 ,
③Statement的executeUpdate(String query)方法用来执行insert或者update/delete(DML)语句,或者 什么也不返回,对于DDL语句,返回值是int类型,如果是DML语句的话,它就是更新的条数,如果是DDL的话,就返回0。
只有当你不确定是什么语句的时候才应该使用execute()方法,否则应该使用executeQuery或者executeUpdate方法。

5、JDBC的ResultSet是什么?

在查询数据库后会返回一个ResultSet,它就像是查询结果集的一张数据表。
ResultSet对象维护了一个游标,指向当前的数据行。开始的时候这个游标指向的是第一行。如果调用了ResultSet的next()方法游标会下移一行,如果没有更多的数据了,next()方法会返回false。可以在for循环中用它来遍历数据集。
默认的ResultSet是不能更新的,游标也只能往下移。也就是说你只能从第一行到最后一行遍历一遍。不过也可以创建可以回滚或者可更新的ResultSet。

当生成ResultSet的Statement对象要关闭或者重新执行或是获取下一个ResultSet的时候,ResultSet对象也会自动关闭。
可以通过ResultSet的getter方法,传入列名或者从1开始的序号来获取列数据。

6、B/S与C/S的联系与区别
①C/S是Client/Server的缩写,服务器通过高性能的PC,工作站,或小型机,并采用大型数据库喜用,如Oracle等,客户端需要安装专用的客户端软件。
②B/S是Brower/Server的缩写,客户端只需要安装一个浏览器,服务器安装Oracle,Sybase、SQL SERVER等数据库,用户就可以用web server与数据库进行数据交互。
两者的区别:
①硬件环境不同
C/S一般主要建立在小范围的网络环境中,B/S是建立子广域网智商,比C/S有更强的适应范围,一般只要有操作系统和浏览器就行
②对安全要求不同
C/S对面向固定的用户群,对信息安全的控制能力强,
B/S
对安全的控制能力相对弱
③对程序架构不用
C/S更加注重流程,可以对权限多层次校验,对系统的运行速度可以较少考虑。
B/S对安全及访问速度有多重的考虑,SUN和IBM推出的javabean构建技术等,使得B/S更加成熟。
④软件重用不同
C/S程序可以不可避免的整体性考虑,构建的重用性不如B/S要求下的重用性好
B/S要求构件相对独立的功能,能够相对较好的重用
⑤系统维护不同
C/S需要考虑整体性,系统维护困难
B/S可以实现单方面的维护,更好的实现升级
⑥用户接口不同
C/S多是建立在window平台上,表现方法有限
B/S建立在浏览器上,有更加丰富的变现方式与用户交互,降低开发成本
⑦处理问题不同
C/S处理用户界面固定,与操作系统相关
B/S建立在广域网上,面向不同的用户群,与操作系统平台关系小
⑧信息流不同
C/S的机械处理,使得交互性较低
B/S信息流变化多姿交互性强
JavaWeb面试题(一)
JavaWeb面试题(二)
JavaWeb面试题(三)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值