首先写的是servlet的ajax。
在index.jsp中
<body>
<input type="button" οnclick="ajaxCall()" value="确定"/>
<div id="show"></div>
</body>
<script type="text/javascript">
function ajaxCall(){
$.get("AjaxServlet",null,function(data){
$('#show').html(data);
});
}
</script>
因为其中使用了jquery,所以在开始的时候要引入jquery的js文件。
在AjaxServlet的service中主要是以下代码
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("欢迎您");
}
这样便实现了点击按钮,无刷新显示了。
2:使用struts的ajax。其实和使用servlet一样,首先要完成基本的配置。在
$.get()中第一个参数改成相应action的名称。
action中的相应内容改成
package action;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private String username;
private String password;
private InputStream inputStream;
public String getUsername() {
return username;
}
public InputStream getResult(){
return inputStream;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute() throws Exception{
System.out.println("execute....");
inputStream=new ByteArrayInputStream("恭喜你,成功登录!".getBytes("utf-8"));
return SUCCESS;
}
}
这里的inputstream 就是要显示在页面上的内容。
在struts.xml中
<?xml version="1.0" encoding="gbk"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"> <struts> <constant name="struts.i18n.encoding" value="gbk"/> <constant name="struts.devMode" value="true"/> <package name="action" extends="struts-default"> <action name="login" class="action.LoginAction"> <result name="success" type="stream"> <param name="contentType">text/html</param> <param name="inputName">result</param> </result> </action> </package> </struts>
其中第二个参数设置的result 指定由action中的getResult方法返回输出结果。
总结下来区别就是,在action中加了一个inputStream,然后 使用一个getResult方法返回需要显示的信息。
在action中配置result 的type为stream类型。当然这种方法对于大量数据的传递还是有缺陷的。