Selama proses pengembangan aplikasi, jika ada beberapa aplikasi, mereka biasanya akan diintegrasikan melalui portal portal. Portal ini adalah pintu masuk ke semua aplikasi. Setelah pengguna masuk ke portal dan memasuki sistem lain, ia membutuhkan masuk tunggal yang sama (SSO). Saat memasuki setiap subsistem, ia tidak perlu masuk lagi. Tentu saja, Anda dapat mengimplementasikan fungsi yang serupa melalui perangkat lunak masuk tunggal profesional, atau Anda dapat menulis token basis data sendiri, dll. Faktanya, ada metode lain yang relatif sederhana, yaitu merangkum pesan pengguna yang masuk melalui portal, masing-masing header. Verifikasi.
Beberapa metode untuk berurusan dengan header HTTP dirangkum:
Memanfaatkan httpservletrequest
impor javax.servlet.http.httpservletRequest; // ... permintaan pribadi httpservletrequest; // Dapatkan header permintaan peta pribadi <string, string> getHeadersInfo () {peta <string, string> peta = new HashMap <string, string> (); Enumeration headernames = request.getHeaderNames (); while (headernames.hasmoreElements ()) {string key = (string) headerNames.NextElement (); Nilai string = request.getHeader (key); peta.put (tombol, nilai); } return peta; }Contoh khas adalah sebagai berikut:
"header": {"host": "yihaomen.com", "accept-encoding": "gzip, mengempis", "X-forwarded-for": "66.249.xx", "X-Forwarded-Proto": "http", "pengguna-agen": "mozilla/5.0 (Google; +http://www.google.com/bot.html)", "X-Request-Start" : "1389158003923", "Accept" : "*/*", "Connection" : "close", "X-Forwarded-Port" : "80", "From" : "googlebot(at)googlebot.com"}Dapatkan agen pengguna
impor javax.servlet.http.httpservletRequest; // ... permintaan pribadi httpservletrequest; Private String getUserAgent () {return request.getHeader ("user-agent"); }Contoh khas adalah sebagai berikut:
Mozilla/5.0 (kompatibel; GoogleBot/2.1; +http: //www.google.com/bot.html)
Contoh menggunakan Spring MVC untuk mendapatkan header httpRequest
Impor java.util.enumeration; impor java.util.hashmap; impor java.util.map; impor javax.servlet.http.httpservletrequest; impor org.springframework.bean.factory.annotation.autowired; impor org.spramework.bean.factory.annotation.autowired; impor org.springframework.bean.factory.annotation.autowired; impor org.springframework.bean.factory org.springframework.web.bind.annotation.pathvariable; impor org.springframework.web.bind.annotation.Requestmapping; impor org.springframework.web.bind.annotation.restmethod; impor org.springframework.web.servlet.modelandview;@controller@requestMapping ("/situs") kelas publik Sitecontroller {@Autowired pribadi permintaan httpservletRequest pribadi; @RequestMapping (value = "/{input:.+}", method = requestMethod.get) Public ModelAndView getDomain (@PathVariable ("input") Input) {ModelAndView ModelView = new ModelAndView ("hasil"); modelview.addObject ("agen pengguna", getUserAgent ()); modelview.addObject ("header", getheadersinfo ()); Return ModelView; } // Dapatkan Agen Pengguna Private String getUserAgent () {return request.getHeader ("user-agent"); } // Dapatkan header permintaan peta pribadi <string, string> getHeadersInfo () {peta <string, string> peta = new HashMap <string, string> (); Enumeration headernames = request.getHeaderNames (); while (headernames.hasmoreElements ()) {string key = (string) headerNames.NextElement (); Nilai string = request.getHeader (key); peta.put (tombol, nilai); } return peta; }}Beberapa orang mungkin mengatakan bahwa header HTTP dapat disimulasikan, sehingga Anda dapat membangun sistem untuk menipu ini. Ya, itu benar. Jadi ketika menggunakan header HTTP untuk meneruskannya, Anda harus ingat bahwa semua permintaan harus diproses melalui portal dan diteruskan ke setiap subsistem, dan masalah ini tidak akan terjadi. Karena Portal pertama mencegat semua permintaan yang diprakarsai oleh pengguna. Jika itu adalah pengguna yang dibangun, tidak ada catatan di sesi portal dan masih akan melompat ke halaman login. Jika direkam dalam sesi protal dan ada juga catatan di header HTTP, maka itu adalah pengguna yang sah dalam subsistem, dan kemudian Anda dapat menangani logika bisnis sesuai dengan beberapa persyaratan.
JSP/JAVA Mendapatkan Contoh Informasi Header HTTP (Permintaan)
<%// header.jspout.println ("protokol:" + request.getProtocol () + "<br>"); out.println ("skema:" + request.getscheme () + "<br>"); out.println ("nama server:" + request.getServername () + "<wetbr>"; request.getServerport () + "<br>"); out.println ("Protokol:" + request.getProtocol () + "<br>"); out.println ("Info server:" + getServletConfig (). GetServletContext (). GetServerInfo () + "<br>"; request.getRemoteAddr () + "<br>"); out.println ("host jarak jauh:" + request.getRemotehost () + "<br>"); out.println ("Pengkodean karakter:" + request.getcharacterencoding () + "<br>"); out.println ("konten panjang:" "<br>"); out.println ("Jenis konten:" + request.getContentType () + "<br>"); out.println ("tipe auth:" + request.getAuthType () + "<br>"); out.println ("Metode http:" + request.getmethod (); "PATPLN (" Out.printl; request.getPathInfo () + "<br>"); out.println ("path trans:" + request.getPathTranslated () + "<br>"); out.println ("string kueri:" + request.getQueryString () + "<br>"); out.println ("Remote Pengguna:" "<br>"); out.println ("ID sesi:" + request.getRequestedSessionId () + "<br>"); out.println ("permintaan url:" + request.getRequesturl () + "<br>"); out.println ("minta uri:" + request.getrequesturi () "()" (); request.getSerVletpath () + "<br>"); out.println ("dibuat:" + session.getCreationTime () + "<br>"); out.println ("lastAccessed:" + session.getLastAccedTime () + "<br>"); out.println ("LastLastAccedTime () +" <br> "); out.println (" LastAccessed: " + Sesion.) "<br>"); out.println ("terima:" + request.getHeader ("accept") + "<br>"); out.println ("host:" + request.getheader ("host") + "<br>"); out.println ("referer:" + request.getheader ("Referensi"); "<br>); request.getHeader ("Accept-Language") + "<br>"); out.println ("Accept-encoding:" + request.getHeader ("Accept-encoding") + "<br>"); out.println ("User-agent:" + request.getHeader ("User-agent") + "<br>"); out. " "<br>"); out.println ("cookie:" + request.getheader ("cookie") + "<br>");%>Catatan tentang request.getheader ("referer")
request.getheader ("referer") Mendapat alamat pengunjung. Hanya saat mengakses halaman saat ini melalui tautan, Anda bisa mendapatkan alamat halaman sebelumnya; Jika tidak, nilai request.getHeader ("referer") adalah nol, dan halaman saat ini dibuka melalui window.open atau langsung masukkan alamat juga nol.
Di atas adalah konten lengkap dari beberapa metode (yang harus dibaca) untuk mendapatkan header httpRequest dari java yang dibawa kepada Anda oleh editor. Saya harap ini akan membantu Anda dan mendukung wulin.com lebih banyak ~