JavaWeb 测试题(一)

目录

1.自定义 servlet 的三种方式,及区别?

2.写出 Servlet 中的三大作用域,并分别说明各自的特点?

3.filter 和 servlet 在生命周期上的区别?

4.表单提交的 2 种方式?及区别?

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


1.自定义 servlet 的三种方式,及区别?

  1. 实现Servlet接口,实现所有抽象方法。该方式支持最大程度的自定义。
  2. 继承 GenericServlet 抽象类,必须重写 service 方法,其他方法可选择重写。该方式让我们开发 Servlet 变得简单。但是这种方式与 HTTP 协议无关。
  3. 继承 HttpServlet 抽象类,需要重写 doGet方法和 doPost 方法,该方式表示请求和响应都需要和 HTTP 协议相关。

详细内容可查看这篇文章!


2.写出 Servlet 中的三大作用域,并分别说明各自的特点?

  1. request,特点:request作用域为一次请求,它的变量有效范围是当前请求周期。所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。
  2. session,特点:如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话的所有请求里使用。
  3. application,特点:如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。整个应用是指从应用启动,到应用关闭结束。我们没有说“从服务器启动,到服务器关闭”,是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用都关闭了。

总结:

  • request是一次请求
  • session是一个会话
  • application是多次会话(Tomcat开启到关闭)

3.filter 和 servlet 在生命周期上的区别?

  1. filter是在系统启动的时候通过init()初始化的,每次请求都只会调用dofliter方法进行处理,服务器停止的时候调用destroy()进行销毁!
  2. servlet 是在系统启动或者请求到达servlet时,通过init()方法进行初始化,一旦被装入了web服务器,一般不会从服务器删除,直到服务器关闭才会调用destroy()方法进行销毁。每次请求,Request都会被初始化,响应请求后,请求被销毁。但是servlet不会随着请求而销毁;如果某个Servlet配置了<load-on-startup>1</load-on-startup>,该Servlet也是在Tomcat(Servlet容器)启动时初始化。

【注意】服务器关闭时,servlet和filter依次被销毁!


4.表单提交的 2 种方式?及区别?

form表单中method有两种提交方法,get和post分别对应HttpServlet中的doGet()和doPost()方法,这两种提交方式其实有很大的区别:

  1. form表单默认提交方式为get方式,get方式发送数据.
  2. 数据回传方式不同:get是从服务器上获取数据,post是向服务器发送数据。
  3. 用户看到过程不同:get是把参数数据队列加到提交表单的action属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到;post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
  4. 服务器端回传方式不同:对于get方式,服务器端用Request.QueryString获取变量的值;对于post方式,服务器端用Request.Form获取提交的数据。、
  5. 传送大小不同:get传送的数据量较小,不能大于2KB;post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
  6. 安全性不同:get安全性非常低,post安全性较高。

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

  1. HttpServletRequet类的Request对象:代表请求对象,主要用于接受客户端通过HTTP协议连接传输服务器端的数据;
  2. HttpSevletResponse类的Response对象:代表响应对象,主要用于向客户端发送数据;
  3. JspWriter类的out对象:主要用于向客户端输出数据,out的基类是jspWriter;
  4. HttpSession类的session对象:主要用来分别保存每个月的信息与请求关联的会话;会话状态的维持是web应用开发者必须面对的问题;
  5. ServletContext类的application对象:主要用于保存用户信息,代码片段的运行环境;它是一个共享的内置对象,即一个容器中的多个用户共享一个application,故其保存的信息被所有用户所共享;
  6. PageContext类的PageContext对象:管理网页属性,为jsp页面包装页面的上下文,管理对属于jsp的特殊可见部分中已经命名对象的访问,它的创建和初始化都是由容器来完成的;
  7. ServletConfig类的Config对象:代码片段配置对象,标识Servlet的配置;
  8. Object类的Page对象,处理jsp页面,是object类的一个实例,指的是jsp实现类的实例;
  9. Exception对象:处理jsp文件执行时发生的错误和异常,只有在错误页面里才使用,前提是在页面指令里要有isErrorPage=true;

记录和复习Java基础知识点冲冲冲!

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值