6월 11일 추가공부!!!
1.Servlet 3가지 기본기능

(1)클라이언트로 부터 요청을 받고
(2)데이터베이스와 연동과 같은 비즈니스로직을 처리함.
(3)처리된 결과를 클라이언트에 응답
2.Servlet 요청과 응답을 수행하는 API기능
HttpServletRequest Http요청과 관련된 클래스
HttpServletResponse Http응답과 관련된 클래스
3.브라우져의 요청
브라우져는 html 의 form태그를 이용한다.
form태그안에 여러가지 정보를 입력하거나 버튼을 클릭하는등 이벤트를 발생시키면 ->서블릿에 이벤트요소를 전달
4.HttpServletRequest의 메서드사용
(1)html에서 값을 읽어오는 메서드
getParameter() ->값이 1개일때
getParameterValues() ->값이 여러개 일때
package study_0611;
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;
@WebServlet("/LoginMapping") //html 의 action="LoginMapping"과 일치시켜줘야한다.
public class Login_00 extends HttpServlet {
public Login_00() { //생성자
super();
}
public void init() throws ServletException { //초기화 init 메서드
System.out.println("init 메서드 호출");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8"); //전송방식
String id=request.getParameter("userId"); //getParameter로 html의 name속성명을 가져옴
String pw=request.getParameter("userPw"); //getParameter로 html의 name속성명을 가져옴
System.out.println("아이디:"+id);
System.out.println("비번:"+pw);
String[] sub=request.getParameterValues("subject"); //동일한 name속성명에 값이 여러개 담길경우 getParameterValues으로
//가져와서 배열에 담아준다.
for(String str:sub) {
System.out.println("선택한과목:"+str);
}
}
public void destroy() { //종료 destroy 메서드
System.out.println("destroy 메서드 호출");
}
}
5.getParameterNames()
회원가입처럼 입력해야할 정보가 많을때 일일히 getParameter(name속성)로 속성을 받아오는것이 매우 번거롭기 때문에 name속성 또한 getParameterNames()로 받아가지고 오는 방법을 알아보자.
package study_0611;
import java.io.IOException;
import java.util.Enumeration;
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;
@WebServlet("/study/study_0611/0611_00.html")
public class Login01 extends HttpServlet {
public Login01() {
super();
}
public void init(ServletConfig config) throws ServletException {
System.out.println("init를 호출했습니다.");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8"); //전송방식
Enumeration enu=request.getParameterNames();
//Enumeration 은 객체들을 집합체 형태로 관리하게 해주는 인터페이스다. 각각의 객체들을 한 번에 하나씩 처리할 수 있는 메소드
//논리적인 커서가 존재하여 커서를 이동하면서 데이터를 꺼내온다.
while(enu.hasMoreElements()) { //꺼낼요소가 있다면
String name=(String)enu.nextElement(); //요소를 꺼내서 name에 담아죠
String [] values=request.getParameterValues(name); //neme에 해당되는 값을 values배열에 담아죠
for(String value:values) {
System.out.println("name="+name+",value="+value);
}
}
}