Jquery progressbar通过Ajax请求获取后台进度演示

项目源代码下载:http://download.csdn.net/detail/nuptboyzhb/6262253

1.简介

本文主要演示Jquery progressbar的进度条功能。js通过ajax请求向后台实时获取当前的进度值。后台将进度值存储在cookie中,每次请求后,将进度条的值增2个。以此演示进度条的实时显示功能。

2.前台index.jsp

jsp代码如下

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>




	
		

		My JSP 'index.jsp' starting page
		
		
		
		
		
		
	
	
	    

3.struts.xml文件的配置





    
    
        
            
        
        
            
        
    


4.后台的java代码()

package edu.njupt.zhb.test;

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

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
/*
 *@author: ZhengHaibo  
 *web:     http://blog.csdn.net/nuptboyzhb
 *mail:    [email protected]
 *Sep 13, 2013  Nanjing,njupt,China
 */
public class TestAction extends ActionSupport {
	/**
	 * 
	 */
	private static final long serialVersionUID = -8697049781798812644L;
	/**
	 * 通过Ajax获取json格式的ProgressBar值
	 * Type:Action
	 */
	public void getProgressValueByJson(){
		String progressValueString = getCookie(getRequest(),"progressValue");
		int progressValue = Integer.parseInt(progressValueString);
		if(progressValue>100){
			progressValue = 0;
		}
		System.out.println(" getCookie:---progressValue="+progressValue);
		writeJsonString("{\"progressValue\":\"" + progressValue + "\"}"); 
		progressValue += 2;
		setCookie(getResponse(),"progressValue",progressValue+"",365*24*60*60);
	}
	
	/**
	 * Get HttpServletRequest Object
	 * @return HttpServletRequest
	 */
	public HttpServletRequest getRequest(){
		return ServletActionContext.getRequest();
	}

	/**
	 * Get HttpServletResponse Object
	 * @return HttpServletResponse
	 */
	protected HttpServletResponse getResponse() {
		return ServletActionContext.getResponse();
	}

	/**
	 * Get PrintWriter Object
	 * @return PrintWriter
	 * @throws IOException
	 */
	protected PrintWriter getWriter() throws IOException {
		return this.getResponse().getWriter();
	}

	/**
	 * 写Json格式字符串
	 * @param json
	 */
	protected void writeJsonString(String json) {
		try {
			getResponse().setContentType("text/html;charset=UTF-8");
			this.getWriter().write(json);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 获取cookie
	 * @param request
	 * @param name
	 * @return String
	 */
	public static String getCookie(HttpServletRequest request, String name) {
		String value = null;
		try {
			for (Cookie c : request.getCookies()) {
				if (c.getName().equals(name)) {
					value = c.getValue();
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return value;
	}
	
	/**
	 * 设置cookie
	 * @param response
	 * @param name
	 * @param value
	 * @param period
	 */
	public static void setCookie(HttpServletResponse response, String name, String value, int period) {
	    try {
	        Cookie div = new Cookie(name, value);
	        div.setMaxAge(period);
	        response.addCookie(div);

	    } catch (Exception e) {
	        e.printStackTrace();
	    }
	}
}

5.运行

将项目部署到Tomcat上之后,在浏览器中输入URL,则可以看到进度条逐渐更新

Jquery progressbar通过Ajax请求获取后台进度演示_第1张图片


你可能感兴趣的:(【java】)