Servlet은 mvc 요소에서 controller
client 가 웹에 요청할 때 처음 받는 요소임
<form>
<table>
<tr>
<td>수1</td>
<td><input type="text" name="su1"/></td>
</tr>
<tr>
<td>수2</td>
<td><input type="text" name="su2"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="전송"/>
<input type="reset" value="취소"/>
</td>
</tr>
</table>
</form>
여기서 reset은 form에 둘러쌓아져 있어야만 효과가 있는 것이다.(파라 미터들을 모두 취소하라는 의미) submit 역시 form에 둘러쌓아져 있어야 작동하게 된다.
//Controller 역할
@WebServlet("/calc.do")
public class CalcController extends HttpServlet {
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1. 클라이언트에서 넘어오는 폼 파라메터를 받기(파라메터 수집, su1, su2)
// post를 통해 보내진 데이터는 request 를 통해 받아지게 되는 데 여기서 꺼내면 된다.
int su1 =Integer.parseInt(request.getParameter("su1"));
int su2 =Integer.parseInt(request.getParameter("su2"));
//su1~su2 ="
int sum=0;
for(int i=su1; i<=su2;i++)
sum+=i;
PrintWriter out =response.getWriter();
out.println("total="+sum);
}
}
client로 부터 받은 패킷정보는 tomcat에 의해서 request와 response에 각각 저장이 되게 된다.
넘기는 방식
한글을 전달 받을 때 깨지지 않게 저장하는 법
한글 data 2byte라 깨질 수 있다. 데이터 수집 전 request 객체가 한글 받을 수 있게 해줘야 한다.
@WebServlet("/memberInsert.do")
public class MemberInsertController extends HttpServlet {
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8"); //2byte로 받기
// 1. 파라메터 수집 (VO)
String id =request.getParameter("id");
String pass =request.getParameter("pass");
String name =request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String email =request.getParameter("email");
String phone =request.getParameter("phone");
//String id =request.getParameter("id");
//MemberVO vo =new MemberVo(id,pass,name,age,email,phone);
//파라미터 수집은 setter를 통해 하는 것이다.
MemberVO vo =new MemberVO();
vo.setId(id);
vo.setPass(pass);
vo.setName(name);
vo.setAge(age);
vo.setEmail(email);
vo.setPhone(phone);
System.out.println(vo);
}
}
자바는 인터페이스를 만들고 드라이버는 구현 클래스이다. (각회사가 알아서들 구현)
유저는 jdbc 인턴페이스만 알면 된다.