JAVAWEB 面试题
1. css和div 开发的优势?
显示和内容实现分离 有利于搜索引擎搜索 有利于维护和程序的扩展
2. 谈谈页面间的参数传递有哪些方式 ?
通过作用域对象session、request 的setAttribute()和getAttribute()方法进行参数传递。
<jsp:forward> <jsp:param name= value=></jsp:forward>
request.gerRequestDispatcher(“1.jsp?name=XX”).forward(request,response);
<jsp:useBean id= class= scope=request/session>
3. hidden表单域有什么作用?
4. jsp有哪些内置对象?
pageContex,request,session,application,out,exception,config,page,
5. request的作用有哪些?
获取客户端传递的参数值 获取客户端请求头信息 获取会话 获取转发对象 可作为容器使用, 利用setAttribute()和getAttribute()方法进行参数传递
6. session有什么作用。
7. application有什么作用。
8. 在jsp中怎样操作page作用域
9. jsp有哪些动作?作用分别是什么?
<jsp:include/> <jsp:forward/><jsp:usebean/> <jsp:setProperty/><jsp:getProper>
request.getRequestDispatcher(“1.jsp?name=XX”).forward(request,response);
10. java servlet api中forward() 与redirect()的区别?
11. class.forname的作用?为什么要用?
加载类;一般使用这个方法是反射方式创建对象;从而可以将一些类信息写在文件中,避免硬编码,增加灵活性。
12. 分页是怎么实现的?
13. cookie被禁止后怎样使用session?
14. 项目开发经历了哪几个阶段?
15. 谈谈项目的体系统架构:(客户层,表示层)web层,业务层,数据层?
16. J2EE规范中的组件技术在项目中用到了哪些?
JDBC,jsp,servlet,javabean,xml,JNDI
17. TCP/IP通讯和UDP通迅的区别?
18. 浏览器和WEB服务器是用什么协议通迅的?
应用层使用的是 HTTP协议,传输和路由使用的是TCP/IP
19. 网络通讯中,端口有什么含义。端口的取值范围?
端口用于区分基于TCP/IP通讯的不同应用程序, 每个基于TCP/IP应用程序都会向操作系统申请注册一个服务,这个服务用端口表示。本质上说,端口就是一段内存中的缓冲区。可以认为是计算机与外界交流的出口。
建议用户使用的端口号 1024-----65535系统使用的端口范围0 --- 1024
20. 说出3个常见协议的默认端口。
Web服务器80,ftp 21,telenet 23,smtp 25
21. socket是什么,它有什么作用?
Socket是通讯的端点,是客户端和服务器进行通讯的端点
22. TCP/IP通讯的基本步骤是什么?
23. UDP通讯的基本步骤是什么?
24. JDBC访问数据库的基本步骤是什么?
25. 说说preparedStatement和Statement的区别
26. 说说事务的概念,在JDBC编程中处理事务的步骤。
1) 事务是作为单个逻辑工作单元执行的一系列操作。
2) 一个逻辑工作单元必须有四个属性,称为原子性、一致性、隔离性和持久性 (ACID) 属性,只有这样才能成为一个事务
事务处理步骤:
3) conn.setAutoComit(false);设置提交方式为手工提交
4) conn.commit()提交事务
5) 出现异常,回滚 conn.rollback();
27. 数据库连接池的原理。为什么要使用连接池。
1) 数据库连接是一件费时的操作,连接池可以使多个操作共享一个连接。
2) 数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量?使用情况,为系统开发?测试及性能调整提供依据。
3) 使用连接池是为了提高对数据库连接资源的管理
28. 谈谈DAO模式的原理的作用。
DAO是一种设计模式
包括三个部分1)DAO接口
2)DAO接口实现类,
3)PO持久化对象,它和数据库相对应
29. servlet和jsp有什么关系?
Servlet和JSP都是服务器的组件。
JSP重在表示,解决了servlet页面输出困难的问题。而servlet重在业务处理,避免在页面出现过多的业务处理带来的阅读性和维护性的困难。它们可以很好的结合。
Servlet编写后需要在WEB应用的web.xml进行注册,从而能让WEB容器识别用户编码的Servlet。但JSP由容器来管理,所以无需注册。
30. jsp是如何被容器调用和执行的?
31. 编写一个servlet的步骤。
32. doGet和doPost方法各有什么作用?
33. 为什么要为servlet配置URL映射?
34. servlet的类架构是什么样的。
35. 谈谈servlet的生命周期?
36. servlet是线程安全的吗?为什么?
不安全。因为Servlet对象在整个过程中,至始至终只有一个对象。以节约服务器资源的消耗,这就意味着很多个线程会同时访问一个Servlet对象。所以线程不安全。
解决Servlet线程安全问题方法有三种
1)编写Servlet类的时候,实现SingleThreadModel接口,将Servlet变成单线程机制。
2)涉及对共享资源访问的时候,使用synchronized同步加锁,实现共享资源的保护。
3)尽量不在Servlet中定义成员变量,使用局部变量。
在三种方法中,最好使用第三种,这样线程安全,并且性能最高。
38. 如何得到客户端的请求参数?
request.getParameter()单个数据
request.getParameterValues()一组数据
request.getParameterMap()返回所有的键值对
39. request.getParameter和request.getParameterValues的区别,它们的返回值是什么类型?
40. response对象的作用?
41. request对象的作用范围是什么?
42. session对象的作用范围是什么
43. application对象的作用范围是什么。
44. session对象是什么时候产生的,什么时候销毁的?
45. 项目中用到了session对象吗,在哪里用到的?
46. session和cookie有什么区别。
47. .Http协议是无状态的,服务器是用什么方式为一个客户端保存状态的?
48. servlet或jsp能同时响应多个客户端的请求吗?是通过什么方式做到的?
49. 请简述servlet多线程的实现方式?
50. 在servlet中定义成员变量(全局变量),有线程安全问题吗?如何处理?
51. 请求转发和重定向的区别。
52. JSP中动态包含和静态包含的区别。
1) 静态包含在转换成为java文件的时候将要包含的文件包含进来,作为一个整体编译。动态包含是各个包含文件分别转换,分别编译。
2) 静态包含在两个文件中不能有相同的变量,动态包含允许
3) 静态包含只能包含文件,动态包含还可以包含servlet输出的结果
4) 静态包含不能使用变量作为文件名,动态包含可以使用变量作为文件名
5) 动态包含文件发生变化,包含文件会感知变化。
53. 谈谈MVC设计模式的概念,使用MVC的好处。
54. 模式1和模式2和区别。
模式1:jsp+javabean
模式2:jsp+servlet+javabean
55. 你的项目中建有多少张表,字段最多的表是哪一张?每张表里都有些什么字段?
56. 说说你项目开发的流程?
57. 说说你所开发模块的业务流程,业务是什么?
58. 谈谈监听器的原理、配置及使用。你在项目中是怎么用的?
59. 谈谈过滤器的原理,配置及使用。有多个过滤器如何进行配置?
60. 你在项目中的角色是什么,你是如何进行工作的?
61. 你所做的工作,如何和小组其它人员所做的工作进行协调(数据库设计、程序模块编写等两个方面来说);
62. 一个页面中有两个form,如何处理提交?
可以使用提交按钮的名称来判断,也可以使用hidden隐藏表单进行值的区分。
63. web项目与java项目有什么区别?
64. 不用eclipse,如何手工发布tomcat项目?
65. MVC模式在项目中,都是怎么用的?
66. 请谈谈请求转发的原理?
67. 请说明重定向的原理?
68. 你是否从其它人的表中调用数据,如何进行协调?
69. 在家开发的模块,如何拿到公司与小组成员的进行合并?
70. 你在项目中是如何处理乱码的?
71. 谈谈项目中分页的实现?
72. CSS有哪几中选择器?有什么区别?
73. 你在web项目中,数据共享有哪些方式 ?如果实现的?
74. 项目各个阶段会产生什么样的文档?都有什么作用?
75. 项目结构是如何划分的?应该注意些什么?
76. servlet中,如何取得HTTP头信息?
77. servlet程序中,可以获得客户机的IP地址吗?如何得到?
78. URL与URI的区别?
79. servlet中的service方法在什么时候调用?
80. 文件上传的原理是什么 multipart/form-data”什么意思?
81. 文件上传的form编写中,应该注意些什么?
82. 在项目中,文件上传到服务器上后,你是怎么处理的?
83. 如何打包一个web项目?
Jar –cf xx.war WEB-INF *.html *.jsp *.jpg
84. MIME的作用是什么?
告诉客户端浏览器你返回的内容是哪一种类型的,让浏览器采取相应的策略来显示处理你返回的文档或者文件。
85. tomcat容器是如何创建servlet类实例?用到了什么原理?
<load-on-startup>1</load-on-startup>如果为正数,则在一开始就实例化,如果不写或为负数,则第一次请求实例化。
86. servlet构造函数中可以执行初始化代码,为什么还要init方法呢?
87. HttpServletRequest和HttpServletResponse是在哪里创建的?
88. ServletRequest与HttpServletRequest有什么区别与联系?
ServletRequest是HttpServletRequest的父接口
90. servlet中如何到得项目的绝对路径?
Request.getContextPath();
91. jsp中taglib指令的作用是什么?
这个指令是标签库指令。指示标签库的逻辑路径,以及标签库的使用前缀。
使用taglib指令<%@taglib uri=”” prefix=”” %>
92. 文件下载如何实现?如何保证授权用户的下载?
1) 设置setContextType(),MIME类型。
2) 打开文件,按照二进制流的方式将字节数发往客户端。
93. 在servlet中,如何得到web.xml中配置的初始化参数?
ServletConfig.getInitParameter()
95. 如何进行URL重写?要用到什么方法?
Response.encodeURL();
96. session如何过期?项目中该怎么应用?
97. tomcat容器的作用是什么?
98. 在servlet中,怎么直接往客户端输出信息?
100. jsp中的import指令有什么作用?
101. 如何在jsp中使用bean?
103. 发布项目时,把一jsp文件放到webroot下,与放在web-inf下,有什么区别?
104. web.xml中welcome-file配置项的作用是什么?
105. servlet中的response.sendError的作用是什么?
106. 如何用过滤器实现用户登录认证?
114. jstl是什么?
115. 对客户输入的数据,可以在哪些方面对数据格式的合法性进行验证?
118. ajax的基本原理是什么。
119. 119、jsp和javascript的区别?