婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Ajax解決多余刷新的兩種方法(總結(jié))

Ajax解決多余刷新的兩種方法(總結(jié))

熱門標(biāo)簽:東平縣地圖標(biāo)注app 地圖標(biāo)注推銷坑人 大眾點(diǎn)評(píng)400電話怎么申請(qǐng) 中國(guó)地圖標(biāo)注不明確情況介紹表 河間市地圖標(biāo)注app 怎樣在地圖標(biāo)注文字 立陶宛地圖標(biāo)注 上海企業(yè)外呼系統(tǒng)價(jià)錢 電銷機(jī)器人 長(zhǎng)春

控制器Servlet則提供了簡(jiǎn)單的改變:

對(duì)于Ajax系統(tǒng)而言,服務(wù)器響應(yīng)無(wú)須是整個(gè)頁(yè)面內(nèi)容,可以僅是

必需的數(shù)據(jù),控制器不能將數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)到j(luò)sp頁(yè)面。

此時(shí)控制器有兩個(gè)選擇:

1、直接生成簡(jiǎn)單的響應(yīng)數(shù)據(jù)。

在這種模式下,Servlet直接通過(guò)response獲取頁(yè)面輸出流,通過(guò)

輸出流生成字符響應(yīng)。

package pers.zkr.chat.web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import pers.zkr.chat.service.ChatService;


@WebServlet(urlPatterns={"/chat.do"})
public class ChatServlet extends HttpServlet {

 @Override
 public void service(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
 // TODO Auto-generated method stub
 
 request.setCharacterEncoding("utf-8");
 
 
 String msg=request.getParameter("chatMsg");
 System.out.println(msg);
 
 if(msg!=null!msg.equals("")){
  String user=(String)request.getSession().getAttribute("user");
  System.out.println(user+"user");
  ChatService.instance().addMsg(user, msg);
  
 }
 
 //設(shè)置響應(yīng)內(nèi)容的類型
 strong>response.setContentType("text/html;charset=utf-8");
 // 獲取頁(yè)面輸出流
 PrintWriter out = response.getWriter();
 //直接生成響應(yīng)
 out.println(ChatService.instance().getMsg());/strong>
 
 request.setAttribute("msg",ChatService.instance().getMsg());
 
 forward("/chat.jsp", request , response);
 }

 private void forward(String url, HttpServletRequest request,
  HttpServletResponse response) throws ServletException, IOException {
 // TODO Auto-generated method stub
 
 request.getRequestDispatcher(url)
   .forward(request , response);  
 }
 
}    

2、轉(zhuǎn)向一個(gè)簡(jiǎn)單的jsp使用JSP頁(yè)面生成簡(jiǎn)單的響應(yīng)。

控制器將請(qǐng)求轉(zhuǎn)發(fā)到另外的JSP頁(yè)面,而JSP頁(yè)面僅僅負(fù)責(zé)輸出聊天信息

在這里需要一個(gè)jsp頁(yè)面來(lái)接收控制器發(fā)來(lái)的數(shù)據(jù),也是服務(wù)器的響應(yīng)文本,而在

原來(lái)的頁(yè)面,只需:

1)創(chuàng)建XMLHttpRequest對(duì)象

2) 發(fā)送請(qǐng)求

3)接收服務(wù)器的響應(yīng)

package org.crazyit.chat.web;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;

import java.io.*;

import org.crazyit.chat.service.*;

/**
 * Description:
 * br/>網(wǎng)站: a href=https://www.jb51.net>腳本之家/a>
 * br/>Copyright (C), 2001-2014, Yeeku.H.Lee
 * br/>This program is protected by copyright laws.
 * br/>Program Name:
 * br/>Date:
 * @version 1.0
 */
@WebServlet(urlPatterns={"/chat.do"})
public class ChatServlet extends HttpServlet
{
 public void service(HttpServletRequest request,
 HttpServletResponse response)throws IOException,ServletException
 {
 // 設(shè)置使用GBK字符集來(lái)解析請(qǐng)求參數(shù)
 request.setCharacterEncoding("utf-8");
 String msg = request.getParameter("chatMsg");
 if ( msg != null  !msg.equals(""))
 {
  // 取得當(dāng)前用戶
  String user = (String)request.getSession(true)
  .getAttribute("user");
  // 調(diào)用ChatService的addMsg來(lái)添加聊天消息
  ChatService.instance().addMsg(user , msg);
 }
 // 將全部聊天信息設(shè)置成request屬性
 strong>request.setAttribute("chatList" ,
  ChatService.instance().getMsg());/strong>
 // 轉(zhuǎn)發(fā)到chatreply.jsp頁(yè)面
 forward("/chatreply.jsp" , request , response);
 }
 // 執(zhí)行轉(zhuǎn)發(fā)請(qǐng)求的方法
 private void forward(String url , HttpServletRequest request,
 HttpServletResponse response)throws ServletException,IOException
 {
 // 執(zhí)行轉(zhuǎn)發(fā)
 request.getRequestDispatcher(url)
  .forward(request,response);
 }
}

接收數(shù)據(jù)的頁(yè)面

%@ page contentType="text/html;charset=GBK" errorPage="error.jsp"%>
%-- 輸出當(dāng)前的聊天信息 --%>
${requestScope.chatList}

html頁(yè)面

!DOCTYPE html>
html>
head>
 meta name="author" content="Yeeku.H.Lee(CrazyIt.org)" />
 meta http-equiv="Content-Type" content="text/html; charset=GBK" />
 title>聊天頁(yè)面/title>
/head>
body onload="sendEmptyRequest();">
div style="width:780px;border:1px solid black;text-align:center">
h3>聊天頁(yè)面/h3>
p>
textarea id="chatArea" name="chatArea" cols="90"
 rows="30" readonly="readonly">/textarea>
/p>
div align="center">
 input id="chatMsg" name="chatMsg" type="text"
 size="90" onkeypress="enterHandler(event);"/>
 input type="button" name="button" value="提交"
 onclick="sendRequest();"/>
/div>
/div>
script type="text/javascript">
var input = document.getElementById("chatMsg");
input.focus();
var XMLHttpReq;
// 創(chuàng)建XMLHttpRequest對(duì)象  
function createXMLHttpRequest()
{
 if(window.XMLHttpRequest)
 { 
 // DOM 2瀏覽器
 XMLHttpReq = new XMLHttpRequest();
 }
 else if (window.ActiveXObject)
 {
 // IE瀏覽器
 try
 {
  XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
 }
 catch (e)
 {
  try
  {
  XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch (e)
  {
  }
 }
 }
}
// 發(fā)送請(qǐng)求函數(shù)
function sendRequest()
{
 // input是個(gè)全局變量,就是用戶輸入聊天信息的單行文本框
 var chatMsg = input.value;
 // 完成XMLHttpRequest對(duì)象的初始化
 createXMLHttpRequest();
 // 定義發(fā)送請(qǐng)求的目標(biāo)URL
 var url = "chat.do";
 // 通過(guò)open方法取得與服務(wù)器的連接
 // 發(fā)送POST請(qǐng)求
 XMLHttpReq.open("POST", url, true);
 // 設(shè)置請(qǐng)求頭-發(fā)送POST請(qǐng)求時(shí)需要該請(qǐng)求頭
 XMLHttpReq.setRequestHeader("Content-Type",
 "application/x-www-form-urlencoded");
 // 指定XMLHttpRequest狀態(tài)改變時(shí)的處理函數(shù)
 XMLHttpReq.onreadystatechange = processResponse;
 // 清空輸入框的內(nèi)容
 input.value = "";
 // 發(fā)送請(qǐng)求,send的參數(shù)包含許多的key-value對(duì)。
 // 即以:請(qǐng)求參數(shù)名=請(qǐng)求參數(shù)值 的形式發(fā)送請(qǐng)求參數(shù)。
 

 
 XMLHttpReq.send("chatMsg=" + chatMsg); 
}

//定時(shí)請(qǐng)求服務(wù)器
function sendEmptyRequest()
{
 // 完成XMLHttpRequest對(duì)象的初始化
 createXMLHttpRequest();
 // 定義發(fā)送請(qǐng)求的目標(biāo)URL
 var url = "chat.do";
 // 發(fā)送POST請(qǐng)求
 XMLHttpReq.open("POST", url, true);
 // 設(shè)置請(qǐng)求頭-發(fā)送POST請(qǐng)求時(shí)需要該請(qǐng)求頭
 XMLHttpReq.setRequestHeader("Content-Type",
 "application/x-www-form-urlencoded");
 // 指定XMLHttpRequest狀態(tài)改變時(shí)的處理函數(shù)
 XMLHttpReq.onreadystatechange = processResponse;
 // 發(fā)送請(qǐng)求,,不發(fā)送任何參數(shù)
 XMLHttpReq.send(null);
 // 指定0.8s之后再次發(fā)送請(qǐng)求
 setTimeout("sendEmptyRequest()" , 800);
}
// 處理返回信息函數(shù)
function processResponse()
{
 // 當(dāng)XMLHttpRequest讀取服務(wù)器響應(yīng)完成
 if (XMLHttpReq.readyState == 4)
 {
 // 服務(wù)器響應(yīng)正確(當(dāng)服務(wù)器響應(yīng)正確時(shí),返回值為200的狀態(tài)碼)
 if (XMLHttpReq.status == 200)
 {
  // 使用chatArea多行文本域顯示服務(wù)器響應(yīng)的文本
  document.getElementById("chatArea").value 
  = XMLHttpReq.responseText;
 }
 else
 {
  // 提示頁(yè)面不正常
  window.alert("您所請(qǐng)求的頁(yè)面有異常。");
 }
 }
}

function enterHandler(event)
{
 // 獲取用戶單擊鍵盤的“鍵值”
 var keyCode = event.keyCode ? event.keyCode 
 : event.which ? event.which : event.charCode;
 // 如果是回車鍵
 if (keyCode == 13)
 {
 sendRequest();
 }
}
/script>
/body>
/html>

以上這篇Ajax解決多余刷新的兩種方法(總結(jié))就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 純JS實(shí)現(xiàn)AJAX局部刷新功能
  • ajax無(wú)刷新評(píng)論功能
  • AJAX如何實(shí)現(xiàn)無(wú)刷新登錄功能
  • ajax的分頁(yè)查詢示例(不刷新頁(yè)面)

標(biāo)簽:四川 內(nèi)江 遼寧 營(yíng)口 本溪 銅川 玉樹 益陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ajax解決多余刷新的兩種方法(總結(jié))》,本文關(guān)鍵詞  Ajax,解決,多余,刷,新的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ajax解決多余刷新的兩種方法(總結(jié))》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Ajax解決多余刷新的兩種方法(總結(jié))的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    蜜臀av性久久久久蜜臀aⅴ流畅| 色婷婷久久久亚洲一区二区三区| 国产欧美日韩视频在线观看| 成a人片亚洲日本久久| 亚洲永久精品国产| 91麻豆精品视频| 国产精品久久久久久久久免费丝袜 | 国产日韩欧美精品电影三级在线| 国产精品一区二区x88av| 国产嫩草影院久久久久| 精品av久久707| 精品一区二区成人精品| 久久毛片高清国产| 国产精品自拍毛片| 9191成人精品久久| 日韩精品免费视频人成| 久久久久久亚洲综合影院红桃| 播五月开心婷婷综合| 欧美日韩激情在线| 亚洲最新在线观看| 91伊人久久大香线蕉| 国产午夜精品一区二区三区视频| 亚洲图片欧美色图| 国产精品亲子伦对白| 国产一区二三区| 亚洲国产精品二十页| 国产成人啪免费观看软件| 欧美激情一区二区三区| 欧美日韩一区二区在线视频| 国产91精品入口| 亚洲午夜电影网| 欧美激情一区二区三区四区| 日韩视频一区二区三区在线播放 | 久久久久久9999| 日韩精品一区二区三区中文不卡| 欧美视频在线一区二区三区| 国产馆精品极品| 成人一区二区三区| 91成人免费在线| 一本色道久久综合狠狠躁的推荐 | 91福利国产精品| 欧美日韩精品一区二区三区四区| 欧美日韩国产系列| 亚洲精品欧美专区| 成人晚上爱看视频| 欧美一级电影网站| 日韩欧美色电影| 欧美一区二区三区在线看| 日韩欧美中文字幕一区| 国产午夜三级一区二区三| 久久国产尿小便嘘嘘| 欧美色爱综合网| 日韩欧美中文一区二区| 精品久久久久一区二区国产| 欧美成人a视频| 欧美aaaaa成人免费观看视频| 精品国产乱码久久久久久久 | 一区二区三区四区五区视频在线观看| 亚洲猫色日本管| 久久成人18免费观看| 成人高清伦理免费影院在线观看| 成人一区二区三区| 日韩久久精品一区| 亚洲综合色在线| 国产精品一区在线观看乱码| 欧美日韩一卡二卡| 一区视频在线播放| 久久av资源网| 精品午夜久久福利影院| 成人免费精品视频| 精品国免费一区二区三区| 夜夜揉揉日日人人青青一国产精品 | 2024国产精品视频| 午夜久久久久久久久久一区二区| 国产不卡在线一区| 国产欧美一区视频| 国产河南妇女毛片精品久久久| 精品国一区二区三区| 蜜臀a∨国产成人精品| 欧美丰满一区二区免费视频| 婷婷综合五月天| 制服丝袜亚洲色图| 老司机精品视频导航| 精品国产免费一区二区三区香蕉| 精品一区二区三区在线观看国产 | 亚洲欧美在线另类| 色88888久久久久久影院按摩 | 亚洲国产乱码最新视频| 欧美日韩精品一区二区三区| 人妖欧美一区二区| 26uuu精品一区二区在线观看| 国产精品白丝av| 亚洲欧洲色图综合| 欧美日韩在线播| 国产在线一区观看| |精品福利一区二区三区| 欧美吞精做爰啪啪高潮| 蜜臀av性久久久久蜜臀aⅴ流畅| 久久免费偷拍视频| 91免费小视频| 黄色精品一二区| 亚洲欧美日韩国产手机在线| 欧美一区二区三区男人的天堂| 粉嫩av一区二区三区在线播放| 亚洲欧美日本韩国| 精品噜噜噜噜久久久久久久久试看| 国产精品2024| 午夜不卡av免费| 自拍偷拍亚洲激情| 久久久久久久久岛国免费| 色综合久久久久久久久| 激情欧美一区二区| 青娱乐精品在线视频| 依依成人精品视频| 国产精品福利在线播放| 欧美一区二区日韩一区二区| 91理论电影在线观看| 国产福利一区二区三区视频| 午夜一区二区三区视频| 亚洲黄色性网站| 亚洲视频在线观看三级| 国产精品色婷婷| 国产精品久久久久久福利一牛影视| 日韩精品一区二区三区视频 | 午夜精品福利在线| 亚洲伊人伊色伊影伊综合网 | 亚洲精品免费在线| 亚洲综合一区二区三区| 亚洲精品v日韩精品| 一区二区三区波多野结衣在线观看| 1024亚洲合集| 亚洲小说欧美激情另类| 亚洲一区二区三区四区在线免费观看| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 欧美日韩国产首页| 欧美二区三区的天堂| 欧美一区二区久久| 精品国产伦一区二区三区观看方式| 欧美精品在线一区二区三区| 欧美高清性hdvideosex| 欧美成人女星排行榜| 精品剧情在线观看| 国产精品三级久久久久三级| 国产精品久久久久久久蜜臀| 亚洲精品福利视频网站| 日韩精品福利网| 国产一区二区剧情av在线| 不卡一区二区三区四区| 在线亚洲人成电影网站色www| 91视频xxxx| 欧美无砖专区一中文字| 久久色在线观看| 亚洲欧美另类图片小说| 无码av免费一区二区三区试看| 精品影院一区二区久久久| 国产不卡在线视频| 色婷婷久久一区二区三区麻豆| 日韩欧美在线影院| 国产精品毛片久久久久久| 性感美女极品91精品| 日韩高清一级片| 色婷婷综合激情| 亚洲精品一区在线观看| 亚洲人亚洲人成电影网站色| 精品影院一区二区久久久| fc2成人免费人成在线观看播放| 欧美午夜一区二区三区免费大片| 欧美肥妇bbw| 亚洲欧洲国产日本综合| 久久精品99国产精品日本| 国产一区二区在线电影| 日韩欧美卡一卡二| 一区二区三区中文免费| 国产一区二区视频在线| 日韩欧美国产一区二区三区| 亚洲精品视频在线| 高清不卡一二三区| 26uuu国产日韩综合| 免费在线成人网| 欧美美女视频在线观看| 午夜电影久久久| 色综合视频在线观看| 国产精品视频在线看| 国产一区久久久| www国产亚洲精品久久麻豆| 亚洲精品视频在线观看网站| 99视频一区二区三区| 国产精品三级av| 91啪亚洲精品| 天天操天天干天天综合网| 91在线精品一区二区| 亚洲欧洲在线观看av| 欧美性色黄大片| 亚洲午夜久久久久久久久电影网 | 久久久久久久一区| 成人精品gif动图一区| 国产精品你懂的| 91影院在线观看| 久久国产麻豆精品| 精品粉嫩超白一线天av|