Java web部分基础面试题

1. 什么是B/S和C/S?

B/S是Brower/Server(浏览器/服务器模式)的缩写,客户机上只要安装一个浏览器,实现与服务器交互;
C/S是Client/Server(客户端/服务器模式)的缩写,客户机需安装专用客户端,实现与服务器交互,如数据库产品;
B/S代表,淘宝网、京东网站。
C/S代表,腾讯QQ.
主要区别如下:
1、 B/S使用浏览器访问,安装维护的成本代价很小。
2、 C/S需要安装客户端软件,安装维护成本较大。

2. 如何设置servlet初始化参数?如何获取servlet初始化的参数?

1、在web.xml里为每一个Servlet配置初始化参数;
2、通过ServletConfig对象实现对Servlet初始化对象的获取;

3. Ajax是什么?

1、Ajax是采用了异步请求的方式,解决了页面无刷新式提交的问题,改善了页面的用户体验效果;常用自动完成提示,注册时用户名重复性校验。
2、常用的Ajax框架: Jquery中的ajax

4. HTTP请求的GET与POST方式的区别?

Get和Post都是提交表单的方式之一;
1、[安全性]get方式提交后,数据会在地址栏中显示出来,而post方式不会,所以post更安全;
2、[数据长度]get方式在提交数据的时候,数据长度是有限制的;而post方式在理论上对提交数据的大小是无限制的;
3、[效率]get方式效率更高

5. 说一说Servlet的生命周期? Servlet里常用的方法有哪些?

1、Servlet生命周期包括加载和实例化、初始化、处理请求以及销毁。
2、Servlet被服务器调用构造方法实例化,第一次访问Servlet时,容器运行其init方法进行初始化,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

6. Servlet API中forward() 与redirect()的区别?

1、forward是请求转发,而redirect是重定向;
2、请求转发是服务器将客户端的请求转发到另一个地址去处理,然后将响应返回给客户端;实际上是1次请求,1次响应,对客户端而言是透明的;而重定向是服务器根据客户端发来的请求,返回给客户端一个新的地址,客户端根据这个返回的地址再发送请求,得到响应;实际上是2次请求,2次响应,而且客户端的地址是第二次访问的地址;
3、转发只能转发到服务器自己的资源,重定向无限制。
4、转发的效率高于重定向
5、转发地址栏不会改变,重定向地址栏会变成第二次访问的地址。
转发核心代码:request.getRequestDispatcher(“资源地址”).forward(request,response);
重定向核心代码:response.sendRedirect(“资源地址”);

7. 什么是JSP

JSP是Java Server Page的简称,是由Sun公司倡导简历的一种动态网页技术标准,用于开发动态网页。JSP页面由HTML代码和嵌入其中的Java代码组成,服务器在页面被客户端请求后执行Java代码,将生成的HTML页面返回给客户端。

8. Jsp优缺点。

1、JSP技术的优点
(1)一次编写,到处运行。
(2)跨平台。
(3)强大的可伸缩性。
2、JSP技术的弱势
(1)正是由于为了跨平台的功能,所以极大的增加了产品的复杂性。
(2)占用内存较大。
(3)代码调试不便。

9. jsp有哪些内置对象?

JSP共有以下9个内置的对象:
 page、config、application、request、response、session、out、exception、pageContext
 request:封装客户端的请求,其中包含来自GET或POST请求的参数;
 response:封装服务器对客户端的响应;
 session:封装用户会话的对象;
 application:封装服务器运行环境的对象;
 page:JSP页面本身(相当于Java程序中的this);
 pageContext:通过该对象可以获取其他对象;
 out:输出服务器响应的输出流对象;
 config:Web应用的配置对象;
 exception:封装页面抛出异常的对象。

10. 讲解JSP中的四种作用域。

JSP的四大作用域:page、request、session、application
page:变量只能在当前页面上生效
request:变量能在一次请求中生效,一次请求可能包含一个页面,也可能包含多个页面,比如页面A请求转发到页面B
session:代表变量能在一次会话中生效,基本上就是能在web项目下都有效。一般来说,只要浏览器不关闭,session的使用就不会受到影响。
application:代表整个应用程序范围。
存入数据:作用域对象.setAttribute(“名字”,数据);
取出数据:作用域对象.getAttribute(“名字”);

11. Session和Cookie的区别?

1、Session和Cookie都是会话跟踪技术;
2、Session是保存在服务器端的技术(保持用户登录状态的检查常用Session),而Cookie是保存在客户端的技术; 
3、Cookie只能存字符串,Session可以存对象;

12. 常用的Web服务器有哪些

1.Tomcat
目前非常流行的Tomcat服务器是Apache-Jarkarta开源项目中的一个子项目,是一个小型、轻量级的支持JSP和Servlet 技术的Web服务器,也是初学者学习开发JSP应用的首选。
2.JBoss
JBoss是一个种遵从JavaEE规范的、开放源代码的、纯Java的EJB服务器,对于J2EE有很好的支持。JBoss采用JML API实现软件模块的集成与管理,其核心服务又是提供EJB服务器,不包含Servlet和JSP的Web容器,不过它可以和Tomcat完美结合
3.WebLogic
WebLogic 是BEA公司的产品(现在已经被Oracle收购)。WebLogic 支持企业级的、多层次的和完全分布式的Web应用,并且服务器的配置简单、界面友好。 

13. 什么是Servlet。

在Java Web程序中,Servlet主要负责接收用户请求 HttpServletRequest,在doGet(),doPost()中做相应的处理,并将回应HttpServletResponse反馈给用户。Servlet 可以设置初始化参数,供Servlet内部使用。一个Servlet类只会有一个实例,在它初始化时调用init()方法,销毁时调用destroy()方法。Servlet需要在web.xml中配置,一个Servlet可以设置多个URL访问。

14. JSP和Servlet是什么区别和联系。

1.jsp经编译后就变成了Servlet.
(JSP的本质就是Servlet,Web容器将JSP的代码编译成java类)
2.jsp更擅长表现于页面显示,Servlet更擅长于逻辑控制.
3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到。

15. web.xml文件中可以配置哪些内容。

web.xml文件是用来配置:欢迎页、servlet、filter、listener、初始化信息、错误页面等的。当你的web工程没用到这些时,你可以不用web.xml文件来配置你的web工程。

16. 说一下表达式语言(EL)的隐式对象及其作用。

EL的隐式对象包括:
pageContext、
initParam(访问上下文参数)、
param(访问请求参数)、
paramValues、
header(访问请求头)、
headerValues、
cookie(访问cookie)、
applicationScope(访问application作用域)、
sessionScope(访问session作用域)、
requestScope(访问request作用域)、
pageScope(访问page作用域)。 

17. 使用标签库有什么好处

使用标签库的好处包括以下几个方面: 
- 分离JSP页面的内容和逻辑,简化了Web开发; 
- 开发者可以创建自定义标签来封装业务逻辑和显示逻辑; 
- 标签具有很好的可移植性、可维护性和可重用性;	
- 避免了对Scriptlet(小脚本)的使用(很多公司的项目开发都不允许在JSP中书写小脚本)
<%	
Java代码 
%>

18. 表达式语言(EL)支持哪些运算符。

EL表达式的操作符主要有: 算术运算符、关系运算符、逻辑运算符、验证运算符empty、条件运算符 
算术运算符主要有平时常用的“+”、“-”、“*”、“/”、“%” 。
关系运算符主要有“==”、“!=”、“<”、“>”、“<=”、“>=”
逻辑运算符主要有“&&”、“||”、“!” 。
验证运算符“empty”
条件运算符“?:”

19. 你的项目中使用过哪些JSTL标签。

表达式控制标签:out、set、remove、catch
流程控制标签:if、choose、when、otherwise
循环标签:forEach、forTokens  
URL操作标签:import、url、redirect

20. 静态include和动态include的区别?

1、静态包含属于编译期包含(包含页面和被包含的页面在编译期形成一个jsp文件),动态包含属于运行期包含(包含页面和被包含的页面分别编译成两个文件,然后运行时把两个文件组装起来);
2、动态包含可以带参数;

21. 如何设置请求的编码以及响应内容的类型。

通过请求对象(ServletRequest)的setCharacterEncoding(String)方法可以设置请求的编码,其实要彻底解决乱码问题就应该让页面、服务器、请求和响应、Java程序都使用统一的编码,最好的选择当然是UTF-8;通过响应对象(ServletResponse)的setContentType(“text/html;charset=utf-8”)方法可以设置响应内容的类型,当然也可以通过HttpServletResponse对象的setHeader(String, String)方法来设置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值