브라우저에서 요청에 대해 서블릿에서 로직 처리 후 다시 브라우저로 되돌리는 과정을 서블릿 response 객체에서 담당한다.
이때, 브라우저에 어떤 타입으로 리턴할 것인가를 지정하는데 이것을 MIME-TYPE 이라고 한다.
바로 전 예제와 같이 아이디와 패스워드를 받아 사용자가 입력한 정보를 출력해주는 서블릿을 작성해보자.
LoginServlet2
package sec02.ex01;
import java.io.IOException;
import java.io.PrintWriter;
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 LoginServlet2
*/
@WebServlet("/login2")
public class LoginServlet2 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("init 메서드 호출");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("distory 메서드 호출");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("요청 성공.");
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8"); // 브라우저에 리턴할 타입을 지정.
PrintWriter out = response.getWriter();
String id = request.getParameter("user_id");
String pw = request.getParameter("user_pw");
String data = "<html>";
data += "<body>";
data += "아이디 : " + id;
data += "<br>";
data += "패스워드:" + pw;
data += "</body>";
data += "</html>";
out.print(data);
}
}
- Response객체의 getWriter 메서드를 사용해 브라우저에 결과 값을 돌려준다.
- 직접 html 코딩을 해서 굉장히 불편해보인다.
login2.html - 자바스크립트로 서블릿 요청
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인창</title>
<script>
function fn_vaildate() {
var frmLogin = document.frmLogin;
var user_id = frmLogin.user_id.value;
var user_pw = frmLogin.user_pw.value;
if(user_id.length == 0 || user_id == '' || user_pw.length == 0 || user_pw == '' ) {
alert('아이디와 비밀번호는 필수입니다.');
}else {
frmLogin.method = 'post';
frmLogin.action = 'login5';
frmLogin.submit();
}
}
</script>
</head>
<body>
<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="button" value="로그인" onClick="fn_vaildate()" />
<input type="reset" value="다시입력" />
<input type="hidden" name="user_address" value="서울시 성북구" />
</form>
</body>
</html>
- html 태그의 form Submit이 아닌 자바스크립트로 유효성 체크 후 서버로 전송.
LoginServlet5
package sec03.ex03;
import java.io.IOException;
import java.io.PrintWriter;
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 LoginServlet5
*/
@WebServlet("/login5")
public class LoginServlet5 extends HttpServlet {
@Override
public void init(ServletConfig config) throws ServletException {
}
@Override
public void destroy() {
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String id = request.getParameter("user_id");
String pw = request.getParameter("user_pw");
String adress = request.getParameter("user_address");
System.out.println("아이디:" + id);
System.out.println("비밀번호:" + pw);
String data = new String("");
data += "<html>";
data += "<body>";
data += "아이디:" + id + "<br>";
data += "패스워드:" + pw + "<br>";
data += "주소:" + adress;
data += "</body>";
data += "</html>";
out.print(data);
}
}
- html 태그 노가다
출처: 자바 웹을 다루는 기술
'프로그래밍 > 자바 웹 프로그래밍' 카테고리의 다른 글
서블릿 리다이렉트 와 바인딩 (0) | 2019.12.26 |
---|---|
서블릿과 DB 연동 (2) | 2019.12.19 |
서블릿 기초 실습 (0) | 2019.12.14 |
서블릿 (0) | 2019.12.14 |
웹 애플리케이션 구동하기 (0) | 2019.12.11 |