关于前台获取不到后台传来值的问题

IT新生 2014-10-23 10:39:48
我要做的事点击按钮,不刷新页面,将页面上姓名卡号插入值显示
现在问题是后台过来的值前台获取不到,打印check值时一大段的404代码
js代码
function readCard(){//按钮点击方法

/* document.getElementById("name").value="人人";
document.getElementById("idcode").value="3222222222222"; */

/* ajax(); */

var url = "validate.do?id="+1;
if(window.XMLHttpRequest){
req = new XMLHttpRequest();
}else if(window.ActiveXObject){
req = new ActiveXObject("Microsort.XMLHTTP");
}
req.open("GET",url,true);
req.onreadystatechange = callback;
req.send(null);
};

function callback(){
if(req.readyState == 4 && req.status ==200){
var check = req.responseText;
/* document.getElementById("name").value=${registration.id}; */
document.getElementById("idcode").value=check;
}
}
java代码
public class ReturnName extends HttpServlet{


public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
int a =1111;
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
//req.setAttribute("namecode", "好人");
out.write(a);
}

public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}

xml配置
<servlet>
<servlet-name>DoAjaxServlet</servlet-name>
<servlet-class>com.zyiot.gdbms.modules.bms.web.ReturnName</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DoAjaxServlet</servlet-name>
<url-pattern>/validate.do</url-pattern>
</servlet-mapping>
...全文
602 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
kunkunqian 2014-10-24
  • 打赏
  • 举报
回复
IT新生 2014-10-23
  • 打赏
  • 举报
回复
引用 10 楼 shixitong 的回复:
引用 9 楼 tianqinfeng2 的回复:
[quote=引用 8 楼 shixitong 的回复:] [quote=引用 7 楼 tianqinfeng2 的回复:] [quote=引用 5 楼 shixitong 的回复:] [quote=引用 4 楼 tianqinfeng2 的回复:] [quote=引用 3 楼 shixitong 的回复:] [quote=引用 2 楼 tianqinfeng2 的回复:] [quote=引用 1 楼 shixitong 的回复:] 把check打印出来看看,或这个截图也可以
就是这样子
后台的doGet方法还执行了?[/quote] 刚debug了下,后台的doGet没有进得去,这是什么原因的,还有doget方法没进得去,为什么readyState状态值也能到4[/quote] 那可能你访问的那个servlet路径有问题,你把路径写全看看 比如http……/你的serlvet在浏览器里执行下看还能正常调用? [/quote] 这样写路径是访问不到,是我程序里面哪儿写错了吗 RrturnName的路径[/quote] 去掉a,应该是http//……项目名/你的serlvet[/quote] 去掉a能够访问到,也进到doget方法里了,这个是直接访问路径的,那么我在项目里面,点击按钮不刷新那个页面,直接从后台获得数据传到前台,赋给姓名,应该要怎么修改我的代码呢?求高手指导指导[/quote] 还是用你原来的代码,只是把var url = "validate.do?id="+1;这个url改下,相对路径或者绝对路径都可以 比如var url=“http:……/你的servlet?id=”+1 也可以用相对路径(我不清楚你的目录层次不好写)[/quote] 恩,这样可以的,谢啦,我下午将目录层次发你,你帮我看下怎样写相对路径
shixitong 2014-10-23
  • 打赏
  • 举报
回复
引用 9 楼 tianqinfeng2 的回复:
引用 8 楼 shixitong 的回复:
[quote=引用 7 楼 tianqinfeng2 的回复:] [quote=引用 5 楼 shixitong 的回复:] [quote=引用 4 楼 tianqinfeng2 的回复:] [quote=引用 3 楼 shixitong 的回复:] [quote=引用 2 楼 tianqinfeng2 的回复:] [quote=引用 1 楼 shixitong 的回复:] 把check打印出来看看,或这个截图也可以
就是这样子
后台的doGet方法还执行了?[/quote] 刚debug了下,后台的doGet没有进得去,这是什么原因的,还有doget方法没进得去,为什么readyState状态值也能到4[/quote] 那可能你访问的那个servlet路径有问题,你把路径写全看看 比如http……/你的serlvet在浏览器里执行下看还能正常调用? [/quote] 这样写路径是访问不到,是我程序里面哪儿写错了吗 RrturnName的路径[/quote] 去掉a,应该是http//……项目名/你的serlvet[/quote] 去掉a能够访问到,也进到doget方法里了,这个是直接访问路径的,那么我在项目里面,点击按钮不刷新那个页面,直接从后台获得数据传到前台,赋给姓名,应该要怎么修改我的代码呢?求高手指导指导[/quote] 还是用你原来的代码,只是把var url = "validate.do?id="+1;这个url改下,相对路径或者绝对路径都可以 比如var url=“http:……/你的servlet?id=”+1 也可以用相对路径(我不清楚你的目录层次不好写)
IT新生 2014-10-23
  • 打赏
  • 举报
回复
引用 8 楼 shixitong 的回复:
引用 7 楼 tianqinfeng2 的回复:
[quote=引用 5 楼 shixitong 的回复:] [quote=引用 4 楼 tianqinfeng2 的回复:] [quote=引用 3 楼 shixitong 的回复:] [quote=引用 2 楼 tianqinfeng2 的回复:] [quote=引用 1 楼 shixitong 的回复:] 把check打印出来看看,或这个截图也可以
就是这样子
后台的doGet方法还执行了?[/quote] 刚debug了下,后台的doGet没有进得去,这是什么原因的,还有doget方法没进得去,为什么readyState状态值也能到4[/quote] 那可能你访问的那个servlet路径有问题,你把路径写全看看 比如http……/你的serlvet在浏览器里执行下看还能正常调用? [/quote] 这样写路径是访问不到,是我程序里面哪儿写错了吗 RrturnName的路径[/quote] 去掉a,应该是http//……项目名/你的serlvet[/quote] 去掉a能够访问到,也进到doget方法里了,这个是直接访问路径的,那么我在项目里面,点击按钮不刷新那个页面,直接从后台获得数据传到前台,赋给姓名,应该要怎么修改我的代码呢?求高手指导指导
shixitong 2014-10-23
  • 打赏
  • 举报
回复
引用 7 楼 tianqinfeng2 的回复:
引用 5 楼 shixitong 的回复:
[quote=引用 4 楼 tianqinfeng2 的回复:] [quote=引用 3 楼 shixitong 的回复:] [quote=引用 2 楼 tianqinfeng2 的回复:] [quote=引用 1 楼 shixitong 的回复:] 把check打印出来看看,或这个截图也可以
就是这样子
后台的doGet方法还执行了?[/quote] 刚debug了下,后台的doGet没有进得去,这是什么原因的,还有doget方法没进得去,为什么readyState状态值也能到4[/quote] 那可能你访问的那个servlet路径有问题,你把路径写全看看 比如http……/你的serlvet在浏览器里执行下看还能正常调用? [/quote] 这样写路径是访问不到,是我程序里面哪儿写错了吗 RrturnName的路径[/quote] 去掉a,应该是http//……项目名/你的serlvet
IT新生 2014-10-23
  • 打赏
  • 举报
回复
引用 5 楼 shixitong 的回复:
引用 4 楼 tianqinfeng2 的回复:
[quote=引用 3 楼 shixitong 的回复:]
[quote=引用 2 楼 tianqinfeng2 的回复:]
[quote=引用 1 楼 shixitong 的回复:]
把check打印出来看看,或这个截图也可以
就是这样子

后台的doGet方法还执行了?[/quote]
刚debug了下,后台的doGet没有进得去,这是什么原因的,还有doget方法没进得去,为什么readyState状态值也能到4[/quote]
那可能你访问的那个servlet路径有问题,你把路径写全看看
比如http……/你的serlvet在浏览器里执行下看还能正常调用?
[/quote]

这样写路径是访问不到,是我程序里面哪儿写错了吗
RrturnName的路径
tony4geek 2014-10-23
  • 打赏
  • 举报
回复
应该是路径的问题。。
shixitong 2014-10-23
  • 打赏
  • 举报
回复
引用 4 楼 tianqinfeng2 的回复:
引用 3 楼 shixitong 的回复:
[quote=引用 2 楼 tianqinfeng2 的回复:] [quote=引用 1 楼 shixitong 的回复:] 把check打印出来看看,或这个截图也可以
就是这样子
后台的doGet方法还执行了?[/quote] 刚debug了下,后台的doGet没有进得去,这是什么原因的,还有doget方法没进得去,为什么readyState状态值也能到4[/quote] 那可能你访问的那个servlet路径有问题,你把路径写全看看 比如http……/你的serlvet在浏览器里执行下看还能正常调用?
IT新生 2014-10-23
  • 打赏
  • 举报
回复
引用 3 楼 shixitong 的回复:
引用 2 楼 tianqinfeng2 的回复:
[quote=引用 1 楼 shixitong 的回复:] 把check打印出来看看,或这个截图也可以
就是这样子
后台的doGet方法还执行了?[/quote] 刚debug了下,后台的doGet没有进得去,这是什么原因的,还有doget方法没进得去,为什么readyState状态值也能到4
shixitong 2014-10-23
  • 打赏
  • 举报
回复
引用 2 楼 tianqinfeng2 的回复:
引用 1 楼 shixitong 的回复:
把check打印出来看看,或这个截图也可以
就是这样子
后台的doGet方法还执行了?
IT新生 2014-10-23
  • 打赏
  • 举报
回复
引用 1 楼 shixitong 的回复:
把check打印出来看看,或这个截图也可以
就是这样子
shixitong 2014-10-23
  • 打赏
  • 举报
回复
把check打印出来看看,或这个截图也可以
IT新生 2014-10-23
  • 打赏
  • 举报
回复
引用 19 楼 shixitong 的回复:
[quote=引用 18 楼 tianqinfeng2 的回复:] [quote=引用 17 楼 shixitong 的回复:] 那现在打印出来的是什么
打印出来是空的。。[/quote] 清除下缓存,然后换个其他的值打印下看看情况(比如out.write("sssssssssssssss")) 还有out用完后,把out.close();加上[/quote] 解决了,是类型问题,我定义的是个int型的,多谢多谢了
shixitong 2014-10-23
  • 打赏
  • 举报
回复
引用 18 楼 tianqinfeng2 的回复:
[quote=引用 17 楼 shixitong 的回复:] 那现在打印出来的是什么
打印出来是空的。。[/quote] 清除下缓存,然后换个其他的值打印下看看情况(比如out.write("sssssssssssssss")) 还有out用完后,把out.close();加上
IT新生 2014-10-23
  • 打赏
  • 举报
回复
引用 17 楼 shixitong 的回复:
那现在打印出来的是什么


打印出来是空的。。
shixitong 2014-10-23
  • 打赏
  • 举报
回复
那现在打印出来的是什么
IT新生 2014-10-23
  • 打赏
  • 举报
回复
引用 15 楼 shixitong 的回复:
[quote=引用 14 楼 tianqinfeng2 的回复:] [quote=引用 13 楼 shixitong 的回复:] 不懂什么意思?
我后台out.print一个0,前台用responseText不就应该是0嘛,为什么接收到的不是0[/quote] 贴下代码[/quote] 后台 public class ReturnName extends HttpServlet{ public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { int a = 0; resp.setContentType("text/html;charset=UTF-8"); PrintWriter out = resp.getWriter(); // req.getSession().setAttribute("namecode", "好人"); out.write(a); } public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } } 前台 function callback(){ if(req.readyState == 4 && req.status ==200){ var check = req.responseText; /* document.getElementById("name").value=${registration.id}; */ document.getElementById("idcode").value=check; } } check打印出来不是0
shixitong 2014-10-23
  • 打赏
  • 举报
回复
引用 14 楼 tianqinfeng2 的回复:
[quote=引用 13 楼 shixitong 的回复:] 不懂什么意思?
我后台out.print一个0,前台用responseText不就应该是0嘛,为什么接收到的不是0[/quote] 贴下代码
IT新生 2014-10-23
  • 打赏
  • 举报
回复
引用 13 楼 shixitong 的回复:
不懂什么意思?
我后台out.print一个0,前台用responseText不就应该是0嘛,为什么接收到的不是0
shixitong 2014-10-23
  • 打赏
  • 举报
回复
不懂什么意思?
加载更多回复(1)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧