본문 바로가기

정리안된것/웹 애플리케이션

#4주차 수업 post 방식과 get방식의 차이

aranoz 프로젝트를 다이나믹 웹 사이트로 하나 만들어서 aranoz파일을 죄다 옮겨놓았다.

 

index.html, index.jsp 두개를 서버에 올려둡니다.

 

아이디패스워드를 넣었을 때 정해진 아이디 패스워드가 아니면 아니라고 뜨는 프로그램 작성

 

controller에 일단 두개의변수를 둔다

 //SQL문을 이용하여 DB로부터 가져옮
String sName ="dream";
String sPw = "comtrue";
view(login.jsp)의 form태그
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<form class="row contact_form" action="member.do" method="post" novalidate="novalidate">
                                <div class="col-md-12 form-group p_star">
                                    <input type="text" class="form-control" id="name" name="id" value=""
                                        placeholder="Username">
                                </div>
                                <div class="col-md-12 form-group p_star">
                                    <input type="password" class="form-control" id="password" name="password" value=""
                                        placeholder="Password">
                                </div>
                                <div class="col-md-12 form-group">
                                    <div class="creat_account d-flex align-items-center">
                                        <input type="checkbox" id="f-option" name="selector">
                                        <label for="f-option">Remember me</label>
                                    </div>
                                    <button type="submit" value="submit" class="btn_3">
                                        log in
                                    </button>
                                    <a class="lost_pass" href="MeberController.java">forget password?</a>
                                </div>
                            </form>
 
 

 

controller 의 doPost

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//요청을 request 로 받아온다.
// TODO Auto-generated method stub
System.out.println("doPost");
request.setCharacterEncoding("UTF-8"); // POST방식에서 한글 인코딩 설정하는것

//html의 태그 아래 지정된 요소의 name 옵션의 값이 매개변수로 됨

//getParameter의 목적은 

String inputName = request.getParameter("id");
String inputPw = request.getParameter("passward");

if(inputName.equals(sName)&&inputPw.equals(sPw)) {
// login 이라는 이름을 가진 속성과 값을 request 객체에 저장
request.setAttribute("login","올바른 로그인 정보입니다. 로그인 성공");
}else
request.setAttribute("login","잘못된 로그인 정보입니다. 로그인 실패");

//새 페이지를 만들면 request와 response정보가 새로이 만들어지지만
//forward를 사용하면 request와 response정보를 넘겨준다.
//forward는 정보전달을 목적으로 함
request.getRequestDispatcher("confirmation.jsp").forward(request,response);
//System.out.println("dopost"+request.getParameter("name"));

//name 매개변수의 값을 get이라는 이름의 속성으로 request에 저장 
// request.setAttribute("get", request.getParameter("name"));

// request 객체 안에 있는 속성의 값들을 활용해서 처리한 후 전달
//request.getRequestDispatcher("view.jsp").forward(request,response);

//doGet(request, response);
}

servlet의 doGet과 doPost의 차이점
doGet방식은 URL 자체에 정보가 담겨있다. 최대 전송할 수 있는 정보의 용량은 2048바이트이며 URL자체에 정보가 담겨있기 때문에 즐겨찾기, 북마크가 가능하다.
doPost방식은 form을 거쳐 전달된 객체안에 정보가담겨있다. 정보가 URL에 표시된것이아니라 객체의 형태로 전달되기 때문에 보안에 용이하지만 즐겨찾기, 북마크 후 다시 그 페이지로 가면 전달된 정보나 객체가 없기때문에 의미가 없어진다.

 

controller 의 doPost (session이 추가됨.)
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//요청을 request 로 받아온다.
// TODO Auto-generated method stub
//form을 거쳐 전달된 객체안에 정보가 담겨있다.정보가 즐겨찾기, 북마크가 불가능
System.out.println("doPost");
request.setCharacterEncoding("UTF-8"); // POST방식에서 한글 인코딩 설정하는것

//html의 태그 아래 지정된 요소의 name 옵션의 값이 매개변수로 됨
//getParameter의 목적은 
String inputName = request.getParameter("id");
String inputPw = request.getParameter("passward");

//새 페이지를 만들면 request와 response정보가 새로이 만들어지지만
//forward를 사용하면 request와 response정보를 넘겨준다.
//session은 90분동안 유지되기때문에 session에 login 정보를 넘겨줌
HttpSession session = request.getSession();

if(inputName.equals(sName)&&inputPw.equals(sPw)) {
// login 이라는 이름을 가진 속성과 값을 request 객체에 저장
session.setAttribute("login","올바른 로그인 정보입니다. 로그인 성공");
}else
session.setAttribute("login","잘못된 로그인 정보입니다. 로그인 실패");

//정보전달을 목적으로 함
request.getRequestDispatcher("confirmation.jsp").forward(request,response);
//System.out.println("dopost"+request.getParameter("name"));

//name 매개변수의 값을 get이라는 이름의 속성으로 request에 저장 
// request.setAttribute("get", request.getParameter("name"));

// request 객체 안에 있는 속성의 값들을 활용해서 처리한 후 전달
//request.getRequestDispatcher("view.jsp").forward(request,response);

//doGet(request, response);
}
객체 유효범위

JSP 기본 객체

page

request : request.getAttribute("id")

session : setssion.getAttribute("se");

application

EL 기본 객체

pageScope

requestScope : ${requestScope.id}

sessionSope : ${sessionSope.se}

applicationScope

'정리안된것 > 웹 애플리케이션' 카테고리의 다른 글

#10주차 수업  (0) 2019.11.07
#6 주차 수업  (0) 2019.10.17
#3주차 수업  (0) 2019.09.26
#2주차 웹 애플리케이션  (0) 2019.09.19
#1주차 수업 웹 애플리케이션 개발 이해  (0) 2019.09.05