Este artigo descreve a função de implementação da Web Java que salta automaticamente para a página de login após a expiração da sessão. Compartilhe -o para sua referência, como segue:
Através dos filtros, a sessão pulará automaticamente para a página de login depois que ela expirar.
Os filtros são úteis apenas em servidores compatíveis com a especificação do servlet versão 2.3. Se o seu aplicativo da Web precisar suportar servidores legados, você não poderá usar filtros.
1. Estabeleça filtros básicos
Estabelecer um filtro envolve as cinco etapas seguintes:
1) Estabeleça um Filter de sessão de classe que implementa a interface do filtro . Esta classe requer três métodos, a saber: Dofilter, Init e Destroy. O método Dofilter contém o código de filtragem principal, o método Init estabelece a operação de configuração e o método de destruição limpa.
2) Coloque o comportamento de filtragem no método Dofilter . O primeiro parâmetro do método Dofilter é o objeto ServletRequest. Este objeto fornece ao filtro acesso total às informações recebidas, incluindo dados de formulário, cookies e cabeçalhos de solicitação HTTP. O segundo parâmetro é o ServletResponse, que geralmente é ignorado em filtros simples. O último parâmetro é o filtro, conforme descrito na próxima etapa, usada para chamar uma página de servlet ou jsp.
3) Chame o método Dofilter do objeto SessionFilter . O método Dofilter da interface do filtro toma um objeto FilterChain como seu parâmetro. Ao chamar o método Dofilter desse objeto, o próximo filtro relacionado é ativado. Se nenhum outro filtro estiver associado à página do servlet ou JSP, a página do servlet ou JSP será ativada.
4) Registre os filtros para as páginas do servlet e JSP correspondentes . Use elementos de filtro e mapeamento de filtro no arquivo do descritor de implantação (web.xml).
5) Desative o servlet do ativador . Impedir que os usuários ignorem as configurações do filtro usando o URL do servlet padrão.
O código -fonte é o seguinte:
pacote com.base.filter; importar java.io.ioException; importar javax.servlet.filter; importar javax.servlet.filterchain; importar javax.servlet.filterconfig; import javax.servlet.servlet.ervException; importtleTleTlestlestlestlestrexest.; javax.servlet.http.httpServletReQuest; importar javax.servlet.http.httpServletResponse; importar javax.servlet.http.httpsession; import.base.constants.SessionKeyKenstants; import.mvC.entity.Usher.Usher.Usher.Base.Constants.SessionKeyKenstants; importação.mvC.entity.Usher.User.Usher.Base.Constants.SessionKeyKenstants; importação.mvC.entity.USER.USER.USER.Base.Constants.SessionKeyKenstantes; Filtre Destroe, geralmente liberando recursos} / ** * Alguns URLs precisam fazer login no acesso (filtro de verificação de sessão) * / public void Dofilter (servletRequest arg0, servletResponse arg1, filterchain arg2) lança iooException, servleTexception {httpSerTreQuest Solicy = (hTtStrelectRexceptle,) HttpServletResponse Response = (httpServletResponse) arg1; Session httpSession = request.getSession (); // julgue se a sessão expira se ((usuário) session.getAttribute (sessionKeyConstants.login) == null) {String errors = "Você ainda não está conectado ou a sessão expirou. Faça logon primeiro!"; request.setAttribute ("mensagem", erros); // Pule para a página de login request.getRequestDispatcher ("/login.jsp"). Forward (solicitação, resposta); } else {arg2.dofilter (solicitação, resposta); }} public void init (filterConfig arg0) lança servletexception {// inicialize a operação, leia os parâmetros de inicialização da configuração do filtro em web.xml e atenda aos requisitos que você não usa esse método}}2. Configure no arquivo de configuração web.xml
<!-Defina o tempo de expiração da sessão para 30 minutos-> <Session-Config> <session-timeout> 30 </session-timeout> </session-config> <!-Configuração do filtro de sessão Relacionado-> <filter> <filter-name> sessionfilter </filter-name> <filtro-class> com.base.filter.sessionfilter </filter-clls> <Filter-Name> sessionFilter </filter-Name> <url-pattern>/Contract/*</url-pattern> <url-Pattern>/user/*</url-pattern> <despachante> Avançar </Dispather> <!-Neste caso, se a solicitação iniciar/… ou/…… e for passada até o método avançado do método do encaminhamento do encaminhamento do método avançado do encaminhamento do encaminhamento do método do encaminhamento do encaminhamento do encaminhamento do método do encaminhamento do encaminhamento do encaminhamento do encaminhamento do método do encaminhamento do encaminhamento do dianteiro do que a reprodução do dia seguinte, o que é necessário, o que é necessário, o método do dia; -> <Pispatcher> Solicitação </sispather> </filter-Mapping>
Para obter mais informações sobre o conteúdo relacionado ao Java, consulte os tópicos deste site: "Estrutura de dados Java e tutorial de algoritmo", "Resumo dos arquivos Java e habilidades de operação de diretório", "Resumo da operação Java Dom Node Skills" e "Summary of Java Cache Opery Skills"
Espero que este artigo seja útil para a programação Java de todos.