목록Backend/JSP (10)
만족
Session은 Client와 Server가 관계를 유지하는 방법으로써 사용된다. Client가 Server에 request를 보내면 Server는 Client는 고유한 ID를 가진 Session 객체를 만든다. Session은 쿠키와는 다르게 Client측에 데이터를 저장하지 않고 Server에 저장하기 때문에 쿠키보다 보안상 안전하다. JSP에서는 Session객체를 session변수를 이용해 접근할 수 있다. [Session에 Data Set] session.setAttribute("name1", "value1"); session.setAttribute("name2", "value2"); 처럼 저장한다. setAttribute의 첫 매개변수는 String type으로 된 해당 data의 key값이다..
외부에서 웹사이트의 접속 등에 의하여 서버에 접속하게 되면, 서버는 1명당 1개의 커넥션 객체를 만들게 되는데 필요할 때마다 1개씩 새로 만들게 되면 한번에 많은 인원이 접속할 때 서버에 큰 부하가 걸리게 된다. 미리 커넥션 객체를 여러 개 만들어서 부하를 줄일 수 있는 방법이 있는데, 그것을 커넥션 풀 이라고 한다. Servers의 context.xml의 Context태그 내부에 다음 태그를 추가한다. 여기에서 maxActive는 미리 만들어 둘 커넥션 객체의 갯수이다. maxWait는 미리 만들어 둔 커넥션 객체를 초과하여 커넥션 객체가 필요할 경우, 새로운 객체를 만들기까지 대기하는 시간이다. 또한 이렇게 지정해 두면, Java에서 데이터베이스를 사용할 때 상당히 편리하다. 기존의 Database ..
DAO와 DTO는 Database와 통신 시에 사용하는 Design Pattern중 하나이다. DAO는 Data Access Object로 데이터베이스에 접근 할 때 사용하는 객체이고 DTO는 Data Transfer Object로 Database에 Access하여 가져온 데이터들을 규격화한 객체이다. DAO/DTO 패턴을 사용하면 반복되는 코드가 줄어들고, 규격화된 데이터들로 인해 효율성이 증가한다. 예를 들어 member라는 table을 대상으로 DAO/DTO 패턴을 적용하면 public class MemberDAO { public MemberDAO() { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (Exception e) { S..
Servlet이 초기에 생성될 때 필요한 기본적 Parameter 외에 개발자가 따로 필요한 정보가 있다면 web.xml이나 그 Servlet안에서 직접 필요한 Parameter를 임의로 넣어줄 수 있다. Method 1) Servlet파일 내의 Annotation에 직접 기술 @WebServlet("MAPPING NAME") 처럼 되어 있는 기본 WebServlet annotation을 다음과 같이 변경한다. @WebServlet(urlPatterns={"MAPPING NAME"}, initParams={@WebInitParam(name="name1", value="value1"), @WebInitParam(name="name2", value="value2")}) WebServlet의 매개변수에 ini..
어떤 객체에 대해서, 자바코드 대신 JSP 액션태그를 이용해서 변수의 값을 set, get 하는 방식. 예를 들어 다음 클래스가 있다고 하자. package com.javac.ex; public class Student_Bean {private String name;private int age;private int grade;private int studentNum;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getGrade() {r..
기존의 Statement클래스를 이용한 SQL문의 실행은 문자열을 합치고 문자열 데이터의 경우 ' '로 감싸주는 등의 번거로움이 많고 실수를 유발하는 경우가 많기 떄문에 이를 보완한 PreparedStatement클래스를 사용한다. connection.createStatement(); 로 Statement객체를 불러오는 대신 connection.prepareStatement("Insert SQL"); 로 PreparedStatement객체를 불러온다. prepareStatement()의 매개값으로는 SQL문을 넣어주면 된다. ex) insert를 사용하려면 PreparedStatement prestm= connection.prepareStatement("insert into member (c1, c2, ..
설명은 Oracle Database 11g Express Edition으로 한다. .java파일(Servlet)에서 Oracle Database를 이용하는 방법을 알아보자. doPost()나 doGet()중에서 사용하는 Method를 선택하여 다음의 코드를 삽입한다. doPost를 기준으로 설명하면 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub request.setCharacterEncoding("EUC-KR");//특정 Database와의 연결 정보를 담는 ObjectConnec..
[포워드(Forward)] 지정한 정보를 가지고 다른 페이지로 이동한다. ex) 다음의 코드로 param1과 param2를 가지고 targetPage.jsp로 이동한다. targetPage.jsp에서는 Sended Param1: Sended Param2: 처럼 parameter로 전달했던 정보를 얻어올 수 있다 을 사용하지 않으면 매개변수 없이도 페이지를 이동할 수 있다. 포워드의 경우에는 서버 내부에서 페이지를 이동하기 때문에, 실제로는 targetPage.jsp로 이동했더라도 클라이언트 측 URL은 변하지 않는다. [리디렉션(Redirection)] 포워드와 마찬가지로 페이지를 이동한다. 단, 이동할 때 매개값을 전달하여 이동하고 싶을 경우에는, URL에 데이터를 실어서 전달한다. URL에 데이터가 ..