Created
April 7, 2025 17:04
-
-
Save MuriEdu/ee277c48425c1c48c5a78f1eeabe4108 to your computer and use it in GitHub Desktop.
Segue minha resposta para o exercício PC02
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.