Filtro

Olá gujeiros tenho algumas duvidas sobre Filtro e vou postar aqui.

Qual é a função real do filtro:

1º Não permitir q o usuário acesse as telas pela URL ou não possa passar as telas através das setas do browser?
2º Não permitir que o usuario possa usar o sistema sem logar?
3º Qual seria a verdadeira tarefa do filtro?

Li o tutorial do Guj mesmo assim não ficou claro.

Agora segue mas outra duvida:
Tenho uma classe que implementa a interface Filtro, só que ela não está fazendo nada. Esta classe já existia neste sistema que trabalho.
Ex: se eu parar o tomcat e restartar novamente ele ainda continuará logado. Sem falar q acesso o browser atravers de seta do browser e url.

Segue meu código:

[code]public class FiltroAutenticacao implements Filter {
public void destroy() {
System.out.println(“Finalizando a aplicacao web…”);
}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
	HttpServletRequest httpRequest = (HttpServletRequest) request;

	String temp = httpRequest.getRequestURL().substring(httpRequest.getRequestURL().toString().toUpperCase().indexOf("NOMESISTEMA"));
	String requestedURL = temp.substring(temp.indexOf("/") + 1);

	if (requestedURL.indexOf("css/") == 0
			|| requestedURL.indexOf("js/") == 0
			|| requestedURL.indexOf("img/") == 0
			|| requestedURL.indexOf("images/") == 0
			|| requestedURL.indexOf("usuarioautentica") == 0
			|| requestedURL.equals("usuariologar")) {

		chain.doFilter(request, response);
		return;
	} else {
		if (httpRequest.getSession() != null
				&& httpRequest.getSession().getAttribute("idUsuario") != null) {
			if (requestedURL.equals("index.jsp") || requestedURL.indexOf("login") == 0) {
				chain.doFilter(request, response);
				return;
			}

			/**
			 * ************** A U T E N T I C A Ç Ã O ********************
			 * Valida a autorização de execução dessa classe entrada: A
			 * sessão gerada pelo servlet e o nome do servlet ou método ex:
			 * ..servletCadastrado("nome_da_sessao","label_de_controle")
			 */
			Connection con = null;
			try {
				con = Pilha.getConexao();
			} catch (SQLException e) {
				return;
			}

			String naoautorizado = "/naoautorizado";
			boolean autorizado = false;

			try {
				autorizado = PerfilServletDAO.obterInstancia().servletCadastrado(httpRequest.getSession().getAttribute("sistema").toString(),
								con, httpRequest.getSession().getAttribute("perfil").toString(),httpRequest.getServletPath().substring(1).trim());

				con.close();
			} catch (SQLException e) {
				Log.getInstance().doLog(
						this.getClass().getName() + ": " + e.getMessage());
			}

			if (!autorizado) {
				RequestDispatcher naoAutorizado = request.getRequestDispatcher(naoautorizado);
				naoAutorizado.forward(request, response);
				return;
			} else {
				chain.doFilter(request, response);
			}

			/************* F I M A U T E N T I C A Ç Ã O *********************/
		} else {
			if (requestedURL.length() > 0 && requestedURL.indexOf("login") == 0) {
				httpRequest.setAttribute("mensagem", "Usuário não autenticado ou sessão expirada.");
			}

			httpRequest.getRequestDispatcher("/login.jsp").forward(request, response);
		}
	}
}

public void init(FilterConfig arg0) throws ServletException {
	System.out.println("Inicializando a aplicacao web VEPCNJ...");
}[/code]

Também fiquei com duvida sobre como deve ficar meu web.xml.

Fiz da seguinte forma:

[code]

FiltroAutenticacao
tj.api.autenticacao.filtro.FiltroAutenticacao

<filter-mapping>
	<filter-name>FiltroAutenticacao</filter-name>
	<url-pattern>/usuariologar</url-pattern>
</filter-mapping>[/code]