アプリケーションの開発の過程で、複数のアプリケーションがある場合、通常、ポータルポータルを介して統合されます。このポータルは、すべてのアプリケーションへの入り口です。ユーザーがポータルにログインして別のシステムに入ると、同様のシングルサインオン(SSO)が必要です。各サブシステムを入力するとき、彼または彼女は再びログインする必要はありません。もちろん、プロのシングルサインオンソフトウェアを介して同様の機能を実装するか、自分でデータベーストークンを記述することもできます。実際、ポータルを介してログインしたユーザーメッセージをカプセル化し、HTTPヘッダーに書き込み、各サブシステムのヘッズをhttpに留めていない場合のユーザー名を取得した場合、各サブシステムがhttpに登録されているかどうかを確認してから、HTTPヘッダーに記述してから、他の比較的簡単な方法があります。 検証。
HTTPヘッダーを扱うためのいくつかの方法が要約されています。
httpservletrequestを使用します
javax.servlet.http.httpservletrequestをインポートします。 // ... private httpservletrequestリクエスト。 //リクエストヘッダープライベートマップ<文字列、string> getheadersInfo(){map <string、string> map = new hashmap <string、string>();列挙headernames = request.getheadernames(); while(headernames.hasmoreElements()){string key =(string)headernames.nextelement();文字列値= request.getheader(key); map.put(key、value); }マップを返します。 }典型的な例は次のとおりです。
"Headers":{"host": "yihaomen.com"、 "accept-encoding": "gzip、deflate"、 "x-forwarded-for": "66.249.xx"、 "x-forwarded-proto": "http"、 "user-agent": "mozilla/5.0 +http://www.google.com/bot.html) "、" x-request-start ":" 1389158003923 "、" accept ":"*/*"、" connection ":" close "、" x-forward-port ":" 80 "、" from "ユーザーエージェントを取得します
javax.servlet.http.httpservletrequestをインポートします。 // ... private httpservletrequestリクエスト。 private string getUseragent(){return request.getheader( "user-agent"); }典型的な例は次のとおりです。
Mozilla/5.0(互換; GoogleBot/2.1; +http://www.google.com/bot.html)
Spring MVCを使用してHTTPRequestヘッダーを取得する例
import java.util.Enumeration;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.pathvariable; Import org.springframework.web.bind.annotation.requestmapping; Import org.springframework.web.bind.annotation.Requestmethod; Import org.springframework.web.web.web.servelet.web.serveleteled.web.servelet.deverleteletedeftelet.web.servelet.modelet.modelet.web.servelet.-modelet.modelet.web.serveyクラスSiteController {@AutowiredプライベートHTTPSERVLETREQUESTリクエスト。 @RequestMapping(value = "/{input:.+}"、method = requestmethod.get)public modelandview getdomain(@pathvariable( "input")string input){modelandview modelView = new ModelAndView( "result"); ModelView.AddoBject( "user-agent"、getuseragent()); ModelView.AddoBject( "Headers"、getheadersinfo()); ModelViewを返します。 } // get user agent private string getuseragent(){return request.getheader( "user-agent"); } //リクエストヘッダープライベートマップ<文字列> getheadersInfo(){map <string、string> map = new hashmap <string、string>();列挙headernames = request.getheadernames(); while(headernames.hasmoreElements()){string key =(string)headernames.nextelement();文字列値= request.getheader(key); map.put(key、value); }マップを返します。 }}一部の人々は、HTTPヘッダーをシミュレートできると言うかもしれませんので、これらを欺くためのシステムを構築できます。はい、それは本当です。したがって、HTTPヘッダーを使用して価値のある価値を渡す場合、すべての要求をポータルを介して処理し、各サブシステムに転送する必要があり、この問題は発生しないことを覚えておく必要があります。 Portalが最初にユーザーが開始したすべての要求をインターセプトするためです。構築されたユーザーの場合、ポータルセッションにはレコードがなく、ログインページにジャンプします。 Protalセッションに記録され、HTTPヘッダーにも記録がある場合は、サブシステムの法律ユーザーであり、いくつかの要件に従ってビジネスロジックを処理できます。
JSP/Javaは、HTTPヘッダー情報(リクエスト)の例を取得します
<%// header.jspout.println( "protocol:" + request.getProtocol() + "<br>"); out.println( " + request.getscheme() +" <br> "); request.getServerPort() + "<br>"); out.println( "protocol:" + request.getProtocol() + "<br>"); request.getRemoteAddr() + "<br>");out.println("Remote Host: " + request.getRemoteHost() + "<br>");out.println("Character Encoding: " + request.getCharacterEncoding() + "<br>");out.println("Content Length: " + request.getContentLength() + "<br>"); out.println( "content type:" + request.getContentType() + "<br>"); out.println( "auth type:" + request.getauthtype() + "<br>"); request.getPathinfo() + "<br>"); out.println( "path trans:" + request.getPathTranslated() + "<br>"); "<br>"); out.println( "session id:" + request.getRequestedSessionId() + "<br>"); out.println( "request url:" + request.getRequesturl() + "<br>"); request.getServletpath() + "<br>"); out.println( "created:" + session.getCreationTime() + "<br>"); out.println( "lastAccessed:" + session.getLastaccessedTime() + "<br>") "<br>"); out.println( "accept:" + request.getheader( "accept") + "<br>"); out.println( " + request.getheader(" host ") +" <br> "); request.getheader( "accept-language") + "<br>"); out.println( "accept-encoding:" + request.getheader( "Accept-Encoding") + "<br>"); request.getheader( "connection") + "<br>"); out.println( "cookie:" + request.getheader( "cookie") + "<br>";%>request.getheader( "参照者")に関するメモ
request.getheader( "参照者")訪問者のアドレスを取得します。リンクを介して現在のページにアクセスするときにのみ、前のページのアドレスを取得できます。それ以外の場合、request.getheader( "referer")の値はnullであり、現在のページがwindow.openまたは直接入力されていることもnullです。
上記は、編集者からもたらされたJavaからHTTPRequestヘッダーを取得するためのいくつかの方法(必見)の完全な内容です。それがあなたに役立ち、wulin.comをもっとサポートすることを願っています〜