HttpServletRequest 谁实现的

在struts2中定义requestHttpServletRequestrequest=ServletActionContext.getRequest();然后生成ses... 在struts2中定义request
HttpServletRequest request = ServletActionContext.getRequest();
然后生成session
Map session = request.getSession;
但是HttpServletRequest 是一个接口啊!他只有方法名没有具体实现!怎么可能生成
Map session????
我查一些文章!他们说HttpServletRequest 具体实现实在Tomcat……web服务器上实现的!
我有点不明白。如果实现了也该有个具体名称的类把??
用到多态也该是这样定义:
Map session = (此处为实现类的引用).getSession;
怎么回事啊???
展开
 我来答
飘漂漂飘
推荐于2016-05-05 · TA获得超过698个赞
知道小有建树答主
回答量:315
采纳率:100%
帮助的人:378万
展开全部
HttpServletRequest 是接口没问题。
ServletActionContext.getRequest() 得到一个实现HttpServletRequest 接口的实例,因此
HttpServletRequest request = ServletActionContext.getRequest(); 成立
此时request 就是 一个实现了HttpServletRequest 接口的实例。

你想找实现就通过ServletActionContext.getRequest()去找,实际struts并不提供实现。

你查的文章也是对的,具体实现类都是由web服务器上实现的,如tomcat jboss 等等吧

看下下面代码你就明白了,还是加强下基础知识吧。

// TTT.java
// 接口
interface HttpServletRequest {
public String getSession();
}

// 实现类
class AAA implements HttpServletRequest {
public String getSession() {
return "session";
}
}

// 中间类
class ServletActionContext {
public static HttpServletRequest getRequest() {
return new AAA();
}
}

public class TTT {

/**
* @param args
*/
public static void main(String[] args) {
HttpServletRequest request = ServletActionContext.getRequest();
System.out.println(request.getSession());
}
}
更多追问追答
追问
ServletActionContext源代码::
public static HttpServletRequest getRequest() { return (HttpServletRequest) ActionContext.getContext().get(HTTP_REQUEST); }
ActionContext是接口。getContext().方法:来源于源码:
public static ActionContext getContext() { return (ActionContext) actionContext.get();}
都是接口啊
追答
其一,我不知道你找那个实现有啥用,实际找到了,你也做不了什么,都不需要关注的,除非你想实现http协议,做自己的服务器,然后参考其实现
其二, ActionContext是不是接口也无所谓,既然用了接口,肯定有实现
return (ActionContext) actionContext.get(); 这里的actionContext又是啥?
但我从代码上来看actionContext.get() 返回一个实现了ActionContext接口的实例。

那你就要去找actionContext.get() 的实现了,你想找源码就这么跟下去行了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式