JSP reponse 객체

MINJU KIM·2023년 12월 1일

JSP

목록 보기
5/30

내장 객체

reponse 객체

요청에 대한 응답을 브라우저로 보내주는 역할
HTML 의 <a>, 자바스크립트의 location과 비슷하다.
뭔가를 다시 클라이언트한테 보여줄 때, 뷰를 다시 보여줄 때.

기능

  • 페이지 이동 (리다이렉트)
  • HTTP헤더에 응답헤더 추가

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Response</title>
</head>
<body>

<h2> 1. 로그인 폼</h2>

<%
String loginErr = request.getParameter("loginErr");
if(loginErr != null){
    out.println("로그인 실패");
}
%>
<form action="./Responselogin.jsp" method="post">
    아이디 : <input type="text" name="user_id"/><br/>
    패스워드 : <input type="text" name="user_pwd"/><br/>
    <input type="submit" value="로그인"/>

</form>



</body>
</html>
//Responselogin
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Responselogin</title>
</head>
<body>
<%
    String id = request.getParameter("user_id");
    String pwd = request.getParameter("user_pwd");


    if(id.equalsIgnoreCase("must") && pwd.equals("1234")){
        response.sendRedirect("ResponseWelcome.jsp");
    }else {
        request.getRequestDispatcher("ResponseMain.jsp?loginErr=1").forward(request, response);
    }

%>
</body>
</html>
//ResponseWelcome
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>ResponseWelcome</title>
</head>
<body>
<h2>로그인 성공! </h2>
</body>
</html>

로그인 실패시

  • 성공시에는 ResponseWelcome을 받아서 로그인 성공!이라고 뜬다.

HTTP 응답 헤더 설정하기


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Response</title>
</head>
<body>

<h2> 1. 로그인 폼</h2>

<%
String loginErr = request.getParameter("loginErr");
if(loginErr != null){
    out.println("로그인 실패");
}
%>
<form action="./Responselogin.jsp" method="post">
    아이디 : <input type="text" name="user_id"/><br/>
    패스워드 : <input type="text" name="user_pwd"/><br/>
    <input type="submit" value="로그인"/>

</form>

<h2>http 응답 헤더 추가하기</h2>
<form action = "./ResponseHeader.jsp" method="get">
    날짜 형식 : <input type="text" name="add_date" value ="2021-10-25 09:00"><br/>
    숫자 형식 : <input type="text" name="add_int" value ="8282"><br/>
    문자 형식 : <input type="text" name="add_str" value ="홍길동"><br/>
    <input type="submit" value ="응답 헤더 설정& 출력"><br/>
</form>


</body>
</html>
  //responseHeader
  <%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.Collection" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>

<%
//응답 헤더에 추가할 값 준비
    SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    long add_date = sd.parse(request.getParameter("add_date")).getTime();
    int add_int = Integer.parseInt(request.getParameter("add_int"));
    String add_str = request.getParameter("add_str");


//    응답 헤더에 값 추가
    response.addDateHeader("myBirthday", add_date);
    response.addIntHeader("myNumber", add_int);
    response.addIntHeader("myNumber", 1004);//추가
    response.addHeader("myName", add_str);
    response.setHeader("myName", "안중근");//수정


%>

<head>
    <title>ResponseHeader</title>
</head>
<body>
<h2>응답 헤더 정보 출력하기</h2>
<%
    Collection<String> headerNames = response.getHeaderNames();
    for (String hName : headerNames){
        String hValue = response.getHeader(hName);
        %>
<li><%= hName %> : <%= hValue %></li>

<%
    }
    %>
<%--끊어서 닫아도... ? 나온다 --%>

<h2>myNumber만 출력하기</h2>

<%
Collection<String> myNumber = response.getHeaders("myNumber");
for(String myNum : myNumber){
%>
<li> myNumber : <%= myNum %></li>
<%

}
%>

</body>
</html>



설정에서 매번 나오는 거 안나오도록 설정할 수 있다.


웹 앱 설계의 기본 화면 설계서 작성 참고하자
https://brunch.co.kr/@cysstory/153
플로우차트 등 중요하다
권한관리 등도 하면 좋다

0개의 댓글