Skip to content

Commit e00698d

Browse files
authored
Merge pull request #11 from nathan29849/feature/#7/css
feat: [#7] css, js, ico 등 html이 아닌 파일에 대해 GET 요청 처리
2 parents bf20ace + 8ab7e8e commit e00698d

3 files changed

Lines changed: 21 additions & 4 deletions

File tree

src/main/java/handler/RequestHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import java.io.InputStream;
1414
import java.io.OutputStream;
1515
import java.net.Socket;
16-
import java.util.Collection;
1716
import java.util.Map;
1817
import model.User;
1918
import org.slf4j.Logger;
@@ -42,7 +41,8 @@ public void run() {
4241
String url = requestUri.getPath();
4342

4443
if (requestLine.getHttpMethod().equals(HttpMethod.GET)) {
45-
if (URLDataBase.contains(url)) {
44+
if (URLDataBase.contains(url) || url.contains(".css") || url.contains(".js")
45+
|| url.contains(".woff") || url.contains(".ico")) {
4646
httpResponse = HttpResponse.ok(url);
4747
}
4848
if (url.equals("/user/list")) {

src/main/java/http/response/HttpResponse.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.io.OutputStream;
88
import java.nio.charset.StandardCharsets;
99
import java.nio.file.Files;
10-
import java.util.Collection;
1110
import java.util.List;
1211
import model.User;
1312

@@ -48,8 +47,12 @@ public static HttpResponse ok() {
4847
public static HttpResponse ok(String viewName) throws IOException {
4948
byte[] messageBody = Files.readAllBytes(new File("./webapp" + viewName).toPath());
5049
StatusLine statusLine = new StatusLine(new HttpVersion("HTTP/1.1"), HttpResponseStatus.OK);
50+
String[] urlTokens = viewName.split("\\.");
51+
String extension = urlTokens[urlTokens.length - 1];
52+
5153
ResponseHeaders responseHeaders = new ResponseHeaders();
52-
responseHeaders.setContentType("text/html;charset=utf-8");
54+
responseHeaders.setContentType("text/"+extension+";charset=utf-8");
55+
responseHeaders.setAccept("text/"+extension+", */*; q=0.1");
5356
responseHeaders.setContentLength(messageBody.length);
5457
ResponseMessageBody responseMessageBody = new ResponseMessageBody(messageBody);
5558
return new HttpResponse(statusLine, responseHeaders, responseMessageBody);
@@ -103,6 +106,16 @@ public static HttpResponse found(String redirectURI, boolean cookie) {
103106
return new HttpResponse(statusLine, responseHeaders);
104107
}
105108

109+
public static HttpResponse notHTML(String extension, String viewName) throws IOException {
110+
byte[] messageBody = Files.readAllBytes(new File("./webapp/" + viewName).toPath());
111+
StatusLine statusLine = new StatusLine(new HttpVersion("HTTP/1.1"), HttpResponseStatus.OK);
112+
ResponseHeaders responseHeaders = new ResponseHeaders();
113+
responseHeaders.setAccept("text/"+extension+", */*; q=0.1");
114+
responseHeaders.setContentLength(messageBody.length);
115+
ResponseMessageBody responseMessageBody = new ResponseMessageBody(messageBody);
116+
return new HttpResponse(statusLine, responseHeaders, responseMessageBody);
117+
}
118+
106119
public void flush(OutputStream out) throws IOException {
107120
DataOutputStream dos = new DataOutputStream(out);
108121
dos.writeBytes(statusLine.toString() + " \r\n");

src/main/java/http/response/ResponseHeaders.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ public void setCookie(boolean cookie) {
3131
headers.put("Set-Cookie", "logined=" + cookie + "; path=/;");
3232
}
3333

34+
public void setAccept(String content) {
35+
headers.put("Accept", content);
36+
}
37+
3438
@Override
3539
public String toString() {
3640
StringBuilder sb = new StringBuilder();

0 commit comments

Comments
 (0)