jsp及Servlet面试题

1、 Servlet JSP 有什么区别?
Servlet JSP 完成的功能是相同的,都可以接收用户的请求,可以对用户进行响应,可以调用业务方法。
不同点在于JSP 是在html 或者xml 中嵌入了Java 代码或者JSP 的标记,在制作页面方面具有优势,可以使用网页编辑工具来制作网页,然后嵌入Java 或者JSP 的标记。Servlet 是纯Java 代码,通常用于控制,不用于输出。在MVC 模式中,JSP 通常充当视图,Servlet 通常充当控制器。另外,JSP 在运行的时候还要转换成类似于Servlet Java 代码。
2、 Servelt 通常有哪些方法
init 方法,完成初始化
service 方法,包括doGet doPost ,用于接收用户的请求,调用后台的JavaBean 或者EJB ,选择界面对用户响应。
destroy 方法,用于释放资源
3、  谈谈Servlet 的生命周期
当接收到请求的时候,容器察看对应的Servlet 对象是否存在,如果不存在,需要加载Servetl ,实例化Servlet ,调用init 方法进行初始化。如果已经存在,根据用户的请求创建request response 对象,把这两个对象作为参数调用Servlet 对象的service 方法,Servlet 通过这个方法与用户进行交互,方法执行完之后,对请求的处理结束。Servelt 对象继续等待下一个请求。当应用卸载的时候,调用destroy 方法释放资源。多个请求共享Servelt 对象。
4、 Servlet API 的两个主要包
javax.servlet.*;
javax.servlet.http.*;
5、  编写Servlet 需要继承的类是什么?
    HttpServlet
6、  编写Servlet 通常需要实现的两个方法是什么?
doGet 方法和doPost 方法
7、 doGet 方法和doPost 方法中的两个参数是什么?
HttpServletRequest HttpServletResponse ,前者封装了与请求相关的信息,后者封装了与响应相关的信息。要获取请求信息,从第一个参数获取,要对用户响应,通过第二个参数。
8、  要获取用户信息,如何获取
request getParameter 方法和getParameterValues 方法,前者用于获取单值表单元素的值,或者用于获取多值的情况,典型的复选框。前者返回的是一个字符串,后者返回的是字符串数组。如果参数指定的表单元素不存在,返回null
9、  要给用户响应信息,如何完成?
设置响应内容的类型:response.setContentType(“text/html;charset=gb2312”);
获取输出流对象:PrintWriter out = response.getWriter();
输出信息:通过out println 方法
10、              Servlet 中选择接面对用户响应,如何实现
两种方式:使用RequestDispatcher response sendRedirect 方法
如果使用RequestDispatcher
RequestDispatcher rd = request,getRequestDispatcher(“ 目标文件”);
rd.forward(request,response);
如果使用sendRedirect 方法
    response.sendRedirect(“ 目标文件”);
11、              上面的两种方式有什么区别?
RequestDispatcher forward 方法相当于<jsp:forward> 的作用。类似于方法调用,当执行到这行代码的时候,通过forward 方法转向执行目标文件,把request response 作为参数传递到下一个页面,这样当前页面(Servlet 或者JSP )和目标页面共享了request ,可以通过request 对象传值。response sendRedirect 方法相当于向客户端浏览器发送了一个消息,让浏览器重新请求目标文件,从用户的角度来说,相当于发送了两次请求,每次请求有独立的request response 对象,不能通过request 在两个页面之间传值。从地址栏看,前一种方式在地址栏中显示的第一个文件的路径,后一种方式显示的第二个文件的路径。
12、              Servlet 中如何获取Session 对象,如何获取Cookie
使用request 对象的getSession 方法获取session ,通过getCookies 获取Cookie
13、              Servlet 在哪个文件中进行配置?
Web 应用的WEB-INF 下面的web.xml 中进行配置。
14、              如何配置Servlet
包括两步:Servlet 的声明和Servlet 访问方式的声明。
Servlet 的声明:
<servlet>
<servlet-name>servlet 的名字(自己定义的)</servlet-name>
<servlet-class>servlet 的完整类名</servlet-class>
</servlet>
Servlet 访问方式的声明
<servlet-mapping>
<servlet-name>Servlet 的名字(应该和声明的时候保持一致)</servlet>
<url-pattern> 访问路径</url-pattern>
</servlet-mapping>
15、              编译好的Servlet 类放在什么位置?
放在Web 应用WEB-INF 下面的classes 文件夹中。
16、              假设网站的IP 地址为1.2.3.4 ,端口8878 ,应用的名字hello servlet 的访问方式/hello ,现在要访问这个servlet ,如何访问?
     http://1.2.3.4:8878/hello/hello
17、              谈谈Servlet 过滤器的作用?
     Servlet过滤器 是特殊的Servlet ,能够对特定的请求路径进行过滤,在访问这个路径之前,先执行过滤器,过滤器进行预处理,过滤器决定是否继续执行后续的文件。典型的应用,可以把用户验证的代码写在过滤器中,然后把过滤的路径配制成需要验证的文件的路径。
18、              谈谈Servlet 监听器的作用
Servlet 监听器对特定的事件进行监听,当产生这些事件的时候,会执行监听器的代码。可以对应用的加载、卸载,对session 的初始化、销毁,对session 中值变化等事件进行监听。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值