• 티스토리 홈
  • 프로필사진
    조별하
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
조별하
  • 프로필사진
    조별하
    • 분류 전체보기 (124)
      • 1. 공부 (0)
        • 기술 면접 (0)
      • 2. 웹개발 (7)
        • Java (1)
        • IT 정보 (5)
        • Error 모음 (1)
      • 3. 개인관심 (1)
        • 전자 (1)
      • GITHUB (5)
      • IT 기술 면접 (3)
      • COMPUTER (2)
      • TASK (1)
      • LANGUAGES (20)
        • Python (3)
        • Django (6)
        • Java (7)
        • Node (1)
        • Jsp (2)
        • R (1)
      • 데이터과학 (2)
        • 머신러닝 및 딥러닝 (2)
      • DATABASE (5)
        • Oracle (2)
      • ISSUE (10)
        • Django (4)
        • Drf (2)
        • Javascript (1)
        • Git (1)
      • JAVA 교육 (65)
        • Java (3)
        • Jquery (2)
        • Sql (16)
        • Jdbc (1)
        • Db (2)
        • Jsp (9)
        • myWeb (15)
        • Servlet (4)
        • Spring (12)
        • Crawling (0)
        • Hosting (1)
      • 정보처리산업기사 (1)
      • EDUCATION (2)
        • IoT 서비스 (2)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 2019/09/30 loginForm.jsp (mvc) test
        2019년 09월 30일
        • 조별하
        • 작성자
        • 2019.09.30.:20

        1. loginForm.jsp

        평소 만드는 로그인 폼을 간단하게 만들어 보도록 하자 단, action으로 값을 보내주지 않는다

        2. loginForm.java

        package net.control;
        
        import java.io.IOException;
        
        import javax.servlet.RequestDispatcher;
        import javax.servlet.ServletException;
        import javax.servlet.http.HttpServlet;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;
        
        public class LoginForm extends HttpServlet {
        
        
        	//결과확인
          	//http://localhost:8090/mvcTest/login.do
        
        	
        	@Override
        	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        			throws ServletException, IOException {
        		// method= get 방식 요청
        		// 페이지 이동
        			
        		//1)
        			//http://localhost:8090/mvcTest/login.do
        			//resp.sendRedirect("control/loginForm.jsp");
        			
        		//2)
        			String view="control/loginForm.jsp";
        			RequestDispatcher rd=req.getRequestDispatcher(view);
        			rd.forward(req, resp);
        	}//doGet() end
        
        	@Override
        	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        			throws ServletException, IOException {
        		// method= post 방식 요청
        	}//dopost end
        
        }//class end
        

        1) loginForm.java 생성시

        "extends HttpServlet" 를 붙여서 HttpServlet 의 부모클래스를 상속받는다

        2) HttpServlet 추상메소드 override 

        override 버튼으로 HttpServlet  에서의 doGet() 과 doPost() 를 오버라이드 해준다

        3) resp.sendRedirect("control/loginForm.jsp")

        를 입력해 주어 위에서 생성해 주었던 loginForm.jsp로 페이지 이동을 해준다

        4) web.jsp 호출 servlet 등록

        <servlet>
        	<servlet-name>loginform</servlet-name>
        	<servlet-class>net.control.LoginForm</servlet-class>
        </servlet>
        
        <servlet-mapping>
        	<servlet-name>loginform</servlet-name>
        	<url-pattern>/login.do</url-pattern>
        </servlet-mapping>
        

         

        http://localhost:8090/mvcTest/login.do

         

         

        5) RequestDispatcher rd=req.getRequestDispatcher(view);
           rd.forward(req, resp);

        를 입력해 주어 위에서 생성해 주었던 loginForm.jsp로 페이지 이동을 해준다

        String view="control/loginForm.jsp";
        RequestDispatcher rd=req.getRequestDispatcher(view);
        rd.forward(req, resp);
        

         

        http://localhost:8090/mvcTest/login.do

        ▶ url주소 다르게 나타난다.

         

        3. loginForm.jsp

        다른방식으로, method 를 post 방식으로 바꾸고, action을 loginproc.do 로 설정을 해 준다

        1) loginproc.do servlet 등록

        <servlet>
        	<servlet-name>loginproc</servlet-name>
        	<servlet-class>net.control.LoginProc</servlet-class>
        </servlet>
        
        <servlet-mapping>
        	<servlet-name>loginproc</servlet-name>
        	<url-pattern>/loginproc.do</url-pattern>
        </servlet-mapping>
        

        2) loginProc.java

        package net.control;
        import java.io.IOException;
        
        import javax.servlet.ServletException;
        import javax.servlet.http.HttpServlet;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;
        
        public class LoginProc extends HttpServlet{
        
        	@Override
        	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        			throws ServletException, IOException {
        		// method= post 방식 요청
        		//<form method=post action=loginproc.do>
        		try{
        			//1) 한글 인코딩
        			resp.setCharacterEncoding("UTF-8");
        			//2) 사용자가 요청한 정보를 변수에 옮겨담기
        			String uid=req.getParameter("uid").trim();
        			String upw=req.getParameter("upw").trim();
        			
        			//3)요청한 사용자에게 응답
        			resp.setContentType("text/html; charset=UTF-8");
        			PrintWriter out=resp.getWriter();
        			out.println("<!DOCTYPE html>");
        			out.println("	<html>");
        			out.println("	<head>");
        			out.println("	<meta charset='UTF-8'>");
        			out.println("	<title>로그인 결과</title>");
        			out.println("	</head>");
        			out.println("	<body>");
        			out.println("	아이디 : <strong>"+uid+"<strong>");
        			out.println("	<hr>");
        			out.println(" 비번 : <strong>"+upw+"<strong>");
        			out.println("</body>");
        			out.println("</html>");
        			out.close();//자원반납
        			
        		}catch(Exception e){System.out.println("요청실패"+e);}
        		
        	}//doPost() end
        			
        }//class end
        

         1. doPost 를 오버라이드로 만들어 준다

        2. resp.setCharacterEncoding("UTF-8"); 인코딩 

         

         

         

        LoginResult.jsp

        package net.control;
        
        import java.io.IOException;
        
        import javax.servlet.RequestDispatcher;
        import javax.servlet.ServletContext;
        import javax.servlet.ServletException;
        import javax.servlet.http.HttpServlet;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;
        import javax.servlet.http.HttpSession;
        
        public class LoginProc extends HttpServlet{
        
        	@Override
        	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        			throws ServletException, IOException {
        		process(req,resp);
        	}//doGet() end
        
        	@Override
        	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        			throws ServletException, IOException {
        		process(req,resp);
        	}//doPost() end
        	
        	protected void process(HttpServletRequest req, HttpServletResponse resp)
        			throws ServletException, IOException {
        		try{
        			req.setCharacterEncoding("UTF-8");
        			String uid=req.getParameter("uid").trim();
        			String upw=req.getParameter("upw").trim();
        			
        			//공유공간: request, session, application
        			//session 객체선언
        			HttpSession session=req.getSession();
        			//application 객체선언
        			ServletContext applicatioin=req.getServletContext();
        			
        			if(uid.equals("WinterNight")&& upw.equals("1234")){
        				//로그인이 성공
        				req.setAttribute("r_uid", uid);
        				req.setAttribute("r_upw", upw);
        				session.setAttribute("s_uid",uid);
        				session.setAttribute("s_upw",upw);
        				applicatioin.setAttribute("a_uid", uid);
        				applicatioin.setAttribute("a_upw", upw);
        				
        				req.setAttribute("msg", "로그인성공~!~!");
        				req.setAttribute("img", "<img src='control/face-glasses.png'>");
        				
        			}else{
        				//로그인 실패
        				req.setAttribute("r_uid", "guest");
        				req.setAttribute("r_upw", "guest");
        				session.setAttribute("s_uid","guest");
        				session.setAttribute("s_upw","guest");
        				applicatioin.setAttribute("a_uid", "guest");
        				applicatioin.setAttribute("a_upw", "guest");
        				
        				req.setAttribute("msg", "로그인실패~!~!");
        				req.setAttribute("img", "<img src='control/face-surprise.png'>");
        			}//if end
        			
        			//뷰페이지 이동
        			String view="control/loginResult.jsp";//위에서 받은 uid,upw 값을 loginResult.jsp로 이동을 하는데 그 값을 공유하는 공간이 필요하다
        			RequestDispatcher rd=req.getRequestDispatcher(view);
        			rd.forward(req,resp);
        			
        		}catch(Exception e){System.out.println("요청 실패"+e);}
        	}//process() end
        		
        	
        }//class end
        

        loginProc.jsp   에서 전달받은 값을 이용할 loginResult.jsp를 만들어 주자

        loginResult.jsp에서 loginProc 에 올려져 있는 값을 불러 출력 해주었다.

        'JAVA 교육 > Servlet' 카테고리의 다른 글

        2019/10/02 Servlet을 이용한 index.do  (0) 2019.10.02
        2019/10/01 error 페이지  (0) 2019.10.01
        2019/09/30 모델2  (0) 2019.09.30
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바