#html 측면(servlet에 form 태그 내용 전달하는 방법)
<form> 태그 안의 <submit>을 누르면
<form> 태그의 action attribute가 가리키는 servlet에 <form>태그의 내용이 전달됩니다.
<form action="login">
가령, 위 코드와 같은 경우 servlet mapping이 login인 servlet으로 <form>태그 내용이 전달됩니다.
@WebServlet("/login")
#servlet 측면(서블릿에서 클라이언트의 요청을 얻는 방법)
|메서드들
메서드 | 기능 |
String getParameter(String name) | name의 값을 알고 있을 때 그리고 name에 대한 전송된 값을 받아오는데 사용합니다 |
String[] getParameterValues(String name) | 같은 name에 대해 여러 개의 값을 얻을 때 사용합니다. checkbox, radio button 등 |
Enumeration getParameterNames() | name 값을 모를 때 사용합니다. |
#실습
##환경설정
1. 새 프로젝트 생성
2. 프로젝트 우클릭 - build path - configure build path
3. java build path - class path에 포커스 두고 우측 add external jars클릭
4. apachi-tomcat/lib 폴더에 servlet-api.jars 추가 - apply and close
##코드 작성
1. html(project/src/main/webapp/login.html)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--name이 frmLogin인 from 태그, get방식으로 mapping이름이 login인 servlet에 form 내용 전송-->
<form name="frmLogin" method="get" action="login" encType="UTF-8">
아이디:<input type="text" name="user_id"><br>
비밀번호:<input type="password" name="user_pw"><br>
<input type="submit" value="로그인"><input type="reset" value="초기화">
</form>
</body>
</html>
2. servlet(project\src\main\java\sec01\ex01\LoginServlet.java)
package sec01.ex01;
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;
/**
* Servlet implementation class LoginServlet
*/
//servlet mapping이 login임
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
System.out.println("init called");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
System.out.println("destroy called");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
//요청의 내용을 받아옴(request.getParameter:name을 알고 값이 하나일 때)
String user_id = request.getParameter("user_id");
String user_pw = request.getParameter("user_pw");
System.out.println("아이디:"+user_id);
System.out.println("비밀번호:"+user_pw);
}
}
##테스트
1. 로컬 서버에서 html파일 실행 - form 내용 입력
2. submit(해당 파일에선 로그인 버튼) 클릭
이런식으로 웹을 통해 클라이언트의 요청을 서버로 받아올 수 있다.
'web > Servlet' 카테고리의 다른 글
Servlet mapping 하는 법(annotation사용) (0) | 2021.07.21 |
---|---|
서블릿의 기본 기능 세 가지 (0) | 2021.07.06 |
Servlet mapping 하는 법(xml 사용) (0) | 2021.07.03 |
아파치 톰캣 다운로드 및 설치 (0) | 2021.07.03 |
Eclipse 설치 (0) | 2021.07.03 |