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>