关于servlet中service()方法参数的问题

问题描述

请教一下大家,servlet中的service()方法,一般会传入2个参数:ServletRequest request 和ServletResponse response 。ServletRequest和ServletResponse是2个接口,接口是不能实例化的,那么为什么可以定义他们的对象 request和response 呢?

解决方案

意思就是sevlet api可以传入任何实现ServletRequest,ServletResponse的类,这叫做多态,如:Object obj = new String();ServletRequest sr = new HttpServletRequest();
解决方案二:
HttpServletRequest req = (HttpServletRequest)request;
解决方案三:
换个角度想, 如果你的参数是HttpServletRequest 和response, 那么你的参数就定死了, 就是这两个, 如果你想要扩展它, 岂不是很麻烦了 ? 或者说,你想传进来的不是Httpservletrequest, 而是servletrequest的另一个实现,岂不是不能满足你了? 这种比较底层的东西, 一般都会写的扩展性比较强, 这样更通用.
解决方案四:
面向接口编程的思想吧 但是实际的参数应该是实现这两个接口的实现类实例
解决方案五:
子类现实或者继承,多态的考虑

时间: 2024-08-30 17:17:07

关于servlet中service()方法参数的问题的相关文章

servlet-如何理解httpServlet类中service方法里的两个参数

问题描述 如何理解httpServlet类中service方法里的两个参数 java语言web编程中,在继承了servlet类实现service方法后应该如何使用request和response两个参数,该如何正确理解两个参数呢?

ndroid init rc- init.rc中service 各个参数及每个参数的意义

问题描述 init.rc中service 各个参数及每个参数的意义 android init.rc中service的各个参数及每个参数的意义,有人知道是什么吗?网上查了都是讲init.rc的语法: service [ ]* 这样介绍,可是argument有什么选项以及选项的参数分别是什么意思没有讲,麻烦各位帮帮忙.比如zygote这个服务: service zygote /system/bin/app_process64 -Xzygote /system/bin --zygote --start

android中findViewById方法参数问题

问题描述 android中findViewById方法参数问题 android中findViewById( R.id.myLayout); 这个方法参数的数据类型是什么,为什么省略了数据类型的声明,路径是什么,谢谢解答 解决方案 int 类型 public View findViewById(@IdRes int id) { return getDecorView().findViewById(id); } 各种资源都会在R文件中定义, 有R.id.xxx 引用在XML中定义了控件ID的 R.l

Jquery中$.ajax()方法参数详解_AJAX相关

俗说好记性不如个烂笔头,下面是jquery中的ajax方法参数详解,这里整理了一些供大家参考.  1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持. 3.timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的全局设置. 4.async

Jquery中$.ajax()方法参数详解

俗说好记性不如个烂笔头,下面是jquery中的ajax方法参数详解,这里整理了一些供大家参考. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持. 3.timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的全局设置. 4.async:

JQuery中$.ajax()方法参数详解及应用

 JQuery中$.ajax()方法想必大家并不陌生吧,在本文将为大家介绍下其参数及应用示例,感兴趣的朋友不要错过 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址.    type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和    delete也可以使用,但仅部分浏览器支持.    timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的

jQuery中$.ajax()方法参数解析_jquery

本文实例为大家讲解了jQuery $.ajax()方法参数,供大家参考,具体内容如下 $.ajax({ url:'test.do', data:{id:123,name:'xiaoming'}, type:'post', dataType:'json', success:function(data){ alert(data);//弹窗 //TODO ........ }, error:function(data){ alert(data);//弹窗 //TODO ........ } }) ur

JQuery中$.ajax()方法参数详解及应用_jquery

url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持. timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的全局设 置. async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求. 如果需要发送同步请求,请将此选项

SmartUpload在servlet中使用方法

servlet SmartUpload mySmartUpload = new SmartUpload(); mySmartUpload.initialize(servlet.getServletConfig(), request,response); // 设定上传限制 // 1.限制每个上传文件的最大长度. // mySmartUpload.setMaxFileSize(10000); // 2.限制总上传数据的长度. // mySmartUpload.setTotalMaxFileSize