Durante o processo de desenvolvimento de aplicativos, se houver vários aplicativos, eles geralmente serão integrados por meio de um portal do portal. Este portal é a entrada para todos os aplicativos. Depois que o usuário faz login no portal e entra em outro sistema, ele precisa de um sinal único semelhante (SSO). Ao entrar em cada subsistema, ele ou ela não precisa fazer login novamente. Obviamente, você pode implementar funções semelhantes por meio de software profissional único, ou pode escrever tokens de banco de dados sozinho, etc. De fato, há outro método relativamente simples, que é para encapsular as mensagens do usuário registrado através do portal, escrevê-lo para o cabeçalho HTTP e depois a solicitação a cada subsistema e a cada subsistema, e cada subsistema é um subsistema de http e, em seguida.
Vários métodos para lidar com o cabeçalho HTTP estão resumidos:
Utilize httpServletRequest
importar javax.servlet.http.httpServletRequest; // ... Private HttpServletRequest Pedido; // Obtenha o mapa privado dos cabeçalhos da solicitação <string, string> getheaderSInfo () {map <string, string> map = new hashmap <string, string> (); Nomes de enumeração de enumeração = request.getheaderNames (); while (headernames.hasMoreElements ()) {string key = (string) headernames.nextElement (); String value = request.getheader (chave); map.put (chave, valor); } mapa de retorno; }Um exemplo típico é o seguinte:
"Cabeçalhos": {"host": "yihaomen.com", "aceitar o codificação": "gzip, deflate", "x-forwarded for": "66.249.xx", "x-forwarded-proto": "http", "user-agent": "mozilla/5.0 (compatiber; +http: //www.google.com/bot.html) "," x-request-start ":" 1389158003923 "," aceitar ":"*/*"," conexão ":" fechar "," x-forwarded-port ":" 80 "," de "do Google": no Google ""bot", "".BOT.COMBOT" ".Obtenha agente de usuário
importar javax.servlet.http.httpServletRequest; // ... Private HttpServletRequest Pedido; private string getUserAgent () {return request.getheader ("user-agent"); }Um exemplo típico é o seguinte:
Mozilla/5.0 (compatível; googlebot/2.1; +http: //www.google.com/bot.html)
Exemplo de usar o MVC da primavera para obter o cabeçalho HttPrequest
importar java.util.enumeration; importar java.util.hashmap; importar java.util.map; importar javax.servlet.http.httpServletRequest; importação org.springframework.beans.actory.annotation.outowired; org.springframework.web.bind.annotation.pathvariable; importar org.springframework.web.bind.annotation.RequestMapping; importar org.springframework.web.bind.annotation.requestmethod; import org.springframework.web.servlet.modelandView;@controlador@requestmapping ("/site") classe pública SitEController {@aUTowired Private HttpServleTrequest solicitação; @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 ()); retornar modelView; } // Obter agente do usuário private string getUserAgent () {return request.getheader ("user-agent"); } // Obtenha o mapa privado dos cabeçalhos da solicitação <string, string> getheaderSinfo () {map <string, string> map = new hashmap <string, string> (); Nomes de enumeração de enumeração = request.getheaderNames (); while (headernames.hasMoreElements ()) {string key = (string) headernames.nextElement (); String value = request.getheader (chave); map.put (chave, valor); } mapa de retorno; }}Algumas pessoas podem dizer que o cabeçalho HTTP pode ser simulado, para que você possa construir um sistema para enganá -los. Sim, isso é verdade. Portanto, ao usar o cabeçalho HTTP para passar, você deve lembrar que todas as solicitações devem ser processadas através do portal e encaminhadas para cada subsistema, e esse problema não ocorrerá. Porque o Portal intercepta primeiro todas as solicitações iniciadas pelo usuário. Se for um usuário construído, não há registro na sessão do portal e ainda pulará para a página de login. Se estiver registrado na sessão do Protal e também houver registros no cabeçalho HTTP, é um usuário legal no subsistema e você pode lidar com a lógica de negócios de acordo com alguns requisitos.
JSP/Java obtém informações de cabeçalho HTTP (solicitação)
<%// header.jspout.println ("protocolo:" + request.getProtocol () + "<br>"); out.println ("scheme:" + request.getscheme () + "<br>"); out.println ("nome do servidor" +.getServername () "); request.getServerport () + "<br>"); out.println ("protocolo:" + request.getProtocol () + "<br>"); out.println ("servidor info:" + getServletConfig (). request.getRemoTeaddr () + "<br>"); out.println ("host remoto:" + request.getRemoteHost () + "<br>"); out.println ("Codificação de caracteres:" + request.getCharacterencoding () + "<brGer>); "<br>"); out.println ("Tipo de conteúdo:" + request.getContentType () + "<br>"); out.println ("Tipo de autenticação:" + request.getauthtype () + "<br>"); request.getPathInfo () + "<br>"); out.println ("caminho trans:" + request.getPathtranslated () + "<br>"); out.println ("Query string:" + request.getQuerystring () + "<br>); "<br>"); out.println ("ID da sessão:" + request.getRequestedSessionId () + "<br>"); out.println ("request url:" + request.getRequesturl () + "<br>"); out.println ("request:" +. request.getServletPath () + "<br>"); out.println ("Criado:" + session.getCreationTime () + "<br>"); out.println ("lastcesed:" + session.getLastAccedTime () + "<br>"); out.println ("Lastcess:" +. " "<br>"); out.println ("Aceite:" + request.getheader ("aceite") + "<br>"); out.println ("host:" + request.getheader ("host") + "<br>"); request.getheader ("Aceitar-idioma") + "<br>"); out.println ("aceitar-se-codificação:" + request.getheader ("aceitar-codificação") + "<br>"); out.println ("user-agent:" + requetheader ("user-agent") + " request.getheader ("conexão") + "<br>"); out.println ("cookie:" + request.getheader ("cookie") + "<br>");%>Notas sobre request.getheader ("referente")
request.getheader ("referente") recebe o endereço do visitante. Somente ao acessar a página atual através de um link, você pode obter o endereço da página anterior; Caso contrário, o valor do request.GETHEADER ("Referent") é nulo e a página atual é aberta através da janela. Open ou digite diretamente o endereço também é nulo.
O acima exposto é o conteúdo completo de vários métodos (leitura obrigatória) para obter o cabeçalho HttPrequest do Java trazido a você pelo editor. Espero que seja útil para você e apoiar mais wulin.com ~