<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ajax</title> <script type="text/javascript"> //声明2个全局的变量对象 var req=null,console=null; //声明了五个用于显示服务器返回的状态码 var READY_STATE_UNINITIALIZED=0; var READY_STATE_LOADING=1; var READY_STATE_LOADING=2; var READY_STATE_INTERACTIVE=3; var READY_STATE_COMPLETE=4 //定义了发送异步请求的方法 function sendRequest(url,params,HttpMethod){ //如果请求的方式是空,默认设置为get请求方式 if(!HttpMethod){ HttpMethod="GET"; } //此处是获取ajax对象(异步对象) req=getXMLHTTPRequest(); if(req){ //当状态发生改变的时候绑定一个事件处理函数 req.onreadystatechange=onReadyState; //创建一个请求 req.open(HttpMethod,url,true); //针对post请求设置的请求消息头 req.setRequestHeader("Context-Type","application/x-www-form-urlencoded"); //发送请求 req.send(params); } } //获取XMLHTTPRequest对象 function getXMLHTTPRequest(){ var xhr=null; //如果是火狐浏览器 if(window.XMLHttpRequest){ xhr=new XMLHttpRequest(); //如果是IE浏览器就创建该对象 }else if(typeof ActiveXObject !="undefined"){ xhr=new ActiveXObject("Microsoft.XMLHTTP"); } return xhr; } function onReadyState(){ //此处是获取服务器返回的状态码 var ready=req.readyState; //创建一个变量用于接收服务器返回的数据 var data=null; //当服务器响应状态码为4的时候 if(ready==READY_STATE_COMPLETE){ //此处是获取服务器返回的数据 data=req.responseText; }else{ data="loading........{"+ready+"}"; } //该方法是将服务器返回的数据显示到页面上 toConsle(data); } function toConsle(data){ if(console!=null){ //此处是创建一个div元素节点 var newline=document.createElement("div"); //将创建的元素节点追加到console节点的子节点末尾 console.appendChild(newline); //创建一个文本节点 var txt=document.createTextNode(data); //将创建的文本节点追加到创建的元素节点的子节点末尾 newline.appendChild(txt); } } //为window对象绑定一个事件,当页面加载完毕执行 window.onload=function(){ //通过id获取一个元素节点 console=document.getElementById("console"); //此处是发送异步请求 sendRequest("getdata.do"); } </script> </head> <body bgcolor="#FF6A6A"> <div id="console"></div> </body> </html>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>jspObject</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>ajax</servlet-name> <servlet-class>ajax.ajaxServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ajax</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
package ajax; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ajaxServlet extends HttpServlet{ public static final String ACTIONPATH = "file/fileupload.docx"; public void service(HttpServletRequest request,HttpServletResponse response) throws IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); try { // E:apachetomcat7webappsa //该方法是获取项目部署的物理路径 String path = request.getRealPath("\"); //根据获取的物理路径创建一个文件字节输入流对象 FileInputStream fis = new FileInputStream(path + ACTIONPATH); //将字节输入流转换成字符输入流 InputStreamReader isr=new InputStreamReader(fis); //创建一个字符缓冲输入流 BufferedReader br=new BufferedReader(isr); //使用response响应对象获取一个输出流 PrintWriter out = response.getWriter(); //创建一个char类型数组,数组大小是50 char[] c=new char[100]; int num=0; //将遍历读取到的字符存入到char类型数组中 while(br.read(c)!=-1){ //利用输出流将数组输出 out.println(c); num++; } out.close(); br.close(); isr.close(); fis.close(); System.out.println("文件已经输出到页面,输出的次数:"+num+"次"); } catch (IOException e) { e.printStackTrace(); } } }