ajax的Servlet进不去

アナリスト 2012-10-24 12:43:35
ajax的Servlet进不去是怎么回事,配置没有问题的,之前进去过的。
js代码如下:
<script language="javascript" type="text/javascript">
var xmlHttp;
var rowc=0;
function createXMLHttp(){
if(window.XMLHttpRequest){
xmlHttp= new XMLHttpRequest() ;
} else {
xmlHttp= new ActiveXObject("Microsoft.XMLHTTP") ;
}
}
function enterfun()
{
createXMLHttp() ;
xmlHttp1.open("POST","Select_orderServlet?usr_tel="+<%= (String)session.getAttribute("zhanghao")%>);

xmlHttp1.onreadystatechange = checkUseridCallback;
xmlHttp1.send(null) ;
}
function checkUseridCallback(){
alert(xmlHttp.readyState+" "+xmlHttp1.status);
if(xmlHttp1.readyState == 4){
if(xmlHttp1.status == 200){
var text = xmlHttp.responseText ;
alert(text);

}
}
}
</script>


Select_orderServlet.java的doPost函数代码如下:
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

request.setCharacterEncoding("utf-8") ;
response.setContentType("text/html") ;
System.out.println("****************我进去了**************");//后台没输出这句话!!!!!!没进去啊!!!!
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
PrintWriter out = response.getWriter() ;
String usr_tel= request.getParameter("usr_tel");
int orderid=0;
float order_totalprice=0;
Timestamp order_time=null;
int order_item_id=0;
int product_id=0;
int quantity=0;
float unitprice=0;
String size=null;
String style=null;
String mianliao=null;
try
{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
String sql = "select * from order_of_usr where usr_tel=?" ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,usr_tel) ;
rs=pstmt.executeQuery() ;

while(rs.next())
{
orderid=rs.getInt(1);
order_totalprice=rs.getFloat(3);
order_time=rs.getTimestamp(4);
//System.out.println(orderid+" "+order_totalprice+" "+order_time);
out.print(orderid+","+order_totalprice+","+order_time+",");//本该得到的内容
}

sql = "select * from order_item where order_id=?" ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setInt(1,orderid) ;
rs=pstmt.executeQuery() ;
while(rs.next())
{
order_item_id=rs.getInt(1);
product_id=rs.getInt(3);
size=rs.getString(4);
style=rs.getString(5);
mianliao=rs.getString(6);
quantity=rs.getInt(7);
unitprice=rs.getFloat(8);
System.out.println(size+","+style+","+mianliao+","+quantity+",");
out.print(size+","+style+","+mianliao+","+quantity+",");//本该得到的内容


}
//System.out.println("*******************");
}catch(Exception e){

e.printStackTrace() ;
}finally{
try{
out.close();
conn.close() ;
pstmt.close();
}catch(Exception e){}
}
}
最后alert(text);得到的是一整个html代码,也不知道哪来的。在线等!!!
...全文
223 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangshan2048 2013-05-09
  • 打赏
  • 举报
回复
引用 3 楼 fearlesslpp 的回复:
但是我之前进去过,而且做注册时的用户账号检测也成功了,不知道ajax是不是不稳定的,我的ajax部分的代码来自于《java web 开发实战经典》作者李兴华、王月清。
请共享一下帐号检测部分的Ajax代码,谢谢
アナリスト 2012-10-24
  • 打赏
  • 举报
回复
知道了,终究还是配置问题,web.xml中应该这样配置:
<servlet>
<servlet-name>CheckServlet</servlet-name>
<servlet-class>org.lxh.ajaxdemo.CheckServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>CreateorderanditemServlet</servlet-name>
<servlet-class>org.lxh.ajaxdemo.CreateorderanditemServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>Select_orderServlet</servlet-name>
<servlet-class>org.lxh.ajaxdemo.Select_orderServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CheckServlet</servlet-name>
<url-pattern>/CheckServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>CreateorderanditemServlet</servlet-name>
<url-pattern>/CreateorderanditemServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Select_orderServlet</servlet-name>
<url-pattern>/Select_orderServlet</url-pattern>
</servlet-mapping>

而不是:
<servlet>
<servlet-name>CheckServlet</servlet-name>
<servlet-class>org.lxh.ajaxdemo.CheckServlet</servlet-class>

<servlet-name>CreateorderanditemServlet</servlet-name>
<servlet-class>org.lxh.ajaxdemo.CreateorderanditemServlet</servlet-class>

<servlet-name>Select_orderServlet</servlet-name>
<servlet-class>org.lxh.ajaxdemo.Select_orderServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CheckServlet</servlet-name>
<url-pattern>/CheckServlet</url-pattern>


<servlet-name>CreateorderanditemServlet</servlet-name>
<url-pattern>/CreateorderanditemServlet</url-pattern>


<servlet-name>Select_orderServlet</servlet-name>
<url-pattern>/Select_orderServlet</url-pattern>
</servlet-mapping>
但还是谢谢2楼的那位朋友了
アナリスト 2012-10-24
  • 打赏
  • 举报
回复
但是我之前进去过,而且做注册时的用户账号检测也成功了,不知道ajax是不是不稳定的,我的ajax部分的代码来自于《java web 开发实战经典》作者李兴华、王月清。
licip 2012-10-24
  • 打赏
  • 举报
回复
+1还有,你那个servlet有没有单独运行,做过测试,看看能不能用。[Quote=引用 2 楼 的回复:]

POST方法不是这样递交的
格式是这样:
xmlHttp.open("POST",url);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send(queryString);
queryString的格式是 xxx=xx&xx=xx
[/Quote]
hookee 2012-10-24
  • 打赏
  • 举报
回复
POST方法不是这样递交的
格式是这样:
xmlHttp.open("POST",url);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send(queryString);
queryString的格式是 xxx=xx&xx=xx

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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