JavaWeb面试题一

2018-02-25  本文已影响0人  Aluha_f289

1.什么是Servlet

答:可以从两个方面去看Servlet

a.API:用来处理客户端请求的程序需要实现的接口

b.组件:服务端用来处理客户端请求的组件,需要在web.xml文件中配置serlvet和他的映射

2.Servlet的生命周期

答.包括加载和实例化,初始化,处理请求以及服务结束。

这个生存期由javax.servlet,servlet接口中的init、service、destroy方法表达。

web容器加载servlet,生命周期开始。通过调用servlet中init方法进行servlet的初始化

通过调用service()方法实现,根据请求的不同调用不同的doGet()或者doPost()方法。结束服务,web容器调用servlet的destroy()方法。

3.servlet的基本构架

public class serlvetName extends HttpServlet

public void init()//初始化方法

pubilc void doGet()//GET请求处理方法

pubilc void doPost()//POST请求处理方法

pubilc void destroy()//销毁

4.Servlet中GET和Post方法

doGet()  和doPost()方法,前者处理你表单提交来的method=get的请求,后者处理method=post  的请求  

get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制所以在上传文件只能使用Post

get安全性非常低,post安全性较高。但是Get是Form的默认方法,还是要在doGet()中写doPost()请求

5.Servlet API中forward()【直接请求】和redirect()【间接请求】的区别

a.分别是RequestDispatcher类的forward()方法和HttpServletRequest类的sendRedirect()方法。

b.重定向会改变URL地址,请求转发不会改变URL地址

c.重定向不可以资源共享,而请求转发可以

d.当你在Servlet中做一件事,事情做完了要跳转到另一个组件时:可以使用重定向

e.当你在Servlet中做一件事,没有把事情做完了要跳转到另一个组件时:可以使用请求转发

6.request.getParameter()和request.getAttribute的区别

a.前者获取到的类型是String,或者获取到的类型是Object

b.前者获取到的是POST/GET传递的参数值和URL中的参数,后者获取到是

对象容器中的数据值/对象

c.request.getAttribute()和equest.setAttribute()可以发送接收对象

d.request.getParameter()只能接收字符串

e.setAttribute()是应用服务器把这个对象放在该页面所对应的一块内存中,当你的页面服务器重定向到另一个页面时,应用服务器会把这块内存拷贝到另一页面所对应的那块内存中。这个时候就可以通过getAttribute()获取到相应的参数或对象。

上一篇下一篇

猜你喜欢

热点阅读