톰캣과 오라클 서버 충돌시

Back-End/Problems 2019. 5. 1. 14:04

포트번호 8080 -> 다른번호로 변경하면됨 (톰캣)



출처

https://coding-factory.tistory.com/13

'Back-End > Problems' 카테고리의 다른 글

useBean HTTP 500에러  (0) 2019.05.08
오라클 토드 오류 해결법  (0) 2019.05.08
오라클 삭제 방법  (0) 2019.05.01
JAVA 파일 이클립스 없이 컴파일 하기(class파일 만들기)  (0) 2019.04.30
액션 태그 주석  (0) 2019.04.30
:

오라클 삭제 방법

Back-End/Problems 2019. 5. 1. 13:39

오라클 삭제 방법

https://blog.naver.com/likeashaha/221338496471

:

19.04.30 서블릿 기초 문법

Back-End/JSP 2019. 4. 30. 22:40

-서블릿 이란?-


웹 프로그래밍을 제공하기 위해서 JSP보다 먼저 나온기술로 JSP와 마찬가지로 웹페이지에서 호출을 하여 실행 결과를

브라우저를 통해 제공합니다.



서블릿의 장점

 서블릿의 단점

 

 JSP에는 없는 서버 측 프로그램의 기능이 있다.


대기업에서 사용하는 프레임워크의 기초 기술로 사용 된다.

 HTML, CSS 및 자바스크립트 그리고 웹디자인과 연동하기에는 어렵다.



 

-서블릿 예제 및 출력-

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package ch08;
 
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;
 
/**
 * Servlet implementation class ExampleServlet01
 */
@WebServlet("/ch08/exampleServlet01"// 서블릿이 호출될 이름을 선언합니다.
public class ExampleServlet01 extends HttpServlet { // 블릿으로 만들기 위해서는 반드시 상속해야할 클래스 입니다.
    private static final long serialVersionUID = 1L;
 
    /**
     * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
 
        response.setContentType("text/html; charset=EUC-KR"); // 브라우저로 응답 할 때의 타입과 문자셋 설정입니다.
        PrintWriter out = response.getWriter(); // 브라우저에 출력하기 위한 스트림 입니다.
        // html 시작
        out.println("<html>");
        out.println("<body>");
        out.println("<h1>이클립스로 서블릿 만들기</h1>");
        out.println("</body>");
        out.println("</html>");
        // html 끝
 
    }
 
}
 
cs

 

 

-서블릿 맵핑 방식-

 

서블릿을 실행하기 위해서는 브라우저에서 ul상에 표시되는 서블릿의 가상의 이름을 설정 해야 합니다.

서블릿 맵핑을 만드는 이유는 클래스 이름으로 실행하기 위한 이름은 너무 길고 그리고 보안에 노출되어 있는 경로를 간단하게

표시하기 위해서 입니다.

서블릿 맵핑은 2가지 방법이 제공됩니다.

첫 번째는 web.xml에서 설정하는 방법이고 두 번째는 서블릿 코드에 @WebServlet(어노테이션)으로 설정하는 방법이 제공 됩니다.

 

 

 

-서블릿의 주요 클래스-

 

 

  *HttpServlet

 

  *HttpServletRequest

 

  *HttpServletResponse

 

  *HttpSession

 

 

 

 

-HttpServlet-

 

HttpServlet 클래스는 서블릿을 만들기 위해 반드시 상속해야 할 필수 클래스입니다.

존재 목적 자체가 서블릿을 만들기 위해서 제공되는 클래스 입니다.

 

 

  Servlet(인터페이스) - GenericServlet(추상클래스) - HttpServlet

 

 

메소드

설명 

 

void init( )

 

서블릿의 객체가 생성 될 때 호출되는 메소드 

 

void destroy( )

 

서블릿의 객체가 메모리에서 사라질 때 호출되는 메소드 

 

void service(request, response)

 

서블릿의 요청이 있을 때 호출되는 메소드 

 

void doGet(request, response)

 

html에서 form의 메소드가 get일 때 호출되는 메소드 

 

void doPost(request, response)

 

html에서 form의 메소드가 pst일 때 호출되는 메소드 

 

 

 

-HttpServletRequest-

 

클라이언트가 데이터를 입력하거나 또는 클라이언트의 정보에 대한 요청 값을 가지고 있는 클래스

 

 메소드

 설명

 

String getParameter(name)

 

 name에 할당된 값을 반환하며 지정된 파라미터 값이 없으면 null 값을 반환합니다.

 

String[] getParameterValues(name)

 

 name의 모든 값을 String 배열로 반환합니다. 

 

Enumeration getParameterNames( ) 

 

 요청에 사용된 모든 파라미터 이름을 java.util.Enumeration 타입으로 반환합니다.

 

void setCharacterEncoding(env)

 

 post 방식으로 요청된 문자열의 character encoding을 설정합니다.

 

 

 

-HttpServletResponse-

 

클라이언트가 요청한 정보를 처리하고 다시 응답하기 위한 정보를 담고 있는 클래스 입니다.

 

 

메소드

 

 설명

 

void setHeader(name, value)

 

 응답에 포함될 Header를 설정합니다.

 

void setContentType(type)

 

 출력되는 페이지의 contentType를 설정합니다.

 

String getCharacterEncoding( )

 

 응답 페이지의 문자 인코딩 Type을 반환합니다.

 

void sendRedirect(url)

 

 지정된 URL로 요청을 재전송 합니다.

 

 

 

-HttpSession-

 

클라이언트가 세션에 정보를 저장하고 세션 기능을 유지 하기 위해서 제공되는 클래스입니다.

 

 메소드

 설명

 

 String getld( )

 

 해당 세션의 세션 ID를 반환합니다.

 

long getCreationTime( )

 

 세션의 생성된 시간을 반환합니다.

 

long getLastAccessedTime( )

 

 클라이언트 요청이 마지막으로 시도된 시간을 반환합니다.

 

void setMaxInactiveInterval(time)

 

 세션을 유지할 시간을 초단위로 설정합니다.

 

int getMaxInactiveInterval( )

 

 setMaxInactiveInterval(time)로 지정된 값을 반환합니다. 기본값은 30분으로 지정됩니다.

 

boolean isNew( )

 

 클라이언트 세션 ID를 할당하지 않은 경우 true 값을 반환합니다.

 

void invalidate( )

 

 해당 세션을 종료 시킵니다.

 

 

 

-서블릿의 라이프 사이클-

 

서블릿은 클라이언트가 브라우저에서 서블릿으로 요청을 하면 해당 서블릿은 언제 객체가 만들어지고,

언제 기존의 객체를 재활용하고 언제 종료가 되는지에 따른 라이프 사이클이 존재한다.

 

 

  * init( ) : 서블릿이 처음으로 요청이 되어 객체가 생성될 때 호출되는 메소드

 

  * service( ) : 클라이언트의 요청이 있을 때마다 호출되는 메소드

 

  * destroy( ) : 서블릿 서비스의 종료 및 재시작 그리고 서블릿 코드가 수정이 될 때 호출되는 메소드

 

  * doGet( ) : 클라이언트 요청 할 때 form의 method가 get 방식일 때 호출되는 메소드

 

  * doPost( ) : 클라이언트 요청 할 때 form의 method가 post 방식일 때 호출되는 메소드

 

 

 

 

  클라이언트 서블릿 요청 -> init (최초 한번 호출) -> service, doGet, doPost(반복적 호출) -> destroy(마지막 한번 호출)

 

 

 

-예제 및 출력결과-

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package ch08;
 
import java.io.IOException;
 
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@SuppressWarnings("serial")
@WebServlet("/ch08/ExampleServlet02"// <-서블릿 맵핑 이름을 선언
public class ExampleServlet02 extends HttpServlet {
 
    @Override
    public void init(ServletConfig config) throws ServletException {
        System.out.println("init 호출"); // 톰캣 서버 콜솔 화면에 출력 (서블릿의 객체가 생성이 될때 한번만 호출되는 메소드)
    }
 
    @Override
    public void destroy() {
        System.out.println("destroy 호출"); // 톰캣 서버 콜솔 화면에 출력 (서블릿의 서비스가 종료되거나 재시작될때 호출되는 메소드)
    }
 
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("service 호출"); // 톰캣 서버 콜솔 화면에 출력 (서블릿을 호출 할 때 마다 반복되어 호출되는 메소드)
    }
}
 
cs

 

 

 

 

-서블릿의 요청 방식-

 

get 방식 

 post 방식

 *일반적으로 검색이나 조건을 다른 페이지로 전송할 때 사용하는 방식.

 

*get 방식은 url에 노출이 되는 특징이 있기 때문에 보안적인 내용은 사용금지

 

 

 *브라우저에서 게시판에 글을 입력하거나 또는 회원가입을 하는

기능으로 다른 페이지로 전송할 때 사용하는 방식

 

*url 상에 노출이 되지 않고 html 헤더 값에 같이 전송되는 방식

 

 

 

 

 

 

 

 

 

 

:

서블릿 API

Back-End/API 2019. 4. 30. 21:37

서블릿에서 제공되는 모든 클래스의 API(Servlet 4.0)

https://tomcat.apache.org/tomcat-9.0-doc/servletapi/index.html

'Back-End > API' 카테고리의 다른 글

Spring API ( HttpServletRequest, HttpServletResponse )  (0) 2019.06.27
Spring API (@RequestBody와 ResponseEntity의 차이점)  (0) 2019.06.27
스프링 AOP JoinPoint 객체  (0) 2019.06.23
java.io 패키지  (0) 2019.04.21
java.util.stream  (0) 2019.04.20
:

19.04.30 DBMS를 조작할 때 필요한 기본 지식

Back-End/Data Base 2019. 4. 30. 20:38

-커넥션-

 

로그인해서 프롬프트가 표시되었다는 것은 로그인 전과 로그인 후로 사용자와 MySQL의 관계가 변했다는 것을 의미합니다.

이는 사용자와 MySQL이 접속되었다. 즉 연결되었다는 뜻입니다.

이 연결이라는 것을 시스템 세계에서는 '커넥션' 이라고 부릅니다.

 

 

 

-프롬프트란?-

 

'사람에게 무언가를 하라고 재촉할때 사용하는 말' 입니다.

따라서 'mysql>'이란 MySQL이 사용자를 향해서 '명령을 입력하라'고 재촉하는 것입니다.

또한, 프롬프트 문자열은 DBMS의 설정을 수정하면 사용자가 좋아하는 문자열로 바꿀 수 있습니다.

 

 

 

-커넥션의 상태를 조사하는 명령-

 

 

  mysql> show status like 'Threads_connected';

 

 

 

 

-로그오프-

 

전화를 거는 것이 '로그인'이라면 전화를 끊는 것에 해당하는 행위는 '로그오프' 입니다.

로그오프를 하면 MySQL과의 커넥션이 끊어집니다.

로그오프 명령은 프롬프트 상태에서 'quit'라고 입력하고 'Enter' 키를 누르면 간단하게 실행됩니다.

 

 

  mysql> quit

 

  Bye 

 

 

 

 

-관리 명령이란?-

 

DBMS는 SQL이외에도 다양한 용도의 명령어를 준비해 두고 있는데, 이것을 '관리 명령' 이라고 합니다.

관리 명령은 DBMS가 정상적으로 동작하는지 감시하거나 DBMS가 이상한 동작을 할 때 문제 해결을 위해

정보수집을 하는 등의 용도로 사용합니다.

해당 명령의 목록은 DBMS의 메뉴얼에 기재되어 있고, 래퍼런스 문서도 있어서 이를 읽어보면 어떠한 정보를 어떤

명령어로 얻을 수 있는지는 알 수 있습니다.

관리 명령에서 중요한 점은 2가지 입니다.

 

 

  *DBMS는 SQL 문 이외에도 '관리 명령'이 있다.

 

  *관리 명령의 종류나 문법은 DBMS에 따라 다르다.

 

 

 

 

-SQL 문과 관리 명령의 구분법-

 

 

  *SQL문은 반드시 'SELECT, INSERT, DELETE, UPDATE' 중 하나의 단어로 시작한다.

 

  *이 외의 단어로 시작한다면 관리 명령이다.

 

  (물론 예외도 있다. CREATE, DROP 등등)

 

 

 

 

-스키마-

 

데이터베이스에서 폴더에 해당하는 개념.

'틀' 이라는 의미입니다.

테이블은 실제로 몇 개의 스키마 속에 저장되는 형식을 취하고 있습니다.

스키마도 폴더처럼 사용자가 자유롭게 만들 수 있어서 용도별로 나누거나

보여주고 싶지 않은 사용자에게는 접근할 수 없도록 제한을 건 스키마를 만드는 등의

관리를 수행하는 것도 가능합니다.

스키마의 상위에는 또 하나의 계층으로 '데이터베이스'가 있습니다.

데이터베이스에는 '계층'을 표시하는 의미도 있기 때문입니다.

 

 

 

-인스턴스-

 

데이터베이스보다 한 층 더 위에 있는 '인스턴스'란 개념이 있습니다.

이것은 물리적 개념으로, DBMS가 동작할 때의 단위입니다.

그래서 OS 입장에서는 '프로세스' 라고도 부릅니다.

DBMS에 따라서는 이것을 '서버 프로세스' 또는 단순히 '서버'로 부르는 경우도 있습니다.

 

 

 

-관계형 데이터베이스의 계층 구조-

 

 

  3계층 : 인스턴스 -> 스키마 -> 테이블 (Oracle, MySQL)

 

  4계층 : 인스턴스 -> 데이터베이스 -> 스키마 -> 테이블 (SQL Server, DB2, PostgreSQL)

 

 

 

 

:

JAVA 파일 이클립스 없이 컴파일 하기(class파일 만들기)

Back-End/Problems 2019. 4. 30. 16:43

JAVA 파일 이클립스 없이 컴파일 하기(class파일 만들기)


C:\apache-tomcat-5.5.25\common\lib 의 servlet-api.jar 파일 복사


C:\Java\jdk1.6.0_03\jre\lib\ext 폴더에 붙여넣기


cmd로 java파일이 있는 경로 설정후 "javac -d ./ 자바파일명.java" 치면 됨


'Back-End > Problems' 카테고리의 다른 글

톰캣과 오라클 서버 충돌시  (0) 2019.05.01
오라클 삭제 방법  (0) 2019.05.01
액션 태그 주석  (0) 2019.04.30
HTML 파일 한글깨짐 해결법  (0) 2019.04.29
HTTP 500오류 해결방법  (0) 2019.04.28
:

액션 태그 주석

Back-End/Problems 2019. 4. 30. 15:28

 

:

a tag href 속성 (#, #none, 링크) 특징

Back-End/JSP 2019. 4. 30. 13:42

출처

https://blog.naver.com/geewonjung/221183653216

: