JavaWeb面试题(30)

1.什么是Servlet?
答:从两个方面去看Servlet:
      1)、API:有一个接口servlet,它是servlet规范中定义的用来处理客户端请求的程序需要实现的顶级接口。

      2)、组件:服务器端用来处理客户端请求的组件,需要在web.xml文件中进行配置。

2.Servlet的基本架构
答:

public class ServletName extends HttpServlet
{
     //初始化方法
     public void init()
     {
       ……
     }
     //GET请求处理的方法
     public void doGet(HttpServletRequest request,HttpServletResponse response)
     {
        ……
     }
      //POST请求处理的方法
     public void doPost(HttpServletRequest request,HttpServletResponse response)
     {
         ……
     }
       //结束服务的方法
     public void destroy()
     {
         ……
     }
3.什么情况下调用doGet()和doPost()?

答:默认情况是调用doGet()方法,JSP页面中的Form表单的method属性设置为post的时候,调用的为doPost()方法;为get的       时候,调用deGet()方法。

4.JSP有哪些动作?作用分别是什么?

答:JSP一共有以下6中基本动作
      JSP:include       (当页面被请求的时候引入一个文件)
      JSP:forward      (将请求转到另一个页面)
      JSP:useBean     (获得JavaBean的一个实例)
      JSP:setProperty (设置JavaBean的属性)
      JSP:getProperty (获得JavaBean的属性)

      JSP:plugin         (根据浏览器类型为Java插件生成object或者embed两种标记)

5.JSP中动态include和静态include的区别?
答 : 1)、静态include:语法:<%@ include file="文件名" %>,相当于复制,编辑时将对应的文件包含进来,当内容变化时,不会再一次对其编译,不易维护。
        2)、动态include:语法:<jsp:include page="文件名">,能够自动检查被包含文件,当客户端对JSP文件进行请求时,会重新将对应的文件包含进来,进行实时的更新。

6.页面间对象传递的方法?

答:request、session、application、cookie等。

7. 详细描述MVC。
答:基于java的web应用系统采用MVC设计模型,即用Model(模型)、View(视图)和Controller(控制)分离设计,这是         目前web应用服务系统的主流设置方向。
      Model:处理业务逻辑的模块。
      View:负责页面显示,显示Model的处理结果给用户,主要实现数据到页面的转换过程。

      Controller:负责每个请求的分发,把Form数据传递给Model进行处理,处理完成后,把处理结果返回给相应的View显示         给用户。

8.EL表达式的功能
答:1)、从四个域对象中取出数据数据显示。

      2)、取出请求参数数据显示。

9.JSP乱码如何解决?
答:1)、JSP页面乱码
              <%@page contentType="text/html;charset=utf-8" %>

      2)、表单提交时出现乱码

              request.setCharacterEncoding("utf-8");

10.过滤器的用法?(对客户端的请求统一编码和对客户端进行验证)
答:实现Filter接口,同时重写Filter接口的三个方法:
      init (FilterConfig config) 用于获取FilterConfig对象
      doFilter (ServletRequest request,ServeltResponse response,FilterChain chain) 进行过滤处理一些业务

      destroy ()  销毁Filter

11.过滤器有哪些作用?
答:1)、可以验证客户是否来自可信的网络
      2)、可以对客户提交的数据进行重写编码
      3)、可以从系统里获得配置的信息
      4)、可以过滤掉客户某些不应该出现的词汇
      5)、验证客户是否登录
      6)、验证客户的浏览器是否支持当前的应用

      7)、可以记录系统的日志

12.如何从form表单中获取checkbox的值?

答:可以在页面将checkbox的name属性设置相同,value属性取每个条目的id,在后台使用                                                         request.getParametervalues("name");获取一组值。

13.什么是重量级?什么是轻量级?
答:1)、轻量级是指它的创建和销毁不需要消耗太多的资源,意味着可以在程序中经常创建和销毁session对象。

      2)、重量级意味着不能随意的创建和销毁它的实例,会占用太多的资源。

14. JSP有哪些内置对象?作用分别是什么?
答:JSP一共有9个内置对象:
      request:负责得到客户端请求的信息,对应类型:javax.servlet.http.HttpServletRequest
      response:负责向客户端发出响应,对应类型:javax.servlet.http.HttpServletResponse
      session:负责保存同一客户端一次会话过程中的一些信息,对应类型:javax.servlet.http.httpsession
      out:负责管理对客户端的输出,对应类型:javax.serlvet.jsp.jspwriter
      application:表示整个应用环境的信息,对应类型:javax.servlet.servletcontext
      config:表示ServletConfig,对应类型:javax.servlet.servletconfig
      exception:表示页面中发生的异常,可以通过它获得页面异常信息,对应类型:java.lang.exception
      pagecontext:表示这个JSP页面上下文,对应类型:javax.servlet.jsp.pagecontext

      page:表示当前JSP页面本身。

15.访问修饰符public,private,protected,以及不写(默认)时的区别?

答:类的成员不写访问修饰时默认为default。

修饰符当前类同 包子 类其他包
public
protected×
default××
private×××
16.session和cookie的区别,如何实现自动登录

答:1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。 
        2、session中保存的是对象,cookie中保存的是字符串。 
        3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如                   果 设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。 
        4、session需要借助cookie才能正常工作。如果客户端完全禁止cookie,session将失效。
        5、session在用户会话结束后就会关闭了,但cookie因为保存在客户端,可以长期保存

        自动登录: 
        如果没有cookie信息,校验后把信息(用户名,密码等)放在cookie里面。 

        如果有cookie,则读取cookie里的用户名和密码或者其它信息,然后根据读取的用户名和密码进行校验。

17.get和post的区别
答:1、Get是从服务器端获取数据,Post则是向服务器端发送数据。 
        2、在客户端,Get方式通过URL提交数据,在URL地址栏可以看到请求消息,该消息被编码过;Post数据则是放在Html                        header内提交。 
        3、对于Get方式,服务器端用Request.QueryString获取变量的值;对用Post方式,服务器端用Request.Form获取提交的数                 据值。 
        4、Get方式提交的数据最多1024字节,而Post则没有限制。 

        5、Get方式提交的参数及参数值会在地址栏显示,不安全,而Post不会,比较安全。

18.web.xml 的作用

答:用户配置 web 应用的信息,如 listener、filter、Servlet

19.常用的 JSTL 标签
答:<c:if>
        <c:choose>、<c:when>、<c:otherwise>
        <c:forEach>

        <c:set>

20.String 是最基本的数据类型吗?

答:不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type)和枚举类型(enumeration type),剩下的都是引用类型(reference type)。

21.javascript常用的方面?

答:数据校验、页面特殊效果等。

22.JSP的四种范围?
答:1)、page是代表一个页面相关的对象和属性。一个页面由一个编译好的java servlet类(可以带有include指令,但不可以带               有include动作)表示。这既包括servlet又包括编译成servlet的jsp页面。
        2)、request是代表与web客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个web组件(由              于forware指令和include动作的关系)
        3)、session是代表与用于某个web客户机的一个用户体验相关的对象和属性。一个web回话也可以经常跨域多个客户机请             求。

       4)、application是代表与整个web应用程序相关的对象和属性。这实质上是跨域整个web应用程序,包括多个页面、请求和              回话的一个全局作用域。

23.在servlet和JSP之间能共享session对象吗?
答:是
        HttpSession session=request.getsession(false);

        session.getAttribute"变量名");   //获取保存在session容器中的变量

24.request的作用有哪些? 
答:获取客户端传递的参数值 
      获取客户端请求头信息 
      获取会话 
      获取转发对象 

      可作为容器使用利用setAttribute()getAttribute()方法进行参数传递 

25. application 有什么作用。  

答:保存的一些全局性的对象信息。

26.请求转发和重定向的区别。 

答:1) 内部转发客户端向服务器发起一次请求,重定向客户端向服务器发出两次请求 

       2) 内部转发由request对象发起,重定向是response发起的 

       3) 内部转发不会引起地址栏的变化,而重定向会导致地址栏变化  

  27. URLURI的区别? 

    答:url:统一资源定位符, url定位客户端连接到服务器所需要的信息 
          uri:
统一资源标志符: 

          uriurl的一部分,没有域名和查询字符串,即域名之后查询字符串之前所有的信息,用于指定资源 

28.servlet中如何到得项目的绝对路径? 

    答:Request.getContextPath(); 

29.ajax的基本原理是什么。 

答:Javascript + asynchornors + xml 异步向服务器发起请求,AJAX可以像桌面应用程序一样只同服务器进行数据交换,却不用每次都刷新界面,也不用每次将数据处理的工作都交给服务器来做;这样既可减轻服务器负担又加快了响应速度、缩短了用户等待时间。 

30.&和&&的区别?
答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值   是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判    定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(""),二者的顺序不能交换,更不能用    &运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。注意:    逻辑或运算符(|)和短路或运算符(||)的差别也是如此。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值