面试题java面试

Java面试题集锦09—Web开发相关技术

2016-10-14  本文已影响308人  advance_bravely

32.什么是Servlet
Servlet在Java Web服务器中就充当了信息资源的最小表示单位,代表了一个用户可以通过浏览器获取的资源。Servlet可以进行无限的扩展,它可以使用Java的所有类库资源,为用户返回文本、图片、音频、视频等各类信息资源。
从编程角度来看,Servlet是一个Java类,这个类需要实现Servlet接口,提供一个公开的无参数的构造方法。由Web容器来控制它的创建、初始化、提供服务、销毁等。它的各种行为方式通过在web.xml文件中的配置来决定

33.Servlet的生命周期是怎么样的
Servlet的生命周期分为4个阶段:加载、初始化、提供服务和销毁,这些过程都是由Web容器来掌控。开发者关注最多的是初始化和提供服务两个阶段,在init()方法中,开发者可以获取配置在web.xml中的初始化参数service()方法中的代码,会在Servlet的请求来到时被调用。

34.Servlet接口有哪些实现类
在Java EE的SDK中,一共提供了以下3个Servlet接口的实现类

35.如何在Servlet中获取请求参数的值
在Servlet中,任何负责做出响应的方法(例如,service()、doPost()和doGet())都会包含一个ServletRequest对象参数,不管是POST还是GET的请求方式,Servlet都可以通过ServletRequest接口的getParameter()或getParameterValues()方法获取到。前者适用于只有一个值的参数,后者多用于有多值的参数,例如,复选框(checkbox)

//获取参数名为username的用户名,返回字符串   
String username = request.getParameter("username");
//获取参数名为password的密码,返回字符串
String password = request.getParameter("password");
//获取参数名为hobby的爱好数组,返回的是字符串数组
String[ ] hobbies = request.getParameterValues("hobby");

36.Forward(转发)和Redirect(重定向)的区别
Forward和Redirect代表了两种请求转发方式:直接请求转发和重定向。对应到代码里,分别是RequestDispatcher类的forward()方法和HttpServletResponse类的sendRedirect()方法。在Servlet中调用转发和重定向的语句如下:

request.getRequestDispatcher("new.jsp").forward(request,response);//转发
response.sendRedirect("new.jsp");        //重定向
  1. 转发是服务器行为;重定向是客户端行为
  2. 转发行为浏览器只做一次访问请求;重定向行为浏览器做至少两次的访问请求。
  3. 转发只能将请求转发给同一个Web应用中的组件;而重定向不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。
  4. 转发方法请求转发过程结束后,浏览器地址栏保持初始的URL地址;重定向访问过程结束后,浏览器地址栏由初始的URL地址变成重定向的目标URL。
  5. 转发方法的调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程;而重定向的调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。

37.过滤器的作用和工作原理是什么
对于Web应用程序来说。过滤器是处于Web容器内的一个组件,它会过滤特定请求资源请求信息和响应信息。一个请求来到的时候,Web容器会判断是否有过滤器与该信息资源关联,如果有,则交给过滤器一一的处理,然后再交给目标资源,响应的时候则以相反的顺序交给过滤器处理,最后再返回给用户浏览器。
过滤器对应Filter接口,开发者一般需要实现doFilter()方法,并在web.xml文件夹中提供相应的配置。

38.监听器的作用和工作原理是什么
对于Web应用程序来说,监听器是处于Web容器内的一个组件,它会对Web容器中的3种范围对象进行监听:request、session和application。当这些范围对象在创建或销毁的时候,Web容器会主动的调用它们的初始化或销毁的回调方法,从而达到事件响应的效果。根据范围的不同,JavaEE为开发者提供了如下一些监听器接口。

39.JSP的运行机制是什么
当客户端发出一次对某个JSP的请求,Web容器处理该请求的过程如下:

  1. Web容器会检验JSP的语法是否正确
  2. 将JSP文件转换成Servlet的源码文件
  3. 编译该源码文件成为Class文件
  4. 创建一个该Servlet类的对象实例,以Servlet的方式为请求提供服务

40.JSP的内置对象及其用途

41.JSP如何使用JavaBean
JSP使用JavaBean有两种方式:夹杂在HTML中的JSP脚本和JSP动作标签<jsp:useBean>

  1. 纯JSP实现
    这种方式采用的是纯粹的Java代码来创建JavaBean对象和使用JavaBean,此时的JavaBean跟一个普通类没什么区别,示例代码如下:
    <%
    HelloBean bean = new HelloBean(); //创建HelloBean对象
    pageContext.setAttribute("helloBean", bean); //把bean放在page范围中
    %>
    <%
    HelloBean bean2 = pageContext.setAttribute(); //获得HelloBean对象
    response.write(bean2.getName()); //使用bean
    %>
  2. 用JSP动作标签访问JavaBean
    为了简化JavaBean的使用,JSP还提供了一组动作标签来帮助开发者使用JavaBean,它们是:

42.如何使用迭代标签<c:forEach>循环显示数据

上一篇 下一篇

猜你喜欢

热点阅读