今天遇到的十道面试题:Java 与 Servlet 方面

By | 10月04日
Advertisement

1.get 和 post 的区别

Form 中的get 和post方法,在数据传输过程中分别对应了HTTP协议中的GET和Post方法。二者主要区别如下:

1.Get是用来从服务器上获得数据,而post是用来向服务器上传递数据;

2.Get将表单中的数据按照 variable=value( 发送的是变量名+变量值 ),添加到action所指的URL后面,并且两者用?号连结,而这两个变量之间使用&链接

Posts post是通过HTTP post机制将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

3.Get是不安全的,因为在传输过程中,数据值暴露在地址栏中,而post的所有操作对用户来说都是不可见的;

4. Get传输的数据量小,这主要是因为受URL长度限制,一般不大于2kb;而post可以传输打铃的数据,所以在上传文件只能用Post

5. Get限制 Form 表单的数据集必须为ASCII字符,而Post 支持整个ISO10646(全国统一编码)字符。
数据查询时建议使用 Get 而添加删除时适合用post。Get是from默认方法

2.什么情况下调用 doGet() 和 doPost() ?

看具体的from 提交方式 ,get就用 doGet(),Post就用 doPost()

3.如何从from表单中取得checkbox的值

给所有复选框定统一的 name 属性,并定义不同的value值然后通过getParameter接收,接收到的是数组类型,可以通过循环遍历输出。

4.页面中有一个命名为bank No的下拉列表,写脚本获取当前选项的索引值

java: request.getParmeter(“bank No”);

javaScript : var selectItems = document.getElementsByName(“bank No”);

selectItems[0].value

5. javascript 常用的方面

javascript是一种页面脚本语言,可以嵌套在网页中,可以做出很炫的页面效果,也经常用来判断输入值是不是为空

6. 常用的web容器和开发工具

一般本地开发的话建议使用tomcat。

linux系统建议使用jetty或apache hpptd

大型的项目就用JBOSS或webloigc

常用工具: eclipse、jbuilder (JBuilder 是Borland公司的集成开发环境.除JDK里面还有一些 Borland公司提供的自己集成的东西,需要安装,注册! 不是免费的!)

7. 画出Servlet 2.2以上 Web Application 的基本目录结构

webapps //用来放所有运行中的项目
application // 具体的每个项目
JSP 页面WEB-INF //
classes文件夹、lib文件夹(用于存放需要的jar包)和一个web.xml文件(用于配置,比如说用来配置过滤器等。)

8. JSP 和 Servlet 有哪些相同和不同点,他们之间的联系是什么?

jsp 是 Servlet 技术的扩展,本质上是 Servlet的简易方式,更强调应用的外表表达式。jsp编译后是“类 Servlet ”, Servlet的应用逻辑是在 Java 文件中,并且完全从表示层中的HTML里分离出来。而JSP的情况是 Java和HTML 可以组合成一个扩展名为 .jsp的文件。jsp
侧重于视图,Servlet 主要用于控制逻辑。
jsp到服务器端首先会被转成servlet程序然后就按照servlet的执行顺序执行了。
SERVLET是SUN早期推出的它输出HTML语句是一句一句输出编写和修改HTML非常不方便.
这也就产生了一个区别了,SERVLET是往JAVA代码中嵌HTML元素,JSP是往HTML里嵌JAVA代码
这样嵌套页面会很混乱不统一,所以使用jsp承担view这个角色,而servlet比较适合与承担Control这个角色
理论上讲用servlet来写的东西,都可以用jsp完成。虽然JSP基本上实现了Servlet的功能,但JSP在性能上是无法与Servlet相比的。

9. JSP 的四种范围

page 是代表与一个页面相关的对象和属性。一个页面由一个编译好的 jsva servlet类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括servlet又包括被编译成 servlet的JSP页面。

request 是代表与Web 客户机发出的一个请求相关的对象和属性。一个请求可以跨越多个页面,设计多个 Web 组件。

session 是代表用于某个 Web 客户机的一个永固体验相关的对象和属性。一个 web会话可以也经常会跨越多个客户机请求。

application 是代表与整个Web应用程序,包括多个页面请求和回话的一个全局作用域。

Request 对象的主要方法

setAttribute(String name,Object):设置名字为name的request的参数值

getAttribute(String name):返回由name指定的属性值

getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例

getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding():返回请求中的字符编码方式

getContentLength():返回请求的Body的长度

getHeader(String name):获得HTTP协议定义的文件头

getHeaders(String name) 返回指定名的 request Header的所有值(枚举)

getHeaderName() 返回所有request Header 的名字(枚举)

getInputStream():返回请求的输入流,用于获得请求中的数据

getMethod():获得客户端向服务器端传送数据的方法

getParameter(String name):获得客户端传送给服务器端的有name指定的参数值

getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例

getParameterValues(String name):获得有name指定的参数的所有值

getProtocol():获取客户端向服务器端传送数据所依据的协议名称

getQueryString():获得查询字符串

getRequestURI():获取发出请求字符串的客户端地址

getRemoteAddr():获取客户端的IP地址

getRemoteHost():获取客户端的名字

getSession([Boolean create]):返回和请求相关Session

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(String name):删除请求中的一个属性

Similar Posts:

  • 探讨Java中最常见的十道面试题(超经典)

    第一,谈谈final, finally, finalize的区别. final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 abstract的,又被声明为final的.将变量或方法声明为final,可以保证它们在使用中不被改变.被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改.被声明为final的方法也同样只能使用,不能重载 finally?再异常处理时提供 finally 块来执行任何

  • Andorid七十道面试题(附答案)

    本帖最后由 anzhuo 于 2012-1-11 11:21 编辑 打包下载: <ignore_js_op> Android面试题带答案.doc (108.5 KB, 下载次数: 1769) Android面试题1. 下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允许程序员直接释放内存 D. 内存回收程序可以在指定的时间释放内存对象 2. 下面异常是属于Runtime Exception 的是(

  • 每日十道面试题(一)

    1. 谈谈final,finally,finalize的区别 final(修饰词): 如果一个类被声明为final,那么这个类无法被继承,所以一个类无法同时既是abstract的,也是final的,如果使用final修饰方法或者变量,可以保证它们不会被修改,但是需要注意的是引用类型的变量final对其引用生效,比如数组int []a,对于数组a,a为对整个数组的引用,但是可以修改a[0]之类的值.被声明为final的方法不可以被重载. final Test test = new Test(3);

  • (转)十道海量数据处理面试题与十个方法大总结

    海量数据处理:十道面试题与十个海量数据处理方法总结 作者:July.youwang.yanxionglu. 时间:二零一一年三月二十六日 本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题.有任何问题,欢迎随时交流.指正. 出处:http://blog.csdn.net/v_JULY_v. ------------------------------------------ 第一部分.十道海量数据处理面试题 1.海量日志数据,提取出某日访问百度次数最多的那个IP. 首先是这一天,并且是访

  • 从头到尾彻底解析Hash表算法十道海量数据处理面试题与十个方法大总结

    作者:July.youwang.yanxionglu. 时间:二零一一年三月二十六日 说明:本文分为俩部分,第一部分为10道海量数据处理的面试题,第二部分为10个海量数据处理的方法总结.有任何问题,欢迎交流.指正. 出处:http://blog.csdn.net/v_JULY_v. ------------------------------------------ 第一部分.十道海量数据处理面试题 1.海量日志数据,提取出某日访问百度次数最多的那个IP. 首先是这一天,并且是访问百度的日志中的

  • [置顶] 【安卓面试】Android 70道面试题(2015.12)

    Android 70道面试题汇总不再愁面试 本文为开发者奉献了70道经典Android面试题加答案--重要知识点几乎都涉及到了.(网上涉猎资源,内部有一些错误,比如ContenValues应该是ContentValues,Broadcase应该是Broadcast,res aw应该是res/raw等等等..所以本文仅供读者参考.) 1. 下列哪些语句关于内存回收的说明是正确的? (b) A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允许程序员直接释

  • 十道大数据的题与十个海量数据处理的方法

    第一部分.十道海量数据处理面试题 1.海量日志数据,提取出某日访问百度次数最多的那个IP. 此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计. 再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中.注意到IP是32位的,最多有个2^32个IP.同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP

  • 谷歌八道面试题

    谷歌八道面试题 1. 正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,现给定a和b,需要计算出Q中的前几项,例如,当a=3,b=5,N=6时,序列为3,5,6,9,10,12 (1).设计一个函数void generate(int a,int b,int N ,int * Q)计算Q的前几项 (2).设计测试数据来验证函数程序在各种输入下的正确性. 解: void generate(int a, int b, int N, int * Q) { int num = 0; //计数 i

  • 有助于理解数的二进制表示的两道笔试题

    两道笔试题,大家帮忙看一下... http://topic.csdn.net/u/20081029/10/ee84a378-bdd0-41ec-a4af-916ba59baaba.html 1.已知x,不用+,-,*,/符号,计算出x+1的值: 2.检验一个整数是否为2的n次方数,要求用一行代码,而且不能使用循环语句. 如果对数值的二进制表示相当熟悉,而且聪明的话,应该不是问题. 第1题的解法: intadd1(intx) { inti=1; while(x&i) { x&=(~i); i

  • 男性补肾理疗杯壮阳的十道菜

    第四道:鹿肉50克,加枸杞子,何首黑适量共炖,弃药渣,食肉饮汤. 第八道:麻雀2只,去毛及骨脏,加菟丝子,枸杞子各25克,共煮熟,弃药渣,食肉饮汤. 第二道:羊肉150克,淮山药120克,肉苁蓉100克,菟丝子150克,核桃仁150克,葱白10根,粳米适量做汤食. 第三道:羊肾1对,肉苁蓉12克,枸杞10克,巴戟8克,熟地10克,同炖熟,弃药渣,食肉饮汤,每日1主. 在日常饮食中有很多食品都有补肾壮阳的作用,希望自己充满活力的男性不妨一试. 第十道:猪肾1个,淮山药,枸杞子各15克,山萸肉12克

Tags: