1. 程式人生 > >電子商城後臺系統(三):整站只有一個html的實現

電子商城後臺系統(三):整站只有一個html的實現

首先建一個web專案,我這裡就叫tester

js資料夾下,引入jquery.js,再新建一個base.js,用來寫自己的js程式碼。static用來放html檔案,這些html檔案是用來讀取到index.html裡面的,在static下新建一個test.html。src下,新建一個包king.base,包下新建一個servlet——ReadFile

ReadFile.java程式碼,當然還要配訪問路徑的對映

package king.base;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ReadFile extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html; charset=UTF-8");
		//獲取前端傳過來的檔案路徑
		String path = request.getParameter("path");
		//將檔案路徑轉成絕對路徑
		path = this.getServletContext().getRealPath(path);
		
		FileInputStream in = null;
		//一次性將檔案的內容讀取出來,響應給前端
		try{
			File file = new File(path);
			in = new FileInputStream(file);
			int length = (int) file.length();
			byte[] content = new byte[length];
			in.read(content);
			response.getWriter().println(new String(content));
		}finally{
			if(in != null){
				in.close();
			}
		}
	}
}

base.js程式碼

/**接收三個引數
 * path為檔案路徑
 * 讀取檔案的內容解析到obj物件裡面
 * append可以不傳,則預設為覆蓋obj裡的內容,如果傳true則為追加內容。
 */
function readFile(path, obj, append){
	$.ajax({
		type:'GET',
		url:'/tester/readFile',
		data:'path='+path,
		success:function(data){
			if(!append){
				obj.empty();
			}
			obj.append($(data));
		},
		error:function(data){
			console.log(data);
			location.href='error.html';
		}
	});
}

test.html程式碼

<h3>這是test檔案的內容</h3>

index.html程式碼

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="js/jquery.js"></script>
<script src="js/base.js"></script>
</head>
<body>
	<header>
		<input type="button" onclick="readFile('static/test.html', $('#content'))" value="按鈕" />
	</header>
	<div id="content">這是正文部分</div>
	<footer>這是頁面底部</footer>
</body>
</html>

效果,訪問首頁

點選 按鈕: