国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

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

2024-09-01 08:27:24
字體:
來源:轉載
供稿:網友

控制器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=//www.survivalescaperooms.com>錯新站長站</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); }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥阳县| 日土县| 锡林郭勒盟| 延边| 安岳县| 当涂县| 克东县| 延安市| 灵川县| 普兰店市| 长寿区| 阜城县| 恩平市| 阿克陶县| 齐齐哈尔市| 济宁市| 安宁市| 彭山县| 德保县| 淳安县| 大港区| 习水县| 香港 | 隆林| 上饶市| 马公市| 浠水县| 多伦县| 马龙县| 斗六市| 上饶县| 上栗县| 德安县| 白河县| 榆中县| 巴塘县| 平南县| 阿巴嘎旗| 肥乡县| 丁青县| 蒙城县|