Java MVC(模型-視圖-控制器)是一種用于構建Web應用程序的設計模式。在MVC中,應用程序被分為三個部分:模型(表示業務邏輯和數據)、視圖(表示此數據的用戶界面)和控制器(負責處理用戶輸入并調度其他部分)。
當涉及到靜態資源時,例如圖片、CSS和JavaScript文件,它們不屬于MVC的一部分,因為它們不需要動態生成。這些資源的處理可能僅由Web服務器來處理。
public class StaticResourceHandler {
public void handle(HttpServletRequest request, HttpServletResponse response) {
String requestedFile = request.getPathInfo();
File file = new File(request.getServletContext().getRealPath(requestedFile));
if (file.exists()) {
response.setContentType(requestedFile);
response.setContentLength((int) file.length());
FileInputStream in = new FileInputStream(file);
OutputStream out = response.getOutputStream();
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
in.close();
out.flush();
out.close();
} else {
response.sendError(404);
}
}
}
單例(Singleton)是在應用程序中使用的一種常見設計模式。單例模式確保在應用程序的整個生命周期中,只有一個實例(或對象)被創建。
在Java MVC中,控制器通常是使用單例模式創建的,因為控制器需要常駐內存,以便能夠及時響應客戶端請求。
public class ControllerSingleton {
private static final ControllerSingleton INSTANCE = new ControllerSingleton();
private ControllerSingleton() {}
public static ControllerSingleton getInstance() {
return INSTANCE;
}
public void handleRequest(HttpServletRequest request, HttpServletResponse response) {
// request handling logic here
}
}