Um interceptador de permissão de login muito simples, o código específico é o seguinte:
O código a seguir é o código que herda uma vez que o FilterFilter de implementar filtragem de login:
/ ** * * @Author Geoin * @Date 2012-4-10 14:37:38 */ package com.test.spring.filter; importar java.io.ioException; importar java.io.printwriter; importar javax.servlet.filterchain; importar javax.servlet.servletexception; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; importar org.springframework.web.filter.oncheperRequestFilter; /** * Filtro de login * * @Author Geoin * @Date 2012-4-10 14:37:38 * /classe pública SessionFilter se estende uma vez que o FilterFilter { / * * * (não-javadoc) * * @see * org.springframework.web.filter.oncheperRequestilter javax.servlet.http.HttpServletRequest, * javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain) */ @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IoException {// mas String URI filtrado [] NotFilter = new String [] {"Login.html", "index.html"}; // solicitado URI String URI = request.getRequesturi (); // filtre if (uri.indexof ("background")! = -1) {// se deve filtrar o booleano dofilter = true; for (string s: notfilter) {if (uri.indexOf (s)! = -1) {// se URI contém Uri não filtrado, dofilter = false; quebrar; }} if (dofilter) {// Execute a filtragem // Obtenha a entidade do login do objeto de sessão obj = request.getSession (). getAttribute ("LoginUser"); if (null == obj) {// Se a entidade de login não existir na sessão, uma caixa pop-up avança para fazer login novamente // Defina o conjunto de caracteres de solicitação e resposta para impedir a solicitação contínua.Setcharacterencoding ("UTF-8"); Response.Setcharacterencoding ("UTF-8"); PrintWriter out = Response.getWriter (); String loginpage = "...."; StringBuilder Builder = new StringBuilder (); construtor.append ("<tipo de script =/" text/javascript/">"); construtor.append ("alert ('a página da web expira, faça o login novamente!');"); construtor.append ("window.top.location.href = '"); construtor.append (loginpage); construtor.append ("';"); construtor.append ("</sCript>"); out.print (builder.toString ()); } else {// Se a entidade de login existir na sessão, continue o filterChain.dofilter (solicitação, resposta); }} else {// Se a filtragem não for executada, continue filtraChain.dofilter (solicitação, resposta); }} else {// Se o URI não contiver plano de fundo, continue o filtroMhain.Dofilter (solicitação, resposta); }}} Depois de escrever o filtro, você precisa configurá -lo em web.xml:
<Filter> <filter-name> sessionfilter </filtr-name> <filter-class-class> com.test.spring.filter.sessionfilter </filter-class> </filtro> <filter-mapping> </filtro-name> sessionfilter </filter-name> <url-Pattern>/*</url-tattern> </filter-mapping </filter-name>
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.