Scenario: 로그인을 원래 쌩 jsp로 구성을 해보았엇는데 생각보다 많은게 필요하다.
만약 Jsp로 구성한다면
로그인 -> 로그인ok(로그인이 성공했는지 확인 page) -> 성공시 main
(중간에 jsp 페이지를 안두고 구현 해볼려고했는데, 로그인 실패시 alert 창을 띄울수가 없었다.(엄청 고민해봤는데 결국 포기))
이런식으로 중간에 jsp 페이지를 하나 더 거처야한다. 그러나 Ajax로 구현하면 동적으로 할 수있다.
그리고 페이지또한
로그인->성공시 main 실패시 그냥 alert 창 하나만 띄워주면 됐다. 아주 간편하다.
Solutions:
Ajax 구문
- $('#btn_login').click(function() {
- var mid = $('#txt_mid').val();
- var psw = $('#txt_psw').val();
- $.ajax({
- type : "POST",
- url : "/BoardProject/login.ref",
- data : "mid=" + mid + "&psw=" + psw,
- dataType : "text",
- success : function(data, textStatus, xhr) {
- if (data == 'loginFail') {
- alert('로그인에 실패하였습니다.')
- } else {
- window.location.href = 'main.jsp';
- }
- },
- error : function(request, status, error) {
- alert("code:" + request.status + "\n" + "error:" + error);
- }
- })
- });
controller 단 (servlet으로 프로젝트를 하던 소스코드이므로 스프링에는 다르게 적용할것)
- public class BoardLoginCommand implements BoardCommand{
- @Override
- public void execute(HttpServletRequest request, HttpServletResponse response) {
- String mid = request.getParameter("mid");
- String password = request.getParameter("psw");
- System.out.println("id"+mid+",pw"+password);
- HttpSession session = request.getSession();
- DAO dao = new DAO();
- ArrayList<DTO> list = dao.loginMember(mid, password);
- System.out.println(list);
- if(list.isEmpty()){
- System.out.println("로그인안됨");
- try {
- response.getWriter().write("loginFail");
- } catch (IOException e) {
- e.printStackTrace();
- }
- }else{
- request.setAttribute("list", list);
- session.setAttribute("mid", mid);
- }
- }
- }
'To be Developer > WEB' 카테고리의 다른 글
[Custom El funtion] 게시판 글내용이 엔터 인식이 안될때 (0) | 2017.03.28 |
---|---|
[Jquery, Ajax] 이미지 클릭시 파일첨부 하고 디비 넣기 + 첨부이미지 미리보기 기능 (0) | 2017.03.27 |
[AJAX, JSON] Servlet 에서 Ajax를 써서 동적으로 리플 불러오기 (0) | 2017.03.24 |
[Jquery] 동적으로 Iframe 간 반응하기, 로그인 연습 (0) | 2017.03.07 |
[Json,Ajax] 제이선 파일에서 ajax 및 getJson 메소드를 써서 데이터 로드하기 (0) | 2017.02.16 |