Javaweb

面试题;理解才是最重要的,而不是原封不动的背下来

一.请简述doget和dopost它们的区别

1) get是从服务器上获取数据,post是向服务器传送数据。

2) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。

3) 对于get方式,服务器端用request.getQueryString()可以获取GET请求参数的变量值,

对于post方式,服务器端用request.getParameter获取提交的数据。

4) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

5) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。 所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;

如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。

2、简述servlet的生命周期?

参考答案:

所谓生命周期,指的是servlet容器如何创建servlet实例、分配其资源、调用其方法、并销毁其实例的整个过程。

阶段一: 实例化(就是创建servlet对象,调用构造器)

在如下两种情况下会进行对象实例化。

第一种情况:

当请求到达容器时,容器查找该servlet对象是否存在,如果不存在,才会创建实例。

第二种情况:

容器在启动时,或者新部署了某个应用时,会检查web.xml当中,

servlet是否有 load-on-starup配置。如果有,则会创建该servlet实例。

load-on-starup参数值越小,优先级越高(最小值为0,优先级最高)。

阶段二: 初始化

为servlet分配资源,调用init(ServletConfig config);方法

config对象可以用来访问servlet的初始化参数。

初始化参数是使用init-param配置的参数。

init可以override。

阶段三: 就绪/调用

有请求到达容器,容器调用servlet对象的service()方法。

HttpServlet的service()方法,会依据请求方式来调用doGet()或者doPost()方法。但是,这两个do方法默认情况下,会抛出异常,需要子类去override。

阶段四: 销毁

容器依据自身的算法,将不再需要的servlet对象删除掉。

在删除之前,会调用servlet对象的destroy()方法。

destroy()方法用于释放资源。

在servlet的整个生命周期当中,init,destroy只会执行一次,而service方法会执行多次。

3.请简述一下部署Serlvet的过程

test

TestServlet

test

/TestServlet

4. 有一个用户名 test, 密码 12345, 请编写一段创建COOKIE的JSP代码, 然后再编写一段读取COOKIE的JSP代码, 在页面上将COOKIE的信息显示出来。

String str = “username= test&password=12345”;

Cookie cookie=new Cookie(“mycookie”, str);

response.addCookie(cookie);

Cookie cookies[]=request.getCookies();

For(int i=0;i< cookies.length;i++){

Out.print(cookies.getName+”=”+ cookies.getValue());

5. 请简述Cookie, Session 和Application它们的区别。

1) Cookie会在客户端硬盘上创建Cookie文件

2) Session大部分情况下会在服务器端硬盘上写入Cookie文件

3) Cookie安全性最低

4) Application 表示Servlet上下文环境,在整个WEB应用中只有一个Application对象,用于存储些全局性的数据

6.有如下所示的页面:

页面里有一个form表单:

多选框:

请编写JavaScript代码,实现该表单多选框的 “全选”“全不选” 功能。

——————————全选——————————–

//拿到form表单

Var f = document.getElementByName(“buyForm”);

Var cb = f.isBuy;

For(i=0;i

If(cb[i]. checked ==false) cb[i]. checked = true;

}

7. 有这样一个form表单,如下图:

Form表单:

name=”userfrm” method=”post” action=”register_success.htm” >

登录名:

name=”username” type=”text”>

密码:

name=”pass” type=”password”>

重复密码:

name=”rpass” type=”password”>

请编写javascript程序实现该表单的客户端验证。

要求

1) 密码不能为空并且最少为6位,还要求两次输入的密码要一致

2) 登录名不能为空,且只能包括字母、数字和下划线字符

Var f =document.getElementsByName(“userfrm”);

Var isValiUserName= false, isValiPassword = false;

If(f. username!=”” && f. username!=”undefined”){//正则表达式验证只能包括字母、数字和下划线字符

var re = new RegExp(“[a-zA-Z0-9]{5,20}”,”ig”);var str =“f.username.value”;

isValiUserName= re.test(str); //得到用户名true/false的校验结果

}//校验密码

If(f. password!=”” && f.password.length>=6 && f.password==f.rpassword){

isValiPassword= true;

}

If(isValiUserName==true && isValiPassword==true) return true;

Returnfalse;

8. 请简述一下ajax的原理及实现步骤。

原理: HTTP协议的异步通信

get 请求

1) 创建一个XMLHttpRequest对象

2) 调用该对象的open方法

3) 如果是get请求,设置回调函数onreadystatechange = callback

4) Send

如果是post 请求

5) 创建一个XMLHttpRequest对象

6) 调用该对象的open方法

7) 调用setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded”);

8) 设置回调函数onreadystatechange = callback

9) Send

9. 有如下一段HTML代码:请使用jquery实现页面的li元素基于奇数偶数的颜色换行

.odd{

}.even{background-color:red;

}

jquery 学习1jquery 学习2jquery 学习3jquery 学习4jquery 学习5jquery 学习6

$(document).ready(function() {

$(‘li:even’).addClass(‘even’);

$(‘li:odd’).addClass(‘odd’);

});

10.SESSION的工作原理

session启动的时候被分配到一个专有的session id .服务器为其分配一块内存 .浏览器将其写入Cookie.

服务器中的一进程会监视该session id,当它超时或者关闭时候释放内存.当浏览器连入服务器时,

会在Cookie中寻找该session id.并判断该id是否有效.有效就去读取其中的值.无效重新建立一个session id

java实现登陆面试题_【Javaweb】笔面试题 ---(1)(示例代码)相关推荐

  1. Java EasyExcel在Web网站中读写Excel的方法及示例代码

    使用EasyExcel可以更容易简单在Web网站中读写Excel,本文主要介绍在Java Web网站中读写Excel方法及示例代码. 原文地址:Java EasyExcel在Web网站中读写Excel ...

  2. 大学mysql期末试题_四川大学数据库系统期末试题2014-2015.doc

    四川大学数据库系统期末试题2014-2015.doc 课程名称:数据库系统 任课教师 张天庆.龚勋.李川.屈立笳 学号: 姓名: 本题 NUMPAGES 3页,本页为第 PAGE 2页 教务处试题编号 ...

  3. java雪崩_【并发编程】java 如何解决redis缓存穿透、缓存雪崩(高性能示例代码)...

    [并发编程]java 如何解决redis缓存穿透.缓存雪崩(高性能示例代码) 发布时间:2018-11-22 16:48, 浏览次数:872 , 标签: java redis <>缓存穿透 ...

  4. python约瑟夫环问题给十个学生编号报到3者出列_趣味算法--约瑟夫环问题(示例代码)...

    问题描述 已知n个人(以编号1,2,3,...,n分别表示)围坐在一张圆桌上.指定编号为k的人开始从1报数,数到m的那个人出列:出列那个人的下一位又从1开始报数,数到m的那个人出列:以此规则重复下去, ...

  5. java实时汇率的接口_eoLinker-API_Shop_汇率查询_API接口_Java调用示例代码

    eoLinker-API Shop 汇率查询 Java调用示例代码 汇率查询 提供汇率转换.单个货币对应的热门货币汇率行情,包括人民币.美元.欧元.英镑等100多种货币的实时汇率查询. 该产品拥有以下 ...

  6. java 添加一个线程、创建响应的用户界面 。 演示示例代码

    javajava 添加一个线程.创建响应的用户界面 . 演示示例代码 来自thinking in java 4 21章  部分的代码  夹21.2.11 thinking in java 4免费下载: ...

  7. java 如何导出json文件_java导出json格式文件的示例代码

    本文介绍了java导出json格式文件的示例代码,分享给大家,具体如下: import java.io.File; import java.io.FileWriter; import java.io. ...

  8. 动态照片墙 python 实现_利用python生成照片墙的示例代码

    这篇文章主要介绍了利用python生成照片墙的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 PIL(Python Im ...

  9. python制作图片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  10. JAVA锁之可重入锁和递归锁及示例代码

    概念:可重入锁 指的是同一线程外层函数获得锁之后,内层递归函数仍然能获取该锁的代码在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁也即是说,线程可以进入任何一个它已经拥有的锁所同步着的代 ...

最新文章

  1. jQuery.fly插件实现添加购物车抛物线效果
  2. php多个域名301重定向到主域名代码,Nginx 301和apache重定向域名规则方法(多个域名,单个域名)...
  3. 统计学权威盘点过去50年最重要的统计学思想,因果推理、bootstrap等上榜,Judea Pearl点赞...
  4. 基于OpenCV给图片添加边框
  5. Android 4.0 Notification
  6. a, b = b, a+b
  7. 远程监督关系抽取漫谈:结合知识图谱和图神经网络
  8. 乙肝的传播途径是否只有四种?
  9. MySQL 创建用户
  10. 可变序列和不可变序列——python小练
  11. Hadoop原理——HDFS原理
  12. hp 计算机如何显示在桌面上,HPDL1414 精致桌面小伴侣 显示时间日历和电脑状态(CPU温度负载...
  13. 链家网租房信息数据分析——从爬虫到房租预测
  14. 银河麒麟高级服务器操作系统V10——安装Tuxedo12
  15. 凯撒密码加解密及破解实现原理
  16. Linux下python环境搭建
  17. 阿里和唯品会java开发手册通读链接
  18. 餐饮企业转型为大数据公司
  19. C#-调用OCR组件识别图片文字
  20. python在线编译器简单实现

热门文章

  1. 数据结构--图(Graph)详解(四)
  2. TCP协议通讯流程(三次握手及四次挥手)
  3. 进程间程序替换和minishell
  4. Facebook 最新可佩戴 AR 设备、AR 设备未来五年市场扩张、语音社交新创Swell等|Decode the Week...
  5. Game as a Service —— 开源云游戏搭载WebRTC
  6. 零拷贝(Zero Copy)
  7. 腾讯发现Google Home首个无接触攻破漏洞
  8. idea git里的用户怎么修改
  9. shell脚本获取系统的前一天日期,格式为yyyymmdd
  10. SQL 中 left join、right join、inner join 的区别