Skip to content

Instantly share code, notes, and snippets.

@MuriEdu
Created April 7, 2025 17:04
Show Gist options
  • Save MuriEdu/ee277c48425c1c48c5a78f1eeabe4108 to your computer and use it in GitHub Desktop.
Save MuriEdu/ee277c48425c1c48c5a78f1eeabe4108 to your computer and use it in GitHub Desktop.
Segue minha resposta para o exercício PC02
package br.ufscar.dc.dsw;
import java.io.*;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet(urlPatterns = { "/fastpage" })
public class FasterStaticPageServlet extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
var target = request.getParameter("target") != null ? request.getParameter("target") : "page_1";
response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
// atualize a URL
var pageFilePath = "/home/murilo/workspaces/personal/DSW1/AloMundoMVN/pages/" + target + ".html";
FileReader fr = new FileReader(pageFilePath);
fr.transferTo(pw);
fr.close();
pw.close();
}
}
package br.ufscar.dc.dsw;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Logger;
import io.vavr.control.Try;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet(urlPatterns = { "/page", "/p" })
public class StaticPageServlet extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
var target = request.getParameter("target") != null ? request.getParameter("target") : "page_1";
response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
// atualize a URL
var pageFilePath = "/home/murilo/workspaces/personal/DSW1/AloMundoMVN/pages/" + target + ".html";
BufferedReader reader = new BufferedReader(new FileReader(pageFilePath));
reader.lines().forEach(pw::println);
reader.close();
pw.close();
}
}
@MuriEdu
Copy link
Author

MuriEdu commented Apr 7, 2025

Na versão otimizada, minha abordagem foi reduzir o tempo de leitura e copia do arquivo transferindo-o todo de uma vez utilizando o método transferTo().

Utilizando o script para teste obtive uma média de 387,26ms contra 437,23ms, o que representa um ganho aproximado de 11,5% no tempo de resposta.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment