首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

急jsp+servlert+prototype1.5+ajax返回值有关问题

2012-02-24 
急!!jsp+servlert+prototype1.5+ajax返回值问题我需要的效果是,当servlert处理完以后,test.jsp页面中ID为s

急!!jsp+servlert+prototype1.5+ajax返回值问题
我需要的效果是,当servlert处理完以后,test.jsp页面中ID为showit的DIV显示输入的结果(这只是一个测试程序,所以流程简单,请不要说可以就用JS在客户端实现)。但是我每次servlert处理完了以后,页面上还是显示数据处理,也就是说AJAX的状态没有一直没有到200.请问如何解决,很急,谢谢各位大大了!  
自己也指导servlert处理数据是无返回值的,但是就是不懂,AJAX中XMLHTTPRequest这个对象是怎么处理这样的情况的!?
问题补充:页面代码如下:  
test.jsp:  
<script   language= "JavaScript "   type= "text/JavaScript "   src= "myjs/prototype.js "> </script>  
<script   language= "JavaScript "   type= "text/JavaScript "> <!--  
//此处是我的表单处理函数本函数无错,所以不贴出  
function   setPostBody(_form){  
。。。。}  
//此处是AJAX提交函数  
function   posttest(){  
var   url   =   'Test ';//servlertname  
var   ajax   =   new   Ajax.Request(url,{  
method:   'post ',  
contentType:   'application/x-www-form-urlencoded ',  
encoding:   'UTF-8 ',  
postBody:   setPostBody($( 'mytest ')),  
onLoading:   function(){  
$( "showit ").innerHTML   =   "正在处理数据... ";  
},  
onSuccess:   function(){  
$( "showit ").innerHTML=   request.responseText;  
}  
});  
}  
--> </script>  
<form   name= "mytest "   onSubmit= "posttest();return   false; ">  
<div>  
<input   type= "text "   id= "tname "   name= "tname "/>  
<input   type= "text "   id= "tother "   name= "tother "/>  
<input   type= "submit "   id= "but "   value= "submit "/>  
</div>  
</form>  
<div   id   =   "showit "> </div>

servlert代码如下:  

package   dreamtime.dreamnews;  

import   java.io.IOException;  
import   java.io.PrintWriter;  
import   java.sql.Connection;  
import   java.sql.ResultSet;  
import   java.sql.SQLException;  
import   java.sql.Statement;  
import   java.text.SimpleDateFormat;  
import   java.util.Date;  

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

/**  
*   Servlet   implementation   class   for   Servlet:   TestServlet  
*  
*   @web.servlet  
*   name= "TestServlet "  
*   display-name= "TestServlet "  
*   description= "test "  
*  
*   @web.servlet-mapping  
*   url-pattern= "/TestServlet "  
*  
*   @web.servlet-init-param  
*   name= "getValue "  
*   value= "1 "  
*   description= "test "  
*  
*/  
public   class   TestServlet   extends   javax.servlet.http.HttpServlet   implements   javax.servlet.Servlet   {  
static   final   long   serialVersionUID   =   1L;  

/*   (non-Java-doc)  
*   @see   javax.servlet.http.HttpServlet#HttpServlet()  


*/  

public   TestServlet()   {  
super();  
}  

/*   (non-Java-doc)  
*   @see   javax.servlet.http.HttpServlet#doGet(HttpServletRequest   request,   HttpServletResponse   response)  
*/  
protected   void   doGet(HttpServletRequest   request,   HttpServletResponse   response)   throws   ServletException,   IOException   {  
//   TODO   Auto-generated   method   stub  
}  

/*   (non-Java-doc)  
*   @see   javax.servlet.http.HttpServlet#doPost(HttpServletRequest   request,   HttpServletResponse   response)  
*/  
protected   void   doPost(HttpServletRequest   request,   HttpServletResponse   response)   throws   ServletException,   IOException   {  
//   TODO   Auto-generated   method   stub  
request.setCharacterEncoding( "UTF-8 ");   //设置编码方式为GBK  
response.setCharacterEncoding( "UTF-8 ");  
response.setContentType( "text/html;   charset=UTF-8 ");  
PrintWriter   out   =   response.getWriter();  
System.out.println( "start ");  
out.println( " <p> ");  
out.println(request.getParameter( "tname "));  
out.println( " </p> ");  
out.println( " <p> ");  
out.println(request.getParameter( "tother "));  
out.println( " </p> ");  
System.out.println(request.getParameter( "tname "));  
System.out.println(request.getParameter( "tother "));  
System.out.println( "end ");  
}  

}  


[解决办法]
PrintWriter out = response.getWriter();
System.out.println( "start ");
out.println( " <p> ");
out.println(request.getParameter( "tname "));
out.println( " </p> ");
out.println( " <p> ");
out.println(request.getParameter( "tother "));
out.println( " </p> ");

偶也时初学的 不知道把 out.println 换成 out.write 可以不 "?忘高手指点!
[解决办法]
用javascript脚本操作ajax,然后你在页面上将你需要反写的字段那个div或是td中设置一个id,这样当ajax取到数据后,就可以直接往你需要反写的单元里面反写了,可以用:
document.all.div_id.innerHTML= "你得到的反写信息 ",div_id就是你那个反写单元的id。

热点排行