❶ java類中request.getParamater("a")獲取jsp頁面url傳遞的參數,編碼問題。
因為URL採用ISO-8859-1編碼,所以得把它轉換成與頁面相同的編碼方式。
獲取的值轉碼試試看
比如:
str=new String(str.getBytes("iso-8859-1"),("gb2312"));
❷ 如何用java判斷瀏覽器類型
用java判斷瀏覽器類型可以通過從request里可以獲取用戶瀏覽器類型
代碼如下:
Enumerationgete=request.getHeaderNames();
while(e.hasMoreElements()){
Stringname=(String)gete.nextElement();
Stringvalue=request.getHeader(name);
}
這樣可以遍歷從客戶端傳來的所有頭信息:
解釋說明:
request.getHeaderNames();//取得全部頭信息
request.getHeader();//取出頭信息內容
request.getHeaders("User-Agent"); //request.getHeader(「User-agent」)返回客戶端瀏覽器的版本號
❸ 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);
...
}
}
❹ java里,request.getRequestURI().indexOf是什麼意思
request:請求
getRequestURI:獲取請求的url
indexOf(str):求字元串內str出現的位置下標
所以:request.getRequestURI().indexOf("1.jsp")的意思就是,求請求的url內「1.jsp」的位置,返回的是一個數字,代表出現的位置,-1表示不存在。通常和-1比較來表示是否包含指定的頁面,常用於過濾器。
例:if(request.getRequestURI().indexOf("1.jsp")){
filterChain.doFilter(request,response);//給1.jsp放行
}else{
xxxxxx//不放行,進行別的操作
}
❺ Java 怎麼在一個普通類中獲取到Request對象
首先,向你確認你所謂的普通類就是POJO嗎,如果是是無法獲取Request對象的。
不過,可以使用參數傳遞的方式。
Request對象,即ServletRequest,隸屬於javax包下的,需要實現其HttpServletRequest介面才能獲取到Request對象
故在普通java類中是無法獲取到request對象的
望參考