
이클립스를 회사사유로 mars 버전(옛날버전)을 다운받았는데 그럼 jdk는 몇버전을 다운받아야할까요?
3일 전
이클립스를 회사사유로 mars 버전(옛날버전)을 다운받았는데 그럼 jdk는 몇버전을 다운받아야할까요?
이클립스를 회사사유로 mars 버전(옛날버전)을 다운받았는데 그럼 jdk는 몇버전을 다운받아야할까요?
3일 전
이클립스를 회사사유로 mars 버전(옛날버전)을 다운받았는데 그럼 jdk는 몇버전을 다운받아야할까요?
login.jsp와 loginCon.java 에서 궁금한 점이 있습니다!
17일 전
login.jsp와 loginCon.java의 동작을 요약하면,
-login.jsp : 클라이언트에게 쿠키 정보를 요청하여 받는다(request.getCookies()), (1) 쿠키가 있으면 쿠키를 순회하며 "memberId"라는 이름을 가진 쿠키가 있는지 살펴보고, (1.1.) "memberId"라는 이름의 쿠키가 있으면 재로그인할 필요가 없으므로 loginOk.jsp로 리다이렉트해준다.
(2) 쿠키 배열이 아예 비어있거나(null), "memberId"라는 이름의 쿠키를 못찾았다. ID와 PW를 받아, 그 값을 post method로 loginCon에 보내준다.
-loginCon.java : 클라이언트에게 쿠키 정보를 요청하여 받는다(request.getCookies()), 쿠키를 순회하며 "memberId"라는 이름의 쿠키가 있다면 `Cookie cookie`에 해당 쿠키를 할당한다. 만약 못찾았다면, "memberId"라는 key, mId라는 value를 가지는 Cookie를 만들어서 `Cookie cookie`에 할당해준다. ...이후 reponse에 cookie를 add해주고 MaxAge를 설정해준 후, loginOk.jsp로 리다이렉트.
위의 동작으로 이해했습니다.
궁금한 점은, login.jsp에서 loginCon으로 넘어갔다는 건 결국 (a) 쿠키 배열이 null, 혹은 (b) memberId라는 이름의 쿠키를 찾지 못함 인건데, 이 상황에서 loginCon.java에서 왜 다시 memberId라는 이름의 쿠키가 있는지 찾고, 찾았다면 Cookie cookie에 c를 할당해주는 코드가 있는 건가요?
정리하자면, login.jsp에서 쿠키를 순회하며 "memberId"라는 이름의 쿠키를 찾는 for문을 삭제하고, 그냥
...
doGet(...) {
String mId = request.getParameter("mID");
String mPw = request.getParameter("mPW");
Cookie cookie = new Cookie("memberId", mId);
response.addCookie(cookie);
cookie.setMaxAge(60*60);
response.sendRedirect("loginOk.jsp");
}
...
요렇게 작성하는 것과 어떤 차이가 있는지 궁금합니다!
3:16에 나오는 웹컨테이너 구조 그림에 질문있습니다.
1달 전
웹 컨테이너 내 JVM이 서블릿 코드를 컴파일해서 바이트코드로 변환해서 .class 파일이 있는건 알겠는데 .obj 파일을 만들어낸다는건 저에게 금시초문입니다. 이것에 대해서 보충설명을 받을 수 있을까요?
404에러
1달 전
안녕하세요.
아래처럼 작성했는데 login.jsp에서 아이디/비번 입력 후 서밋 시 에러가 발생합니다.
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="loginCon" method="post">
ID : <input type="text" name="mID"><br>
PW : <input type="password" name="mPW"><br>
<input type="submit" value="login">
</form>
</body>
</html>
------------------------------------------------------------------------------------------
LoginCon.jsp
package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/LoginCon")
public class LoginCon extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
String mID = request.getParameter("mID");
String mPW = request.getParameter("mPW");
out.print("mID : " + mID);
out.print("mPW : " + mPW);
HttpSession session = request.getSession();
session.setAttribute("memberId", mID);
response.sendRedirect("loginOK.jsp");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
-----------------------------------------------------------------------------------
loginOK.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
session = request.getSession();
out.print("memberId :" + session.getAttribute("memberId") + "<br>");
%>
</body>
</html>
}
19강 강의 예제 에러
2달 전
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358)
JDBC라이브러리 연결한 후 (WebContent-WEB-INF-lib 에 ojdbc6_g.jar과 ojdbc6.jar 추가)
위와 같은 에러는 없어졌는데 웹페이지에 결과가 나오지 않고 서버를 STOP하면 아래와 같은 에러가 나오네요.
1월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: 서버 버전 이름: Apache Tomcat/8.5.59
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Server 빌드 시각: Oct 6 2020 16:57:18 UTC
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Server 버전 번호: 8.5.59.0
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: 운영체제 이름: Windows 10
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: 운영체제 버전: 10.0
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: 아키텍처: amd64
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: 자바 홈: C:\Program Files\java\jdk1.8.0_261\jre
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: JVM 버전: 1.8.0_261-b12
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: JVM 벤더: Oracle Corporation
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: CATALINA_BASE: D:\jsp\pjt\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: CATALINA_HOME: D:\jsp\apache-tomcat-8.5.59\apache-tomcat-8.5.59
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: 명령 행 아규먼트: -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:57192
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: 명령 행 아규먼트: -javaagent:D:\jsp\eclipse-jee-2019-03-R-win32-x86_64\eclipse\configuration\org.eclipse.osgi\409\0\.cp\lib\javaagent-shaded.jar
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: 명령 행 아규먼트: -Dcatalina.base=D:\jsp\pjt\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: 명령 행 아규먼트: -Dcatalina.home=D:\jsp\apache-tomcat-8.5.59\apache-tomcat-8.5.59
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: 명령 행 아규먼트: -Dwtp.deploy=D:\jsp\pjt\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: 명령 행 아규먼트: -Djava.endorsed.dirs=D:\jsp\apache-tomcat-8.5.59\apache-tomcat-8.5.59\endorsed
11월 15, 2020 12:03:02 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: 명령 행 아규먼트: -Dfile.encoding=MS949
11월 15, 2020 12:03:02 오전 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
정보: 프로덕션 환경들에서 최적의 성능을 제공하는, APR 기반 Apache Tomcat Native 라이브러리가, 다음 java.library.path에서 발견되지 않습니다: [C:\Program Files\java\jdk1.8.0_261\bin;C:\windows\Sun\Java\bin;C:\windows\system32;C:\windows;C:\Program Files\java\jdk1.8.0_261\jre\bin;C:/Program Files/Java/jre1.8.0_261/bin/server;C:/Program Files/Java/jre1.8.0_261/bin;C:/Program Files/Java/jre1.8.0_261/lib/amd64;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\iCLS\;C:\Program Files\Intel\Intel(R) Management Engine Components\iCLS\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\nodejs\;C:\Program Files\Java\jdk-14.0.2\bin;C:\Program Files\Java\jdk-14.0.2\bin;C:\Users\silve\AppData\Local\Microsoft\WindowsApps;C:\Users\silve\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\silve\AppData\Local\atom\bin;C:\Users\silve\AppData\Roaming\npm;C:\Program Files\Java\jdk-14.0.2\bin;;D:\jsp\eclipse-jee-2019-03-R-win32-x86_64\eclipse;;.]
11월 15, 2020 12:03:03 오전 org.apache.coyote.AbstractProtocol init
정보: 프로토콜 핸들러 ["http-nio-8090"]을(를) 초기화합니다.
11월 15, 2020 12:03:04 오전 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
정보: Using a shared selector for servlet write/read
11월 15, 2020 12:03:04 오전 org.apache.catalina.startup.Catalina load
정보: Initialization processed in 3030 ms
11월 15, 2020 12:03:04 오전 org.apache.catalina.core.StandardService startInternal
정보: 서비스 [Catalina]을(를) 시작합니다.
11월 15, 2020 12:03:04 오전 org.apache.catalina.core.StandardEngine startInternal
정보: Starting Servlet Engine: Apache Tomcat/8.5.59
11월 15, 2020 12:03:05 오전 org.apache.jasper.servlet.TldScanner scanJars
정보: 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 스캔했으나 TLD가 없는 JAR들의 전체 목록을 보시려면, 로그 레벨을 디버그 레벨로 설정하십시오. 스캔 과정에서 불필요한 JAR들을 건너뛰면, 시스템 시작 시간과 JSP 컴파일 시간을 단축시킬 수 있습니다.
11월 15, 2020 12:03:06 오전 org.apache.jasper.servlet.TldScanner scanJars
정보: 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 스캔했으나 TLD가 없는 JAR들의 전체 목록을 보시려면, 로그 레벨을 디버그 레벨로 설정하십시오. 스캔 과정에서 불필요한 JAR들을 건너뛰면, 시스템 시작 시간과 JSP 컴파일 시간을 단축시킬 수 있습니다.
11월 15, 2020 12:03:06 오전 org.apache.coyote.AbstractProtocol start
정보: 프로토콜 핸들러 ["http-nio-8090"]을(를) 시작합니다.
11월 15, 2020 12:03:06 오전 org.apache.catalina.startup.Catalina start
정보: Server startup in 1710 ms
11월 15, 2020 12:06:09 오전 org.apache.catalina.core.StandardServer await
정보: 셧다운 포트를 통해 유효한 셧다운 명령을 받았습니다. 서버 인스턴스를 중지시킵니다.
11월 15, 2020 12:06:09 오전 org.apache.coyote.AbstractProtocol pause
정보: 프로토콜 핸들러 ["http-nio-8090"]을(를) 일시 정지 중
11월 15, 2020 12:06:10 오전 org.apache.catalina.core.StandardService stopInternal
정보: 서비스 [Catalina]을(를) 중지시킵니다.
11월 15, 2020 12:06:10 오전 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesJdbc
경고: 웹 애플리케이션 [dataPjt]이(가) JDBC 드라이버 [oracle.jdbc.OracleDriver]을(를) 등록했지만, 웹 애플리케이션이 중지될 때, 해당 JDBC 드라이버의 등록을 제거하지 못했습니다. 메모리 누수를 방지하기 위하여, 등록을 강제로 제거했습니다.
11월 15, 2020 12:06:10 오전 org.apache.catalina.loader.WebappClassLoaderBase checkThreadLocalMapForLeaks
심각: 웹 애플리케이션 [dataPjt]이(가), 타입 [java.lang.ThreadLocal]인 키와 (값: [java.lang.ThreadLocal@18e9fcb4]) 타입 [java.lang.Class]인 값을 (값: [class oracle.sql.AnyDataFactory]) 사용하여 ThreadLocal 객체를 생성했지만, 웹 애플리케이션이 중지될 때 그것을 제거하지 못했습니다. 혹시 있을 법한 메모리 누수를 방지하기 위하여, 시간을 두고 쓰레드들을 재생성할 것입니다.
11월 15, 2020 12:06:10 오전 org.apache.catalina.loader.WebappClassLoaderBase checkThreadLocalMapForLeaks
심각: 웹 애플리케이션 [dataPjt]이(가), 타입 [java.lang.ThreadLocal]인 키와 (값: [java.lang.ThreadLocal@4911b1b]) 타입 [java.lang.Class]인 값을 (값: [class oracle.sql.TypeDescriptorFactory]) 사용하여 ThreadLocal 객체를 생성했지만, 웹 애플리케이션이 중지될 때 그것을 제거하지 못했습니다. 혹시 있을 법한 메모리 누수를 방지하기 위하여, 시간을 두고 쓰레드들을 재생성할 것입니다.
11월 15, 2020 12:06:10 오전 org.apache.coyote.AbstractProtocol stop
정보: 프로토콜 핸들러 ["http-nio-8090"]을(를) 중지시킵니다.
11월 15, 2020 12:06:10 오전 org.apache.coyote.AbstractProtocol destroy
정보: 프로토콜 핸들러 ["http-nio-8090"]을(를) 소멸시킵니다.
실행 시 html 구문만 나와요.
3달 전
안녕하세요. 맛보기 servlet를 실행했는데
브라우저에 아래 처럼 나옵니다. 무엇이 잘못된 걸까요??Served at: /testWebPjt1<html><head></head><body><p>Hello Servlet!!</p></body></html>
HTTP 상태 404 오류
3달 전
강의 내용 그대로 작성하였고
login.jsp를 실행하여 ID, PW 를 기입하여 SUBMIT을 하면 HTTP 상태 404 오류가 발생합니다. console에서 오류 발생이 없습니다. loginOk.jsp를 실행하면 정상적으로 작동합니다. 오류 원인을 못찾겠습니다.
con = DriverManager.getConncetion(url, id, pw); 여기서 빨간줄 가고 createStatement 란 것이 없다고 뜹니다. 어떻게 해결해야 하나요?
4달 전
con = DriverManager.getConncetion(url, id, pw); 여기서 빨간줄 가고 createStatement 란 것이 없다고 뜹니다. 어떻게 해결해야 하나요?
lec18pjt001 예제 오류
4달 전
servlet을 돌리려고 id를 "c##scott", pw를 "tiger"로 정확히 입력했는데 자꾸 "사용자명/비밀번호가 부적합, 로그온할 수 없습니다." 라고 뜹니다. 혹시 driver나 url이 문제여서 그런 경우는 없죠? 오라클에서 직접 아이디와 비밀번호 칠 땐 로그온할 수 있는데 어째서인지 servlet을 통해서는 부적합하다고만 하네요. 참고로 c##scott이라고 아이디를 지은 이유는 cmd에서 new user 만들 때 scott이 안되서 c##을 붙인겁니다.
chain.doFilter(req,res) 역할 궁금합니다.
4달 전
req.setCharacterEncoding을 먼저하는 이유가 chain.doFileter(req,res)에서 내용을 받기 전에 인코딩을 설정해야 UTF-8형태로 받을 수 있다는거죠? chain.doFilter에 파라미터로 res가 나온다는건 서버를 이미 거치고 난 뒤의 response까지 받는 다는거고, 영상에는 안나왔지만 response filter를 설정해두면 filtering 후 client에게 내용이 간다는거죠?