手机
当前位置:查字典教程网 >编程开发 >JSP教程 >ajax+jsp草稿自动保存的实现代码
ajax+jsp草稿自动保存的实现代码
摘要:一、表单部分(index.html)首先是表单填写页面,用一个ID为AutoSaveMsg的DIV来显示返回信息,并且用一个ID为Draft...

一、表单部分(index.html)

首先是表单填写页面,用一个ID为AutoSaveMsg的DIV来显示返回信息,并且用一个ID为Draft_AutoSave的CheckBox来确定是否进行自动保存,然后将Textarea的ID命名为message。同时为了应对多用户同时使用的需要,加上用户名,每个用户的草稿分开保存。为了说明方便,这里把一些修饰性的东西去掉,这样看起来比较明了

<h2>AJAX应用之草稿自动保存</h2><br/>

<>

用户名:

<inputtype="text"name="memName"id="memName"

size="20"value="NONAME"disabled="true"/>

<>

<inputonclick="SetAutoSave();"type="checkbox"id="Draft_AutoSave"value="1"checked="true"/>自动保存?

<br/><br/>

内容:

<textareacols=40rows=8id="message">你编辑的内容将被自动保存,以便恢复</textarea><br/><br/>

<>

<divid="AutoSaveMsg"></div><br/>

<inputtype="submit"onclick="Save();"value="Save"/>

<>

<inputtype="button"onclick="AutoSaveRestore();"value="Restore"/>

</div>

</div>

<>

|<>

<scripttype="text/javascript"src="ajaxrequest.js"></script>

<>

<scripttype="text/javascript"src="autosave.js"></script>

二、自动保存代码(autosave.jsp):

//首先设置全局变量

//要保存的内容对象FormContent

varFormContent;

//显示返回信息的对象

varAutoSaveMsg=document.getElementById("AutoSaveMsg");

//用户名

varmemName=document.getElementById("memName").value;

//自动保存时间间隔

varAutoSaveTime=10000;

//计时器对象

varAutoSaveTimer;

//首先设置一次自动保存状态

SetAutoSave();

//自动保存函数

functionAutoSave(){

FormContent=document.getElementById("message");

//如果内容或用户名为空,则不进行处理,直接返回

if(!FormContent.value||!memName)return;

//创建AJAXRequest对象

varajaxobj=newAJAXRequest;

ajaxobj.url="autosave.jsp";

ajaxobj.content="action=AutoSave&memname="+memName+"&postcontent="+FormContent.value;

ajaxobj.callback=function(xmlObj){

//显示反馈信息

AutoSaveMsg.innerHTML=xmlObj.responseText;

}

ajaxobj.send();

}

//设置自动保存状态函数

functionSetAutoSave(){

//是否自动保存?

if(document.getElementById("Draft_AutoSave").checked==true)

//是,设置计时器

AutoSaveTimer=setInterval("AutoSave()",AutoSaveTime);

else

//否,清除计时器

clearInterval(AutoSaveTimer);

}

functionAutoSaveRestore(){//恢复最后保存的草稿

AutoSaveMsg.innerHTML="正在恢复,请稍候……"

FormContent=document.getElementById("message");

//如果用户名为空,则不进行处理,直接返回

if(!memName)return;

//创建AJAXRequest对象

varajaxobj=newAJAXRequest;

ajaxobj.url="autosave.jsp";

ajaxobj.content="action=Restore&memname="+memName;

ajaxobj.callback=function(xmlObj){

//显示反馈信息

if(xmlObj.responseText!=""){

//恢复草稿

vars=xmlObj.responseText.replace(/^[n|rn]*|[n|rn]*$/g,'');//去掉首尾空行

FormContent.innerText=s;

//提示用户恢复成功

AutoSaveMsg.innerHTML="恢复成功";

}

}

ajaxobj.send();

}

functionSave(){//将内容保存至数据库,没有完成.

FormContent=document.getElementById("message");

//如果内容或用户名为空,则不进行处理,直接返回

if(!FormContent.value||!memName)return;

//创建AJAXRequest对象

varajaxobj=newAJAXRequest;

ajaxobj.url="autosave.jsp";

ajaxobj.content="action=Save&memname="+memName+"&postcontent="+FormContent.value;

ajaxobj.callback=function(xmlObj){

//显示反馈信息

AutoSaveMsg.innerHTML=xmlObj.responseText;

}

ajaxobj.send();

}

三、最后是autosave.jsp,用于在后台保存草稿:

程序代码:

<%@pagecontentType="text/html;charset=gb2312"%>

<%@pageimport="java.util.*"%>

<%@pageimport="java.io.*"%>

<%

StringPostContent,memName,action;

Stringfilename;

Filef;

FileWriterfw;

action=request.getParameter("action");//获取操作,是保存草稿还是恢复草稿

//获取用户名

memName=request.getParameter("memname");

//获取草稿内容

PostContent=request.getParameter("postcontent");

filename=memName+".txt";//保存草稿的文件

filename=request.getRealPath("/temp/"+filename);

if(action.equals("Save")||action.equals("AutoSave")){//这里两个动作合并了,保存到数据库的代码没有写

f=newFile(filename);

if(!f.exists())//如果文件不存,则建立

{

f.createNewFile();

}

fw=newFileWriter(filename);//建立FileWrite对象,并设定由fw对象变量引用

PostContent=newString(PostContent.getBytes("ISO8859_1"),"UTF-8");

fw.write(PostContent);

fw.close();//关闭文件

out.println("最后于"+newDate().toString()+"自动保存成功!!1");

}elseif(action.equals("Restore")){//恢复操作

FileReaderfr=newFileReader(filename);//建立FileReader对象,并设定由fr对象变量引用

BufferedReaderbr=newBufferedReader(fr);//建立BufferedReader对象,并设定由br对象变量引

StringBufferbf=newStringBuffer();

StringLine;

while((Line=br.readLine())!=null){//读取一行数据

bf.append(Line+"n");

}

out.print(bf.toString().trim());

}else{

out.println("发生错误");

}

%>

四、AJAX类(ajaxrequest.js)请下载。

【ajax+jsp草稿自动保存的实现代码】相关文章:

jsp自定义标签技术(实现原理与代码以及平台搭建步骤)

hibernate中的增删改查实现代码

J2ME/J2EE实现用户登录交互 实现代码

jsp统计在线人数代码

java+sql2005 随机抽取试题的代码

一个完整的新闻发布系统代码

JSP如何实现文件上传

纯jsp打造无限层次的树代码

Eclipse中自动重构实现探索

jsp分页显示的实现代码

精品推荐
分类导航