struts的ajax与servlet的ajax比较
首先写的是servlet的ajax。
在index.jsp中
<body> <input type="button" onclick="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类型。当然这种方法对于大量数据的传递还是有缺陷的。
相关推荐
kentrl 2020-11-10
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo
ajaxyan 2020-11-09
zndy0 2020-11-03
学留痕 2020-09-20
Richardxx 2020-11-09
learningever 2020-09-19
chongxiaocheng 2020-08-16
ajaxhe 2020-08-16
lyqdanang 2020-08-16
curiousL 2020-08-03
TONIYH 2020-07-22
时光如瑾雨微凉 2020-07-19
83510998 2020-07-18
坚持着执着 2020-07-16
jiaguoquan00 2020-07-07
李永毅 2020-07-05
坚持着执着 2020-07-05