JavaWeb基础面试题

  1. JSP中动态include与静态include的区别?
  2. 动态include:<jsp:include>,如果包含的是动态页,则先编译之后再进行处理

    静态include:<%@include%>,直接将内容先包含后处理

  3. 两种跳转方式分别是什么?有什么区别?

     服务器端跳转:<jsp:forward>,跳转之后地址栏不改变,可以传递request 属性,实际是对RequestDispatcher接口的封装

    客户端跳转:response.sendRedirect(),跳转之后地址栏改变

  4. 简述在JSP中是如何实现分页操作的。

    实现原理:

    定义一系列的变量:currentPage, lineSize, 并通过查询求了allRecorders和计算求出pageSize pageSize=(AllRecorders  + lineSize - 1)/lineSize

    之后数据库查询语句中根据lineSize和currentPage进行数据的查询

    Oracle中使用ROWNUM,mysql中使用limit()

    之后通过表单不断的修改currentPage, lineSize就可以实现分页显示

  5. 介绍在JSP中如何使用JavaBean

    JavaBean的格式要求:必须有包、public class 声明、属性封装、无参构造、setter\getter

    import 语句导入或者通过<jsp:useBean>

  6. 说一说Servlet的生命周期

    初始化,正常一次:对应init()方法,有两个init()其中一个是有ServletConfig对象,此方法存在则无参不调用,正常情况下第一次使用Servlet的时候才进行初始化的操作,当然也可以通过配置在容器启动的时候自动进行初始化<load-on-startup>

    服务,服务多次:所有的服务器都由services()方法分配,主要有doGet()和doPost(),分别处理get和post请求

    销毁,正常一次,调用destory()方法,如果一个Servlet长时间不用,也会自动销毁,而当再次使用的时候就必须重新进行初始化的操作

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

    forward()方法是RequestDispatcher接口定义的,而redirect是response定义的,一个是服务器端跳转,另外一个是客户端跳转

  8. MVC的各个部分都有哪些技术来实现?如何实现?

    MVC:model view controller

    model:JavaBean 业务处理、数据处理

    view:显示的事JSP,最好不存在任何的scriptlet,可以使用标签消除

    controller:控制,接收view传递的内容和调用javaBean,并根据javaBean的处理结果进行跳转

    实现原理:所有的JSP将内容提交给Servlet,servlet接收这些内容并调用相应的JavaBean进行业务及数据的处理,一般javabean有专人负责开发,完成业务的操作流程,而servlet调用的只是接口,并根据这些接口的操作结果将内容交给JSP运行显示,但是显示的时候尽可能少出现Scriptlet代码

  9. 描述JSP和Servlet的区别、共同点、各自应用的范围

    先有的Servlet再有的JSP,Servlet是在java中嵌入HTML代码,而JSP是在HTML中嵌入JAVA代码

    共同点:JSP可以完成的功能,Servlet都可以完成,但是对于过滤器、监听器只能由Servlet完成

    应用范围:JSP用于显示,Servlet用于控制

  10. Ajax可以做异步请求么?

    可以.ajax请求默认是异步的.如果想同步 把 async设置为false就可以了默认是true

  11. 一网站如果有大量的人登陆访问。那么会产生很多的session,如果你是程序员你该怎么办。

    session默认保存在内存中,内存资源宝贵,session数据量大导致内存利用率高1、可以设置session超时时间,达到超时时间session自动清空2、将session中的数据序列化到硬盘中3、不使用session,使用cookie(此方法存在安全性问题)

  12. 一网站如果有大量的人登陆访问。那么会产生很多的session,如果你是程序员你该怎么办。

    session默认保存在内存中,内存资源宝贵,session数据量大导致内存利用率高1、可以设置session超时时间,达到超时时间session自动清空2、将session中的数据序列化到硬盘中3、不使用session,使用cookie(此方法存在安全性问题)

  13. Jsp有哪些内置对象?作用分别是什么?

    Page,pageContext,request,response,session,application,out,config,exception

    Page指的是JSP被翻译成Servlet的对象的引用.

    pageContext对象可以用来获得其他8个内置对象,还可以作为JSP的域范围对象使用.pageContext中存的值是当前的页面的作用范围》

    request代表的是请求对象,可以用于获得客户机的信息,也可以作为域对象来使用,使用request保存的数据在一次请求范围内有效。

    Session代表的是一次会话,可以用于保存用户的私有的信息,也可以作为域对象使用,使用session保存的数据在一次会话范围有效

    Application:代表整个应用范围,使用这个对象保存的数据在整个web应用中都有效。

    Response是响应对象,代表的是从服务器向浏览器响应数据.

    Out:JSPWriter是用于向页面输出内容的对象

    Config:指的是ServletConfig用于JSP翻译成Servlet后 获得Servlet的配置的对象.

    Exception:在页面中设置isErrorPage=”true”,即可使用,是Throwable的引用.用来获得页面的错误信息

  14. cookie 和session 的区别?

    1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

    2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗

       考虑到安全应当使用session。

    3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能

       考虑到减轻服务器性能方面,应当使用COOKIE。

    4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

    5、所以个人建议:

       将登陆信息等重要信息存放为SESSION

       其他信息如果需要保留,可以放在COOKIE中

  15. CSS中class和id的区别是?

    id:每个页 ID 是唯一的不能重复。 class:可以设置多个 class 为同一个值。

  16. 谈谈对mvc 的认识

    由模型(model),视图(view),控制器(controller)完成的应用程序由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图;

    MVC 是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC 应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。视图是用户看到并与之交互的界面。模型表示企业数据和业务规则。控制器接受用户的输入并调用模型和视图去完成用户的需求。

    MVC 的优点:低耦合性、高重用性和可适用性、较低的生命周期成本、快速的部署、可维护性、可扩展性,有利于软件工程化管理

    MVC 的缺点:没有明确的定义,完全理解 MVC 并不容易。不适合小型规模的应用程序。

  17. doGet()方法和doPost()方法有什么区别?

    doGet:GET方法会把名值对追加在请求的URL后面。因为URL对字符数目有限制,进而限制了用在客户端请求的参数值的数目。并且请求中的参数值是可见的,因此,敏感信息不能用这种方式传递。

    doPOST:POST方法通过把请求参数值放在请求体中来克服GET方法的限制,因此,可以发送的参数的数目是没有限制的。最后,通过POST请求传递的敏感信息对外部客户端是不可见的。

  18. 什么是Servlet?

    Servlet是用来处理客户端请求并产生动态网页内容的Java类。Servlet主要是用来处理或者是存储HTML表单提交的数据,产生动态内容,在无状态的HTTP协议下管理状态信息。

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值