Trong ứng dụng trò chuyện của tôi, tôi đang có năm servlet.I cần phải áp dụng bộ lọc cho một servlet đơn.Làm cách nào để áp dụng bộ lọc cho một servlet cụ thể?
lọc của tôi là,
package com.tps.flexchat.action;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* Servlet Filter implementation class EncodingFilter
*/
public class EncodingFilter implements Filter {
private String encoding = "UTF-8";
private FilterConfig filterConfig;
/**
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
*/
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
/**
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest req, ServletResponse resp,FilterChain chain) throws IOException, ServletException {
resp.setCharacterEncoding("encoding");
resp.setContentType("encoding");
req.setCharacterEncoding(encoding);
chain.doFilter(req, resp);
System.out.println("filter -------> :"+encoding);
}
/**
* @see javax.servlet.Filter#destroy()
*/
public void destroy() {
}
}
Các bản đồ trong web.xml sẽ
<filter>
<display-name>EncodingFilter</display-name>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.tps.flexchat.action.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
tôi cần áp dụng các bộ lọc để EncodingFilter SendMessageAction chỉ servlet này,
package com.tps.flexchat.action;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.genesyslab.platform.webmedia.protocol.FlexChatProtocol;
import com.tps.flexchat.Request.SendMessage;
import com.tps.flexchat.info.ApplicationInfo;
import com.tps.flexchat.info.CustomerInfo;
public class SendMessageAction extends HttpServlet {
private static final long serialVersionUID = 1L;
private String msg;
private String seckey;
private String uid;
private String sessionId;
private int counter;
private FlexChatProtocol protocol = null;
private SendMessage message;
public SendMessageAction() {
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
msg = request.getParameter("message");
seckey = request.getParameter("securekey");
uid = request.getParameter("userId");
sessionId = request.getParameter("sessionId");
counter = 1;
protocol = ApplicationInfo.flexProtocol;
message = new SendMessage();
message.send(msg, seckey, uid, sessionId, counter, protocol);
CustomerInfo customer = ApplicationInfo.customerDetails.get(uid);
out.print(customer.getMessage());
}
}
Cảm ơn trước ....
Tại sao không áp dụng cùng một con đường để lọc của bạn như Servlet của bạn? –
Cảm ơn bạn đã trả lời ... Bạn có thể cho tôi mã không? –
Đường dẫn servlet của bạn sẽ có trong web.xml, giống như sau: Servlet servlet-name>/path/ url-pattern> servlet-mapping> –