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的过程

<servlet>
   <servlet-name>test</servelt-name>
   <servlet-class>TestServlet</servlet-class>
</servlet>

 <servlet-mapping>
      <servlet-name>test</servlet-name>
      <url-pattern>/TestServlet</url-pattern>
 </servlet-mapping>

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表单: <FORM action=”" name=”buyForm” method=”post”>,

多选框: <INPUT name=”isBuy” type=”checkbox” id=”isBuy” value=”paozhu”>

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

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

//拿到form表单

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

Var cb = f.isBuy;

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

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

}

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

Form表单:<form
name=”userfrm” method=”post” action=”register_success.htm” >

登录名:<input
name=”username” type=”text”>

密码:<input
name=”pass” type=”password”>

重复密码:<input
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;
Return false;

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元素基于奇数偶数的颜色换行

<script src=”jquery.js” type=”text/javascript”></script>
<style type=”text/css”>
.odd {

}
.even {
background-color:red;
}
</style>

<ul>
<li>jquery 学习1</li>
<li>jquery 学习2</li>
<li>jquery 学习3</li>
<li>jquery 学习4</li>
<li>jquery 学习5</li>
<li>jquery 学习6</li>
</ul>
<script language=”javascript”>
$(document).ready(function() {
$(‘li:even’).addClass(‘even’);
$(‘li:odd’).addClass(‘odd’);
});
</script> 

10.SESSION的工作原理

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

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

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

【Javaweb】笔面试题 ---(1)的更多相关文章

  1. 你要的fpga&数字前端笔面试题都在这儿了

    转自http://ninghechuan.com 你要的FPGA&数字前端笔面试题来了 FPGA&ASIC基本开发流程 题目:简述ASIC设计流程,并列举出各部分用到的工具. 勘误:C ...

  2. javaweb经典面试题

    1.hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得java程序员可以随心所欲的使用对象编程思维来操纵数据库. 工作原理: 1.读取并解析配置文件2. ...

  3. javaWeb常用面试题

    JDBC JDBC访问数据库的基本步骤是什么? 加载驱动 通过DriverManager对象获取连接对象Connection 通过连接对象获取会话,有2种方式Statement.PreparedSta ...

  4. 嵌入式开发—C语言面试题

    嵌入式开发—C语言面试题 源地址:http://blog.csdn.net/xdx2ct1314/article/details/7358929   1. 用预处理指令#define 声明一个常数,用 ...

  5. Java - 收藏集 -

    Java - 收藏集 -   Java 基础思维导图,让 Java 不再难懂 - 工具资源 - 掘金思维导图的好处 最近看了一些文章的思维导图,发现思维导图真是个强大的工具.了解了思维导图的作用之后, ...

  6. Java位操作全面总结

    转载: Java位操作全面总结 在计算机中所有数据都是以二进制的形式储存的.位运算其实就是直接对在内存中的二进制数据进行操作,因此处理数据的速度非常快.在实际编程中,如果能巧妙运用位操作,完全可以达到 ...

  7. Struts系列笔记(6)---action接收请求参数

    action接收请求参数 在web开发中,去接收请求参数来获得表单信息非常的常见,自己也总结整理了有关Struts2通过action接收请求参数的几种方法. Struts2 提供三种数据封装的方式: ...

  8. C++:位操作基础篇之位操作全面总结

    位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大家梳理知识.提高篇则针对各大IT公司如微软.腾讯.百度.360等公司的笔试面试题作详细的解答,使大家能熟练应对在笔试面试中位操作题目 ...

  9. Struts框架(6)---action接收请求参数

    action接收请求参数 在web开发中,去接收请求参数来获得表单信息非常的常见,自己也总结整理了有关Struts2通过action接收请求参数的几种方法. Struts2 提供三种数据封装的方式: ...

随机推荐

  1. 10.8.5如何升级(app store 出错 请稍后重试 100)

    出现问题:苹果以前的老版本,OS X 10.8或是10.8.5在当年提示你升级,你又任性没升级的时候,拖过那阵,你再想升级,就是各种报复.进app store下载或是更新东西都是弹出app stpre ...

  2. 关于css中的border

    我一直以为css中的border是正方形的 像这样 因为我平时用的时候都是 border:1px solid #000,都是同一个颜色所以看不出来 当我给每一个边分别设置颜色的时候才发现 他们是以梯形 ...

  3. Android与JNI(三) ---- c++调用java(转载)

    源码下载:JniDemo JNI就是Java Native Interface, 即可以实现Java调用本地库, 也可以实现C/C++调用Java代码, 从而实现了两种语言的互通, 可以让我们更加灵活 ...

  4. Scott用户的四张表:

    Scott用户的四张表: 转载:http://www.cnblogs.com/mchina/archive/2012/09/06/2649951.html 在Oracle的学习之中,重点使用的是SQL ...

  5. MVC笔记2:mvc+jquery.validate.js 进行前端验证

    1.引用如下js和css 代码 <link href="@Url.Content("~/Content/Site.css")" rel="sty ...

  6. 思迅/泰格/科脉/收银软件/商超软件数据库修复解决断电造成损坏的mdb\dat文件SQL数据库 置疑 修复 恢复

    拥有专业管理软件数据库修复技术工程师,专业提供管家婆.美萍.思迅.科脉等管理软件技术服务,电脑维修\重装系统技 术服务.无法登陆打不开等出错问题处理(连接失败,请输入正确的服务器名,SQL Serve ...

  7. IM 融云 之 开发基础概念

    基础概念 - 开发篇 App Key / Secret App Key / Secret 相当于您的 App 在融云的账号和密码.是融云 SDK 连接服务器所必须的标识,每一个 App 对应一套 Ap ...

  8. Java经典案例之“水仙花数”

    /** * 描述:打印出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数,其各位数字立方和等于该数本身.例如: * 153=1^3+5^3+3^3等... * 分析:利用for循环控制100-99 ...

  9. 在发板实现24位jpg和bmp图片用手划动显示上一张与下一张图片

    arm-linux-gcc test.c -ljpeg -I /usr/local/libjpeg-8a/include/ -L /usr/local/libjpeg-8a/lib/ 这样编译 代码 ...

  10. Intent的属性及Intent-filter配置——实例Action、Data属性启动系统Activity

    一旦为Intent同时指定了Action.Data属性,那么Android将可根据指定的数据类型来启动特定的应用程序,并对指定数据类型执行相应的操作. 下面是几个Action属性.Data属性的组合. ...