Dúvida sobre filtro de pós-processamento!

0 respostas
andersonrc

Olá pessoal,

tô com a seguinte dúvida: como fazer um filtro de pós-processamento que recebe uma string e a coloca toda em letras maiúsculas e que adicione no servlet para que seja exibido.

Eu consegui fazer essa questão, mas com filtro de pré-processamento.

Então vem a dúvida: o filtro de pós-processamento tem o chain.doFilter(req, resp) e pelo que entendi, é aí que o filtro passa para o servlet, abaixo desse chain.doFilter() tem o código do filtro. Então como faço pra que a string seja enviada para que o servlet a exiba. Até agora só tá exibindo null.

Vou deixar os códigos abaixo para que vcs entendam melhor. O código do filtro que está comentado é de filtro de pré-processamento que está funcionando perfeitamente. Mas como faço pra dar certo com filtro de pós-processamento?

código do filtro

public class PalavraFilter implements Filter {

	@SuppressWarnings("unused")
	private FilterConfig fc;

	public void destroy() {
		this.fc = null;
	}

	/*public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

		HttpServletRequest req = (HttpServletRequest) request;
		HttpServletResponse resp = (HttpServletResponse) response;

		String word = "palavra";	
		word = word.toUpperCase();

		request.setAttribute("word", word);

		if (word != null) {
			chain.doFilter(req, resp);
		}

	}*/

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

		HttpServletRequest req = (HttpServletRequest) request;
		HttpServletResponse resp = (HttpServletResponse) response;
		
		chain.doFilter(req, resp);

		String word = "palavra";	
		word = word.toUpperCase();
		
		request.setAttribute("word", word);

	}

	public void init(FilterConfig fc) throws ServletException {
		this.fc = fc;
	}

}

código do servlet

public class TesteServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		
		String s = (String) request.getAttribute("word");
		
		out.println(s);
		
	}

}

xml

<filter>
		<filter-name>PalavraFilter</filter-name>
		<filter-class>br.anderson.filtro.PalavraFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>PalavraFilter</filter-name>
		<servlet-name>Teste</servlet-name>
	</filter-mapping>
	<servlet>
		<servlet-name>Teste</servlet-name>
		<servlet-class>
		br.anderson.servlet.TesteServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>Teste</servlet-name>
		<url-pattern>/palavra.java</url-pattern>
	</servlet-mapping>
Criado 7 de dezembro de 2010
Respostas 0
Participantes 1