校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Ajax解決多余刷新的兩種方法(總結)

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

熱門標簽:東平縣地圖標注app 地圖標注推銷坑人 大眾點評400電話怎么申請 中國地圖標注不明確情況介紹表 河間市地圖標注app 怎樣在地圖標注文字 立陶宛地圖標注 上海企業外呼系統價錢 電銷機器人 長春

控制器Servlet則提供了簡單的改變:

對于Ajax系統而言,服務器響應無須是整個頁面內容,可以僅是

必需的數據,控制器不能將數據請求轉發到jsp頁面。

此時控制器有兩個選擇:

1、直接生成簡單的響應數據。

在這種模式下,Servlet直接通過response獲取頁面輸出流,通過

輸出流生成字符響應。

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);
  
 }
 
 //設置響應內容的類型
 strong>response.setContentType("text/html;charset=utf-8");
 // 獲取頁面輸出流
 PrintWriter out = response.getWriter();
 //直接生成響應
 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、轉向一個簡單的jsp使用JSP頁面生成簡單的響應。

控制器將請求轉發到另外的JSP頁面,而JSP頁面僅僅負責輸出聊天信息

在這里需要一個jsp頁面來接收控制器發來的數據,也是服務器的響應文本,而在

原來的頁面,只需:

1)創建XMLHttpRequest對象

2) 發送請求

3)接收服務器的響應

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/>網站: 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
 {
 // 設置使用GBK字符集來解析請求參數
 request.setCharacterEncoding("utf-8");
 String msg = request.getParameter("chatMsg");
 if ( msg != null  !msg.equals(""))
 {
  // 取得當前用戶
  String user = (String)request.getSession(true)
  .getAttribute("user");
  // 調用ChatService的addMsg來添加聊天消息
  ChatService.instance().addMsg(user , msg);
 }
 // 將全部聊天信息設置成request屬性
 strong>request.setAttribute("chatList" ,
  ChatService.instance().getMsg());/strong>
 // 轉發到chatreply.jsp頁面
 forward("/chatreply.jsp" , request , response);
 }
 // 執行轉發請求的方法
 private void forward(String url , HttpServletRequest request,
 HttpServletResponse response)throws ServletException,IOException
 {
 // 執行轉發
 request.getRequestDispatcher(url)
  .forward(request,response);
 }
}

接收數據的頁面

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

html頁面

!DOCTYPE html>
html>
head>
 meta name="author" content="Yeeku.H.Lee(CrazyIt.org)" />
 meta http-equiv="Content-Type" content="text/html; charset=GBK" />
 title>聊天頁面/title>
/head>
body onload="sendEmptyRequest();">
div style="width:780px;border:1px solid black;text-align:center">
h3>聊天頁面/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;
// 創建XMLHttpRequest對象  
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)
  {
  }
 }
 }
}
// 發送請求函數
function sendRequest()
{
 // input是個全局變量,就是用戶輸入聊天信息的單行文本框
 var chatMsg = input.value;
 // 完成XMLHttpRequest對象的初始化
 createXMLHttpRequest();
 // 定義發送請求的目標URL
 var url = "chat.do";
 // 通過open方法取得與服務器的連接
 // 發送POST請求
 XMLHttpReq.open("POST", url, true);
 // 設置請求頭-發送POST請求時需要該請求頭
 XMLHttpReq.setRequestHeader("Content-Type",
 "application/x-www-form-urlencoded");
 // 指定XMLHttpRequest狀態改變時的處理函數
 XMLHttpReq.onreadystatechange = processResponse;
 // 清空輸入框的內容
 input.value = "";
 // 發送請求,send的參數包含許多的key-value對。
 // 即以:請求參數名=請求參數值 的形式發送請求參數。
 

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

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

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

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

您可能感興趣的文章:
  • 純JS實現AJAX局部刷新功能
  • ajax無刷新評論功能
  • AJAX如何實現無刷新登錄功能
  • ajax的分頁查詢示例(不刷新頁面)

標簽:四川 內江 遼寧 營口 本溪 銅川 玉樹 益陽

巨人網絡通訊聲明:本文標題《Ajax解決多余刷新的兩種方法(總結)》,本文關鍵詞  Ajax,解決,多余,刷,新的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Ajax解決多余刷新的兩種方法(總結)》相關的同類信息!
  • 本頁收集關于Ajax解決多余刷新的兩種方法(總結)的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    成人午夜视频福利| 国产精品久久久久影院老司 | 欧美韩国日本一区| 成人性生交大合| 国产精品福利一区| 91视频观看免费| 午夜伊人狠狠久久| 欧美一区二区三区视频免费 | 国产在线视频不卡二| 亚洲成人自拍一区| 99免费精品在线| 色婷婷狠狠综合| 在线观看网站黄不卡| 91官网在线观看| 在线观看免费视频综合| 日韩精品一区二区三区视频在线观看 | 久久蜜臀中文字幕| 一区二区三区在线影院| 欧美在线观看视频在线| 日本网站在线观看一区二区三区| 久久精品亚洲国产奇米99| 国产成人夜色高潮福利影视| 亚洲欧洲国产日韩| 欧美日韩精品一区二区三区蜜桃| 日韩精品亚洲专区| 国产日韩视频一区二区三区| 色综合久久久久综合体| 青青草97国产精品免费观看 | 在线观看视频一区二区欧美日韩| 蜜臀av一区二区三区| 国产日本一区二区| 欧美性videosxxxxx| 麻豆国产欧美日韩综合精品二区 | 国产精品12区| 亚洲国产欧美日韩另类综合 | 亚洲国产高清在线观看视频| 欧美特级限制片免费在线观看| 国产在线精品一区二区夜色| 亚洲精品中文字幕在线观看| 精品国产免费人成电影在线观看四季| 成人精品免费看| 蜜桃视频在线观看一区二区| 亚洲特级片在线| 日韩精品一区二区三区视频| 在线观看av一区二区| 国产成人啪午夜精品网站男同| 午夜精品久久久久久不卡8050| 精品粉嫩aⅴ一区二区三区四区| 99久久99久久综合| 国产一区二区视频在线| 午夜精品久久久久久久99樱桃 | 亚洲综合色噜噜狠狠| 久久久夜色精品亚洲| 欧美日韩一区二区三区视频| 成人免费视频一区二区| 极品少妇一区二区| 亚洲成人一区二区在线观看| 国产精品色呦呦| 久久久av毛片精品| 日韩一区二区在线看片| 欧美日韩一区久久| 色婷婷av一区二区三区gif| 国产**成人网毛片九色| 久久99精品国产麻豆不卡| 亚洲成av人片| 日欧美一区二区| 精品国产凹凸成av人网站| 欧美一区二区三区播放老司机| 青青草国产成人99久久| 最新国产成人在线观看| 欧美一区二区福利视频| 成人爱爱电影网址| 久久精品国产一区二区三区免费看| 久久久久久久电影| 在线视频一区二区三区| 国产一区二区三区黄视频 | 一区二区三区产品免费精品久久75| 91精品国产黑色紧身裤美女| 在线亚洲+欧美+日本专区| 成人午夜视频网站| 国产精品自拍毛片| 国产美女精品人人做人人爽| 日韩高清不卡在线| 亚洲一区二区黄色| 国产午夜精品久久久久久免费视| 久久综合狠狠综合久久激情| 日韩一区二区三| 制服丝袜中文字幕一区| 色八戒一区二区三区| 91在线观看下载| 成人中文字幕在线| 国产不卡免费视频| 国产成人在线视频网站| 经典三级一区二区| 国产美女在线精品| 美女高潮久久久| 国产欧美一区二区三区在线老狼| 国产成人在线免费观看| 美女www一区二区| 天天综合天天做天天综合| 亚洲成人免费视频| 天天色综合天天| 日韩高清欧美激情| 久久99这里只有精品| 免费欧美日韩国产三级电影| 男男gaygay亚洲| 久久 天天综合| 国产麻豆精品久久一二三| 精品亚洲aⅴ乱码一区二区三区| 麻豆精品新av中文字幕| 国产在线国偷精品产拍免费yy | 亚洲精品美国一| 亚洲日韩欧美一区二区在线| 国产精品动漫网站| 久久欧美一区二区| 亚洲一区二区在线免费观看视频| 一区二区三区不卡在线观看 | 日韩激情av在线| 一区二区三区精品| 亚洲午夜电影网| 日本不卡中文字幕| 国产成人在线电影| 久久久精品国产免大香伊| 精品国产乱码久久久久久牛牛| 日韩一级片网址| 欧美精品久久久久久久久老牛影院| 欧美一区二区三区在线视频| 久久精品在这里| 亚洲综合精品自拍| 久久精品国产亚洲a| 99精品国产热久久91蜜凸| 91国偷自产一区二区三区成为亚洲经典 | 欧美日韩不卡一区二区| 日韩精品一区国产麻豆| 亚洲欧洲美洲综合色网| 日韩一级视频免费观看在线| 一区二区三区91| 亚洲成av人影院| 国产一区二区成人久久免费影院| 8x8x8国产精品| 国产欧美一区二区精品性色 | 久久99国产精品麻豆| 美女网站色91| 成人精品gif动图一区| 欧美美女激情18p| 国产精品无圣光一区二区| 亚洲成人在线免费| av动漫一区二区| 日韩欧美精品三级| 亚洲综合一区二区三区| 日韩高清国产一区在线| 欧美性色黄大片| 国产又粗又猛又爽又黄91精品| 精品福利一二区| 日韩欧美一区二区免费| 亚洲二区在线视频| 欧美男生操女生| 亚洲影院久久精品| 欧美高清视频在线高清观看mv色露露十八| 国产视频一区二区在线观看| 日韩国产精品久久| 欧美日高清视频| 美女网站一区二区| 国产喷白浆一区二区三区| 国产伦精品一区二区三区在线观看| 午夜精品久久久久久久久久| 91丨porny丨最新| 国产日产欧美一区二区视频| 久久超级碰视频| 99re热视频这里只精品| 亚洲精品视频一区| 不卡一区二区三区四区| 中文字幕欧美日本乱码一线二线| 激情图区综合网| 欧美大片国产精品| 日本免费在线视频不卡一不卡二| 色中色一区二区| 国产精品高潮呻吟| 色哟哟国产精品| 国产精品久久久久aaaa樱花| 国产91在线观看丝袜| 久久网这里都是精品| 狠狠色狠狠色合久久伊人| 欧美成人一区二区| 麻豆精品视频在线| 欧美肥妇free| 国产综合色产在线精品| 久久精品一区二区三区不卡牛牛| 国产综合色视频| 国产免费成人在线视频| 成人福利视频网站| 亚洲人吸女人奶水| 丁香婷婷综合色啪| 亚洲精品欧美激情| 色成年激情久久综合| 亚洲精品精品亚洲| 日本久久精品电影| 日韩av网站免费在线| 日韩欧美一区在线| 国产一区二区三区最好精华液|