반응형

구독하면 필요한 정보를 받을 수 있어요!

안녕하세요 신기한 연구소입니다.

 

1. 증상

최근 개발하다가 이상한 현상을 발견했습니다. 제목처럼 jsp파일을 브라우저에서 다음과 같이 호출했는데 jsp파일이 저장되는 상황이 발생했습니다.



http://localhost:8080/test.jsp

 

<%
	out.print("Hello!");
%>

 

이렇게 test.jsp를 생성하고 서버 Start 후 실행을 하면 브라우저에 "Hello!"가 보여야 하는데 test.jsp 파일이 다운로드가 됩니다. 그래서 구글링, 네이버 등 검색을 해서 다양한 해결 방법을 찾아봤습니다.

 

2. 시도한 방법들

파일명에 "-"를 제거해서 해결한 경우도 있고

빌드에서 설정을 바꿔서 해결한 경우도 있고

tomcat-embed-jasper와 tomcat의 두 버전이 일치하면 해결된다고 하고

Implementation의 오타를 찾아서 해결한 경우도 있고

서버를 재시작해서 성공한 경우도 있고

<@page contentType...%> 설정을 최상단으로 이동해서 해결된 경우도 있었답니다.

하지만 이 모든 것을 해봐도 계속 jsp 파일이 실행이 안되고 다운로드가 되더군요.

 

3. 특이한 점

우연히 다운로드 한 jsp 파일을 열어봤습니다. 그런데 jsp 파일이 실행이 되어있더군요.

무슨 말이냐면 jsp 파일이 다운로드가 되긴 했지만 실행한 결과가 기록되어 있었습니다.

실행이 안되고 다운로드가 된 test.jsp 파일을 열어보니 코딩된 소스가 있는 것이 아니고 실행 결과인 Hello! 가 타이핑되어 있었습니다. 헐헐헐~

결국 실행은 되는데 우리가 원하는 페이지로 열리는 것이 아니라 결과를 jsp 파일로 받게 된 것이었습니다.

 

4. 해결

그렇다면 설정에서 문제를 찾을 수 있다는 결론을 내렸습니다. 소스를 다시 확인해 봤습니다.  

<%@page language="java" contentType="application/x-www-form-urlencoded; charset=UTF-8"%>

"contentType"이 "application/x-www-form-urlencoded"로 되어있더군요. 물론 기존 개발자가 코딩한 소스입니다. 그래서 검색해 보니 예전에 form 데이터 전송을 위해 사용한 타입이라고 합니다. "key=value&key=value"형식으로 key와 value를 전달하는 구조입니다. json과 약간 다릅니다. (json은 {key:value, key:value})

데이터 전송을 위한 타입이라는 의미로 그래서 jsp가 실행되고 결과를 jsp로 넘겨준 뒤 브라우저에서 다운로드가 된 것으로 보입니다.

"contentType"을 "application/json"으로 변경 후 테스트하니 더 이상 다운로드 되지 않고 브라우저에서 실행이 됩니다.

 

5. 결론

잘 되니 그대로 사용할까 했지만 기존에 개발되었고 잘 사용하고 있던 소스여서 우선 그대로 두고 다운 받은 jsp를 열어 결과를 확인해도 되지만 불편하더군요.

같은 파일을 복사한 후 contentType을 변경해서 작업 중입니다.

혹시 다양한 방법을 시도했음에도 jsp 파일이 실행 안되고 다운로드가 된다면 contentType을 변경해 보세요.

 

내일도 출근해서 즐거운 코딩을 하고 싶지만, 출근하는 그 자체는 즐겁지가 않네요..ㅎㅎㅎ

공감하면 하트~!

 

반응형
반응형

안녕하세요. 신기한 연구소입니다.

며칠 전 윈도우즈10 업데이트(Windows 10 update)가 떴길래 진행하면서

한편으로 걱정이 되더군요.

저번에 윈도우즈10 업데이트(Windows 10 update) 후 갑자기 밝아진 모니터 화면, 

그리고 그래픽카드 인식 오류로 몇 시간 헤매다

결국 윈도우즈를 다시 설치하는 사태가 있었습니다.

그런데 이번에 또 밝은 화면으로 부팅되길래..

설마 했더니 또 역시나 그래픽 카드(NVIDIA GEFORCE GTX)가 사라졌습니다.

하지만 결국 해결했답니다.

우선 제 노트북은 다음과 같습니다.

2019.04.13 - [Info & Life/제품후기] - [Info_PC]LG 게이밍 노트북 (15G880-SD76K, 엘지) 사용기

 

[Info_PC]LG 게이밍 노트북 (15G880-SD76K, 엘지) 사용기

2006년 엘지 엑스노트 12인치 노트북을 구매하고 다시 엘지 노트북을 찾게 되었네요. 요즘 핫 하다는 배그(배틀그라운드)를 모바일 버전만 하다가 PC용도 해보고 싶은 마음에 데스크탑과 노트북을

tiboy.tistory.com

멋진 노트북입니다.

배틀그라운드(배그)도 잘 되구요. ㅎㅎ

어느 날 윈도우즈10 업데이트(Windows 10 update) 후 그래픽카드 인식이 안돼서

개고생 했던 포스팅입니다.

2021.03.16 - [Info & Life/잡동사니] - [HOW]LG 게이밍노트북 그래픽 카드, 15G880 시리즈 NVIDIA GEFORCE, windows10 업데이트 후 인식 안됨. 해결~

 

[HOW]LG 게이밍노트북 그래픽 카드, 15G880 시리즈 NVIDIA GEFORCE, windows10 업데이트 후 인식 안됨. 해결~

안녕하세요. 신기한 연구소입니다. 일요일에 새로 산 외장하드로 데이터 백업을 하던 중... 윈도우즈(windows 10) 업데이트가 있길래 다운 및 설치 후 재부팅을 했습니다. 2019.04.13 - [Info & Life/제품후

tiboy.tistory.com

사실 해결은 아니고 다시 설치했을 뿐입니다.

LG 게이밍 노트북이 문제인지..

NVIDIA 그래픽 카드가 문제인지..

윈도우즈10 업데이트(Windows 10 update)가 문제인지..

알 수가 없습니다.

충돌이 나는 건 확실한 듯한데 해결방법이 없는 걸까요?

우선 윈도우즈 재설치가 아닌 방법을 찾았는데

해결하고 기분 좋게 잤답니다. ㅋㅋㅋ

먼저 윈도우즈10 업데이트(Windows 10 update) 후 화면이 엄청 밝아지고

그래픽카드 관련 설정, 프로그램이 사라지고

작동하지 않는다 하면서 그래픽 카드가 인식 불가로 나타났습니다.

확인하는 방법은 화면 좌측 아래 검색창에 장치 관리자로 입력합니다.

클릭하면 아래 화면이 나옵니다.

목록에 보면 디스플레이 어댑터가 있는데..

저 목록이 안보이거나 혹은 보여도 원래 그래픽 카드가 아닌 기본으로만 잡혀 있더군요.

위 이미지는 해결 후 캡처해서 오류 때와 좀 다릅니다.

저 목록이 안 보이면 상단 메뉴에서 보기(V)를 클릭해서

숨겨진 장치 표시를 선택했더니

디스플레이 어댑터가 보이게 되고 

원래 그래픽 카드는 약간 희미한 상태로 보이더군요.

우측 클릭으로 확인해보니

인식이 안되거나 작동이 안 되고 있다고 나왔습니다.

우선 그래픽 카드 드라이버는 잘 잡혀 있는 것이고

다른 이유에서 작동을 안 하고 있는 것으로 생각했습니다.

목록에서 시스템 장치를 열면

아마 빨간 화살표로 보이는 부분이 앞에 노란 느낌표가 달려 있더군요.

인식이 안되고 있는 겁니다.

이놈이 문제였습니다.

인식이 제대로 안되니 그래픽 카드도 인식이 안 되는 상황이 된 겁니다.

해결방법은 해당 목록에 우측 클릭을 하면 다음과 같이 나오는데..

드라이버 업데이트를 클릭합니다.

두 번째 내 컴퓨터에서 드라이버 찾아보기를 클릭했습니다.

수동으로 다시 강제 인식을 해야 하거든요.

그러면 다음 화면이 보일 텐데 이 또한 두 번째인 컴퓨터의 사용 가능한 드라이버 목록에서

직접 선택을 클릭했습니다.

처음 보이는 1901 목록을 선택하고 다음을 클릭했더니

갑자기 화면이 꺼진 듯하다가

그래픽 카드가 잡혀서 기존 밝기로 화면이 켜지게 되더군요.

이제 정상으로 인식이 되더군요.

아니~왜?

윈도우즈10 업데이트(Windows 10 update)만 하면 이렇게 되는지

누군가 이 오류를 빨리 해결해 줬으면 합니다.

(여러분은 다른 상황일 수 있습니다. 그저 제가 해결한 내용을 포스팅한 부분이라

같은 방식으로 진행 시 다른 문제가 발생하거나 해결이 안 되더라도

저에게 책임이 없음을 알려드립니다. 그냥 참고만 하세용..^^)

감사합니다.

 

아래 하트(공감) 버튼을 눌러서 더 다양한 글을 쓸 수 있게 응원 부탁드립니다. 감사합니다.

반응형