- 2019/09/30 loginForm.jsp (mvc) test2019년 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일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)