欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

web工程ajax访问servlet一直报404错误

程序员文章站 2022-06-13 22:15:18
...

话不多说,jsp页面中的代码如下:

 

CategoryServlet的代码如下:

package cn.itcast.store.web.servlet;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.itcast.store.domain.Category;
import cn.itcast.store.service.CategoryService;
import cn.itcast.store.service.serviceImp.CategoryServiceImp;
import cn.itcast.store.web.base.BaseServlet;
import net.sf.json.JSONArray;

public class CategoryServlet extends BaseServlet {
	
	public String findAllCats(HttpServletRequest request, HttpServletResponse response) throws Exception{
				//调用业务层获取全部分类数据
				CategoryService categoryService=new CategoryServiceImp();
				List<Category> list = categoryService.getAllCats();
				//将集合list转换为json
				String jsonStr=JSONArray.fromObject(list).toString();
				//将全部分类信息响应到客户端
				//告诉浏览器响应的是json格式
				response.setContentType("application/json;charset=utf-8");
			    response.getWriter().print(jsonStr);
				return null;
		
	}

}

CategoryServlet中做的是很简单:

1.调用业务层(service)获取全部分类信息,为一个List对象

2.将List对象转换为Json对象

3.设置响应的格式,将json格式的对象写进response对象中。

在浏览器上运行起来始终报404这个错误,方法名和路径均正确,debug进去后连参数都能显示出来,运行到$.post(url,function(data){这一行直接跳到最底行,说明Servlet中方法没有调用成功。页面如下:

web工程ajax访问servlet一直报404错误

 

web工程ajax访问servlet一直报404错误

在CategoryServlet中打一下断点发现压根就没进去该方法。突然想起若要访问这个路径,必须在web.xml中先进行配置。

 <servlet-mapping>
    <servlet-name>UserServlet</servlet-name>
    <url-pattern>/UserServlet</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>IndexServlet</display-name>
    <servlet-name>IndexServlet</servlet-name>
    <servlet-class>cn.itcast.store.web.servlet.IndexServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>IndexServlet</servlet-name>
    <url-pattern>/IndexServlet</url-pattern>
  </servlet-mapping>

果然没有进行配置,加入下面代码,问题解决。