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中方法没有调用成功。页面如下:
在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>
果然没有进行配置,加入下面代码,问题解决。