개발자의 오르막
SW 심화과정 16일차 본문
# Form
- <form method="POST" action="form_test2"></form>
- Form 태그를 통해 전송을 하면, URL에 /form_test2 라는 주소가 붙음
- web.xml 에 /form_test2 라는 url 패턴이 붙는 servlet-mapping 을 만든 후
FormTestServlet 이라는 클래스를 만들어 연결함.
- response.sendRedirect 라는 함수를 통해 다음 페이지로 연결함
package study2;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FormTestServlet extends HttpServlet{
@Override
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
System.out.println("FormTestServlet");
// http://localhost:8081/study2/test_02.html
// /study2 는 콘텍스트의 경로, 그 다음 /는 파일경로
response.sendRedirect("/study2/test_02.html");
}
}
# 쓰레드의 개념
package study3;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*
- 많은 사람들이 동시에 접속해도 동일한 문자열이 계속 찍힌다.
동일한 인스턴스가 재사용되고 있다. (메모리 관리에 있어서 장점)
*/
public class LifeServlet extends HttpServlet {
int i = 0;
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
System.out.println(this.toString());
PrintWriter out = response.getWriter();
out.println("<html><body>");
synchronized (this) {
i = i + 1;
for (int i = 0; i < 50000; i++) {
out.println(this.i);
}
}
out.println("</body></html>");
out.flush();
out.close();
}
}
- 서블릿을 동시에 여러 쓰레드가 공유할 수 있다는 걸 염두해야함.
1. 로컬변수로 만들면, 공유 되는 것을 방지할 수 있음
로컬변수는 함수 호출이 끝나면 자동 제거되기 때문
2. syncrosized를 사용한 동기화를 통해 공유 되는 것을 방지할 수 있음
- 동시 요청시 여러개의 쓰레드가 하나의 서블릿 인스턴스를 사용할 수 있다.
- 모두 로컬변수로만 구현하든지 동기화를 잘 해 주어야 한다.
'교육과정 ( SW 개발자 심화과정 ) > Java' 카테고리의 다른 글
SW 심화과정 18일차 (0) | 2019.08.02 |
---|---|
SW 심화과정 17일차 (0) | 2019.07.31 |
SW 심화교육 15일차 (0) | 2019.07.29 |
SW 심화교육 12일차 (0) | 2019.07.26 |
SW 심화교육 11일차 (0) | 2019.07.25 |
Comments