ajax\servlet\struts2如何结合起来使用
我用ajax向servlet发送数据时写了个过滤器,用于向servlet跳转,但servlet接受到的数据总是null
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)req;
String target = request.getRequestURI();
System.out.println(target);
// if(target.indexOf("?")>=0){
// target=target.substring(target.lastIndexOf("/")+1,target.indexOf("?") );
// }else{
target=target.substring(target.lastIndexOf("/")+1);
// }
System.out.println(target);
if(this.includes.contains(target)){
RequestDispatcher rdsp = request.getRequestDispatcher(target);
rdsp.forward(req, resp);
}
else
chain.doFilter(req, resp);
需要进行重定向
重定项意思是重新进行请求,第一次请求,容器判断你的请求是什么类型的,判断是否是需要重定向~首先说非重定向,即内部跳转,语句是request.getRequestDispartcher("index.jsp").Forword(request,response);
这样的内部跳转是在你的容器内完成的,可以完成将请求激散送到另燃启一个页面去,
而如皮铅如果不需要2界面传值的时候,就是重定向了 代码是response.SendRedirect("index.jsp");
这样的意思是,当语句碰到你的请求后,给你一个响应,响应的内容是让再去一个响应,而这个响应所找的地方就是index.jsp了~ 特别的区别就是前者是一次请求, 而后者是2次请求,
你是想用过滤器控制servlet跳转? 那你必须知道发送的JSP页面是哪个吧? 那你必须把那个家伙发过来。。。宏郑前。。而不是这样蔽清丛首。。。
你说清楚点要干什么的话,可以给你说具体点。
总之,把来源的JSP发送到过滤器。
我试试你的代码,没有问题,jsp,css,js,图片的请求都能获得。
不知道你的伍森芹null出现在哪一行代春丛码。其他部分的代码你也没贴出来不好判断。
总的来说我觉得有以下几种可能性,你可以检查一下。
1、web.xml的配置。
2、filter的监控范围限制腔毕。
3、Ajax使用的是post还是get
再有就是代码的问题了,你给的代码太少没法判断了。。。
回答的都很好。。哈哈