안녕하세요, JSP를 사용한 회원 관리 프로젝트를 진행하던 중 궁금한 것이 생겨 질문드립니다. JSP도 결국에는 프로젝트 실행시 Java 코드로 변환이 되는 것으로 알고 있는데요. 이전에 개인적으로 Eclipse IDE를 사용한 경우 .metadata라는 폴더가 존재했고, 그 안을 들여다 보면 JSP가 Java 코드로 변환된 파일이 존재했습니다. 예를 들어 "sum.jsp" 파일을 작성했다면 "sum_jsp.java" 파일이 존재한 것 처럼요. (이 .java 파일안에서 pageContext, session, application 객체를 사용할 수 있도록 선언되어 있었던 것도 기억이 나네요.) 어느덧 IntelliJ에 익숙해져서 이런 내용을 잊어버린체 코딩을 하는 것 같아 제가 작성한 JSP 파일에 대해 Java 코드로 변환된 파일을 찾아보고 싶은데, 어떤 경로를 통해 찾을 수 있을까요? 미리 답변 감사드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. save-servlet.jsp 와 members.jsp에서 jsp의 ${} 문법을 활용하여 request.setAttribute("model", model)을 한 값을 가져다 쓰는 부분에서 다음과 같이 경고 줄이 뜹니다. viewPath 문제인가 해서 계속 다시봤는데 영상대로 진행을 했고, 혹시나 추가해줘야 하는 코드를 넣지 않은건지 모르겠어서 질문 남깁니다.
안녕하세요. 아래 질문자와 같은 오류로 몇시간 허비했는데 다른 분들의 소중한 시간을 지켜 드리고자 해결방안 안내해 드립니다. 저는 맥os big sur + 인텔리제이 ide 환경에서 문제 없이 작동했습니다. - 문제의 원인은 톰캣 1. 톰캣의 lib 폴더에도 jdbc 커넥터 jar 파일을 설치해줘야 됩니다. 심지어 저는 프로젝트의 외부 라이브러리 연동에서 삭제했고 톰캣 lib 에만 복사해줬는데도 작동했습니다. 아마 WAS 서블릿 부분은 jdk 연동이 아니라 톰캣에서 다 처리하기 때문인 것 같습니다.
모의해킹 실무자가 알려주는, 파일 업로드 취약점 공격 기법과 실무 사례 분석 : PART 1
선생님 제가 지금 [실습2-2] "직접 제작하면서 배우는 JSP 기반의 파일 업로드 기능에 대한 이해" 이 부분을 공부하고 있는데 아파치 톰캣 폴더 안에 webapp 안에 Root 폴더에 index.jsp, upload.jsp 파일 둘 다 만들어서 선생님께서 강의해주신 그대로 코드를 작성하고 톰캣을 실행시켜서 127.0.0.1:8080에 접속해서 "파일 선택 선택된 파일 없음 upload"까지는 정상적으로 되었는데 그 이후에 파일을 선택하고 업로드 버튼을 누르면 "HTTP 상태 500 - 내부 서버 오류"가 발생합니다. 제가 upload.jsp에 작성한 코드는 <%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page import="com.oreilly.servlet.MultipartRequest" %> <% String path = request.getRealPath("upload"); MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8"); String filename = path + "/" + multi.getFilesystemName("userfile"); %> <li>업로드 성공 : <%=filename%></li> 이것이고 "HTTP 상태 500- 내부 서버 오류"에 써 있던 문구는 org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.: JSP 파일 [/upload.jsp]의 [6] 행에서 오류가 발생했습니다. The type javax.servlet.http.HttpServletRequest cannot be resolved. It is indirectly referenced from required .class files 3: <% 4: String path = request.getRealPath("upload"); 5: 6: MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8"); 7: String filename = path + "/" + multi.getFilesystemName("userfile"); 8: %> 9: JSP 파일 [/upload.jsp]의 [6] 행에서 오류가 발생했습니다. The type javax.servlet.ServletRequest cannot be resolved. It is indirectly referenced from required .class files 3: <% 4: String path = request.getRealPath("upload"); 5: 6: MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8"); 7: String filename = path + "/" + multi.getFilesystemName("userfile"); 8: %> 9: JSP 파일 [/upload.jsp]의 [6] 행에서 오류가 발생했습니다. The constructor MultipartRequest(HttpServletRequest, String) refers to the missing type HttpServletRequest 3: <% 4: String path = request.getRealPath("upload"); 5: 6: MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8"); 7: String filename = path + "/" + multi.getFilesystemName("userfile"); 8: %> 9: Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:213) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:482) org.apache.jasper.compiler.Compiler.compile(Compiler.java:392) org.apache.jasper.compiler.Compiler.compile(Compiler.java:362) org.apache.jasper.compiler.Compiler.compile(Compiler.java:346) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 이것입니다. 선생님께서 말씀하셨던 cos.jar 파일도 잘 아파치 톰캣 폴더 lib에 넣었는데 이럽니다 ㅠㅠ 저는 지금 비주얼 스튜디오 코드를 사용하고 있고 이클립스는 사용하지 않고 있습니다. 아파치 톰캣은 10버전을 사용하고 있고 JDK8버전을 사용하고 있습니다. PHP 기반의 파일은 정상적으로 잘 만들어지는데 JSP 기반의 파일은 안 만들어집니다. 검색을 해도 이클립스 어쩌구 저쩌구만 나오고 미치겠습니다. 6행에서 오류가 발생했다고 해서 계속 확인을 해봤는데 선생님께서 작성해주셨던 코드랑 다를 게 없었습니다. index.jsp 파일에 있는 코드들은 다 색깔이 들어가는데 이상하게 upload.jsp 파일에 있는 코드들은 다 색깔이 안 들어갑니다.
선생님 강의를 현재까지 그대로 따라했는데 @WebServlet("/memberInsert.do") 으로 줬는데 제 경우에 계속 왜 404 뜨면서 없는 jsp 로 갈까요.. (콘솔창에 에러는 안나옵니다..)그리고 선생님이 실행하는 방식이 아닌 저렇게 run as로 하면 안되나요? 오히려 선생님이 하시는 대로 127.0.0.1 로컬호스트 들어가니까 안되더라구요.. 마지막으로 혹시 소스코드 pdf 파일 말고 zip파일이나 이런거로 올려주실수 있을 까요.. 에러 났을때 비교해보고 확인해보고 싶은데 pdf에서 복사하면 ㅁㅁㅁ 이런식으로 복사가 제대로 안되네요..
model1방식에서는 게시판과 쇼핑몰을 모두 진행 하였는데 model2 방식으로는 게시판밖에 강의가 올라오지 않아서 저도 아쉬워하고있었는데 댓글을 보니 수업자료로 올려주셨다고 하는 글을 보았습니다! 수업자료 다운받아봤는데 model2방식 쇼핑몰은 아직 업데이트가 안된건가요 아니면 추후 업데이트 될 예정인가요?
쿠키가 보안에 취약해서 세션을 써야 한다는 부분은 이해가 갑니다. 근데, 왜 세션을 서버에 저장하죠?? 쿠키 부분에서 설명할 때 많은 사용자의 쿠키를 서버에 저장하면 다량의 오버헤드가 발생하니깐 쿠키를 client측에 저장한다고 했는데, 세션은 왜 서버에 저장하는 거죠??
강사님께서 작성하신 login.jsp에서는 header가 회색 계열이며, 그 header 왼쪽에는 검은색 글꼴이 배치되어 있고, 오른쪽에 정상적으로 버튼이 나오는 걸 볼 수가 있습니다. 그러나 저도 강사님께서 작성하신 login.jsp 코드를 똑같이 작성했는데 불구하고, header가 회색 계열이 아닌 흰색 계열이며, header에 구현된 버튼이 강사님께서 만든 버튼과 다른 버튼이 나옵니다. 마지막으로 bootstrap version 3.3.7버전, 그리고 jQuery 3.1.1 version을 사용했는데, 위에 언급된 문제들이 전혀 해결되지 않은듯합니다. 어떻게 하면 해결할 수 있을까요?
예제에서 1. Cookie [] cookies = request.getCookies(); 2. Cookie cookie = null 이렇게 두가지 선언이 있는데 Cookie[]는 배열이고 Cookie는 배열이 아닌것 인가요?? 차이가 있다면 어떤점이 다른건지 헷갈립니다.
기존에 이클립스 workspace 에다가 강의실 에 잇는 프로젝트 파일을 복사 해놓고 import 해 보면 서블릿 파일이 에러 문법 다수 라고 나오는데용.. 신규로 project 만들어서 서블릿파일, html 파일 붙여넣으면 이상없구요. 아무래도 컴파일 경로가 잘못된거 같기도 하고 혹시 아세요? 첫 import 패키지 부터 에러 인거로 봐선 경로를 못찾음 인거 같아요