[back-end] 11

JSP에서 페이지 이동하는 두가지 방식 (sendRedirect, forward)

JSP에서 페이지 이동하는 두가지 방식 1. response.sendRedirect("경로명"); - 아예 다른 페이지로 이동 - 데이터 유지되지 않음 - url이 바뀜 2. request.getRequestDispatcher("경로명").forward(request, response); - 현재 페이지에서 작업하던걸 똑같이 다른 페이지에서 이어서 작업할때 사용 - request 속성, 파라미터 값이 유지됨 - url이 바뀌지 않음 간단하게 생각하면 request에 저장된 속성값이나 파라미터 값을 페이지 이동해서도 사용해야 하면 포워드 방식을 쓰고, 단순히 페이지만 이동하는 거라면 리다이렉트 방식을 사용하면 된다. 반드시 데이터를 유지시켜야 되는 것이 아니라면 리다이렉트 방식을 쓰는 것이 좋음

JSP 페이지 넘어갈때 값 전달하기(request의 Attribute,Parameter)

1) 저장소 종류 및 구분 범위 (Scope) 사용하는 곳 pageContext 해당 페이지에서만 유효 범위가 좁아 거의 사용 안함 request 요청이 처리되는 동안만 유효 (여기서 요청은 포워딩, include 등 요청을 연결시킬 근거가 있어야됨) MVC 패턴에서 Model 을 View 로 전달할때 사용 session 세션이 유지되는 동안 유효 (브라우저 실행되는 동안, 1브라우저 1세션) 로그인 정보, 장바구니 등 application 웹 어플리케이션이 실행되고 있는 동안 유효 (1WAS 1어플리케이션) 서버에 부담을 줄 수 있어서 거의 사용 안함 2) 속성과 파라미터 차이 속성 Attribute 파라미터 Parameter 값 전달 저장소 객체.setAttribute("변수명", "담을 데이터");..

JSP 내장객체 9가지

javax.servlet.jsp.PageContext pageContext; javax.servlet.http.HttpSession session; javax.servlet.ServletContext application; javax.servlet.http.HttpServletRequest request; javax.servlet.http.HttpServletResponse response; javax.servlet.jsp.JspWriter out; java.lang.Object page; java.lang.Throwable exception; javax.servlet.ServletConfig; - 이상 객체는 선언하거나 생성하지 않아도 .jsp 파일에서 바로 사용할 수 있다 - request 객체와 r..

소켓프로그래밍 - 멀티 유저 채팅 프로그램

다중의 클라이언트끼리 채팅하는 프로그램 - 각각 클라이언트마다 서버가 1:1로 연결되어 있으나 서버는 입력,출력하는 역활을 하지 않고 클라이언트가 입력한 값을 받아서 서버에 연결되어 있는 모든 클라이언트에게 전송하는 쓰레드를 만들고, 관리하는 역활만 함 TCP 서버 package ex06multiuser2; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; //tcp 서버 클래스 class ServerClass { private ArrayList threadList = new ArrayList(); public ServerClass(int port) throw..

소켓프로그래밍 - 양방향 소켓

클라이언트와 서버가 1:1 통신하는 프로그램 - Socket을 받아서 해당 Socket으로 문자 전송하는 쓰레드(입력쓰레드), 문자 받는 받는 쓰레드(출력쓰레드) 만듬 - 서버 실행 후 listen 상태에 있다가 connect 될때마다 입력쓰레드, 출력쓰레드 생성 - 클라이언트 실행 시 서버에 연결 후 입력쓰레드, 출력쓰레드 생성 - 서버 입력쓰레드 -> 클라이언트 출력쓰레드, 클라이언트 입력쓰레드 -> 서버 출력쓰레드 입력 쓰레드 package ex05threadtcp; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.util.Scanner; class ThreadSend ext..

소켓프로그래밍 - 단방향 소켓 프로그램

단방향 소켓 프로그램 - 서버 소캣을 열어놈 - 클라이언트에서 접속 시도 - 접속 성공시 서버에서 "여보세요~" 문자열 클라이언트에 전송 - 클라이언트 접속 해제 TCP 서버 package ex01tcp; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class TCPServer { //전화 받는쪽 public static void main(String[] args) throws IOException { //1024이하의 포트 번호는 고정 포트기 때문에 사용X, 그외 아무 포트 사용 가능 ServerSocket ss = new Serv..

program, process, thread

- 프로그램(program) : 어떤 파일이나 소스가 디스크에 있는 상태 ex) 메모장 실행파일 notepad.exe - 프로세스(process) : 디스크에 있는 프로그램이 메모리에 올라와 있는 상태 ex) 메모장이 화면에 보일때 - 쓰레드(thread): 프로세스 위에서 동작하는 경량 프로세스(Lightweight Process), 기본은 1 process - 1 thread 1. single thread: 1 process - 1 thread (작업이 발생할 때마다 프로세스를 생성해야되서 시스템 과부화가 생김) ex) 일하는 사원 1명 - 복사기 1대 2. multi thread: 1 process - 여러 thread (시스템 과부화를 줄여줌) ex) 일하는 사원 1명 - 복사기 3대 thread..

소켓 프로그램

- 웹 소켓: A 와 B가 연결을 할려 그럼 A ip, A port, B ip, B port 가 필요 A는 connect 상태 B는 listen 상태였다가 전송이 오면 accept 상태가 됨(통신이 연결됨) send / receive A close, B close - 일방형 통신 프로그램(무전기) 서버 package tcp; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class TCPServer { //전화 받는쪽 public static void main(String[] args) throws IOException { //1024..