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()