1. java如何在一个普通的类中获取request对象

你是指你的 web 项目中使用到一个工具性的类,它的形参中没有 HttpRequest 或 HttpSession 参数?


如果是这样的话,我们需要使用一个 ThreadLocal 变量,我们把当前 request 的变量绑定到里面,在一个 request 请求的生命周期内我们在方法调用的各个更深的层次中都可以直接使用它而不需要在每个方法中都传递这个 request 参数,保存在某个地方就容易导致因为多个请求共用同一个实例而出问题,所有 context 相关的变量不保存在任何业务类相关并且可能被多线程共用的对象实例中才是保证不会出现线程安全问题的途径。


例如,这个例子中我们只要把web.xml中配置好 ContextFilter 后它就会自动在请求开始时绑定一个 context,结束后自动销毁,在这中间的任何时刻我们都可以通过 MyWebContext.getCurrentContext() 得到我们的 HttpServletRequest 实例和其它相关的 context 变量:

//MyWebContext记录当前Request的所有context变量。因为servlet是一个请求绑定一个线程的,我们用ThreadLocal不会有线程安全问题。

classMyWebContext{
=newThreadLocal();

//拿出当前线程绑定的context
(){
return(MyWebContext)contexts.get();
}
(){
returnnewMyWebContext();
}

//绑定一个context到当前线程
publicstaticvoidsetContext(MyWebContextcontext){
contexts.set(context);
}
publicstaticvoidclearContext(){
contexts.set(null);
}

privateHttpRequestrequest;
publicvoidsetRequest(HttpRequestrequest){
this.request=request;
}
publicHttpRequestgetRequest(){
returnthis.request;
}
}

{
publicvoiddoFilter(ServletRequest,SerlvetResponse,FilterChainchain){
//创建并绑定我们的context
MyWebContextcontext=MyWebContext.createContext();
context.setRequest(request);
MyWebContext.setContext(context);
try{
chain.doFilter(request,response);
}finally{
//销毁context
MyWebContext.clearContext();
}
}
}

{
(){
//其它方法只要它是工作在servlet请求调用键中间的某个时刻,它就肯定能拿到Filter绑定进去的Request,这样我们就不必要在每次方法调用中都额外地传递一个HttpRequest参数,当调用层次很深时这能明显减少复杂性。

MyWebContextcontex=MyWebContext.getCurrentContext();

HttpRequestrequest=context.getRequest();

=...;
HttpSessionsession=request.getSession(false);
...

}
}

2. 在java类中怎么获取request

------解决方案--------------------
继承有httpservlerequest和response的那个类
然后把他们传进去。版。。
------解决方权案--------------------
把request和response当作参数传递过去。
------解决方案--------------------
也一样的用参数传递。写个简单的类
public class Test{
public Test(HttpServletRequest request,HttpServletResponse response){
}
}
这样,就可以在这个类里面使用request和response对象了
对于我以上的解答,你可满意?不满意继续追问哦
满意记得及时点赞,谢谢

3. java怎么获取request里面的值

request里有两个方法
request.getParameterMap();
request.getParameterNames();

4. 怎么获取java request

获取java request
ActionContext ac = ActionContext.getContext();
HttpServletRequest request =HttpServletRequest)ac.get(ServletActionContext.HTTP_REQUEST);

5. Java request 获取参数

你好:这个的话,一般都是第一次加载慢,以后加载块,你的获取时间不一定是准确的,这个和网络响应速度有关系 200毫秒也不大的

6. Java 怎么在一个普通类中获取到Request对象

首先,向你确认你所谓的普通类就是POJO吗,如果是是无法获取Request对象的。专
不过,可以使用属参数传递的方式。

Request对象,即ServletRequest,隶属于javax包下的,需要实现其HttpServletRequest接口才能获取到Request对象

故在普通java类中是无法获取到request对象的

望参考

7. 在Java中,request怎样取得session中的值

使用request.getSession()方法获取Session, 本方法是从当前request中获取session,如果获取不到session,则会自动创建一个session,并返回新创建的session;如果获取到,则返回获取到的session; 获取到session后可以使用getAttribute(“<属性名>”)来获取具体的session中的值,下面的代码是将Session中的所有值都遍历出来

Enumeration enumeration =request.getSession.getAttributeNames();
while(enumeration.hasMoreElements()){
String AddFileName=enumeration.nextElement().toString();//获取session中的键值
String value=(String)session.getAttribute(AddFileName);//根据键值取出session中的值
FileName+=value+"@";
System.out.println(FileName);
}

拓展知识

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

Cookie技术是客户端的解决方案,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。让我们说得更具体一些:当用户使用浏览器访问一个支持Cookie的网站的时候,用户会提供包括用户名在内的个人信息并且提交至服务器。

session的实现原理如下如所示

8. java如何在一个普通的类中获取request对象

在spring的普通类中:版

HttpServletRequestrequest=((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();

request.getSession();

在权Struts的普通类中:

HttpServletRequestrequest=ServletActionContext.getRequest();

request.getSession();

HttpServletResponse response =ServletActionContext.getResponse();

9. java怎么获取request对象

HttpServletRequest request =new HttpServletRequest request()