ajax
<%@ 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:\apachetomcat7\webapps\a\ //该方法是获取项目部署的物理路径 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(); } } }

浙公网安备 33010602011771号