아이디 중복 체크 / PrintWriter out = response.getWriter();

easyliving·2023년 2월 2일

join.jsp


<style>
		 .onIdCheck{color:blue; font-weight: 600;}
		 .offIdCheck{color:red; font-weight: 600;}
</style>


function checkBtn(){
				var id=$("#id").val();
				$.ajax({
					type:"post",
					url:"memberIdCheck.do",
					data:{"id":id},
					dataType:"json",
					//contentType:'application/json',
					success:function(data){
						console.log(data[0].result);
						if(data[0].result=='s-selectOne'){
						$("#idCheck").addClass("onIdCheck");
						//text 띄우는 색 지정
                        $("#idCheck").removeClass("offIdCheck");
						$("#idCheck").text("사용가능한 아이디 입니다.");
						idFlag=1;	
						}else{
						$("#idCheck").addClass("offIdCheck");
						$("#idCheck").removeClass("onIdCheck");
						$("#idCheck").text("아이디를 사용할 수 없습니다.");
						alert("아이디를 사용하고 있습니다. 다른 아이디를 사용하세요");
						idFlag=0;
				
							
						}
					},
					error:function(){
						alert("시스템 오류로 인해 확인이 되지 않았습니다. 다시 입력해주세요.");
						idFlag=0;
					}
				}); //ajax
			}// checkBtn()




<dd>
  <input type="text" id="id" name="id" minlength="4" maxlength="16" required/>
    <input type="button" onclick="checkBtn()" value="중복확인"/>
      <span id="idCheck">아이디 중복확인을 해주셔야 합니다.</span>
</dd>

Fcontroller.java

join.jsp에서 

function checkBtn(){
                $.ajax({
                    url:"memberIdCheck.do",
                    data:{"id":id}, /*id를memberIdCheck.do에 보내줌*/
                    dataType:"json",
                    success:function(data)

memberIdCheck.do에서 정보를 받아오는데
json data 타입으로 가져온다.

System.out.println("doAction"); 
		request.setCharacterEncoding("utf-8"); //받아온 데이터 중 한글도 깨지지않게 (post로 들어오는거 한글처리)
		
		String uri = request.getRequestURI();
		String conPath = request.getContextPath(); //프로젝트 이름
		String fName = uri.substring(conPath.length() + 1); //프로젝트 이름/ <- 이거 제외하고 그 뒤의 문자를 받아오는 것 
		String url = "";// null처리 대신 공백처리하세요
		Mservice mservice=null;
		System.out.println("파일이름:"+fName);	
        
        
        
        
        else if(fName.equals("memberIdCheck.do")) { 		//아이디 중복 체크 실행 
			mservice = new MserviceSelectOne(); //같은 아이디가 있는지 없는지 체크
			mservice.execute(request, response);
			JSONArray jarray =new JSONArray(); //[]
			JSONObject json=new JSONObject(); //{}
			json.put("result", request.getAttribute("result")); //{"result":"s-selectOne"}
			jarray.add(json);//[{"result":"s-selectOne"}]
			response.setContentType("application/json; charset=utf-8;");//json형태로 보내준다
			
			PrintWriter writer =response.getWriter();
            //바이트를 문자 형태를 가지는 객체로 바꿔준다. 
            //클라이언트에게 문자 형태로 응답을 하고 싶기 때문에 		  
            //PrintWriter 클래스 객체를 정의하고 getWriter() 메소드를 통해 인스턴스를 얻었다.
            //기본값은 text/html 
			writer.println(jarray.toJSONString()); //string으로 갈거긴 한데 json 파일로 여겨
		
			writer.close();
			return;
		}
        
        
        
//----------------------------------------------------------------
						//<MserviceSelectOne>//
        
		MemberDao mdao=new MemberDao();
		String id=request.getParameter("id");//ajax에서 타고 온 데이터
		MemberVo mvo=mdao.selectOne(id);
		if(mvo!=null) { //중복된 아이디가 있다면
			request.setAttribute("result", "f-selectOne");
            //중복체크 결과-실패(다른 아이디 사용 해야함)
		}else {//없다면 중복체크 결과-성공 (해당 아이디 사용가능)
			request.setAttribute("result", "s-selectOne");
		}


//----------------------------------------------------------------
						//<selectOne(String id2)>//
  
  
  		try {
				conn=getConnection();
				query="select * from member where id=?";
				pstmt=conn.prepareStatement(query);
				pstmt.setString(1, id2);
				rs =pstmt.executeQuery();
				while(rs.next()) {
					id=rs.getString("id");
					pw=rs.getString("pw");
					name=rs.getString("name");
					mvo=new MemberVo(id);
				}
                
                return mvo;

PrintWriter

PrintWriter2

profile
가끔져요

0개의 댓글