2014-03-19 5 views
0

서블릿을 가지고있다. 나의 목표는 jquery에서이 객체에 접근 할 수있는 프로세스 요청에서 고객 객체를 반환하는 것이다. 아무도 내가이 일을 어떻게 할 수 있는지 알고 있니?서블릿에서 Jquery로 커스텀 객체 전달하기

e.g. myObject.getMethod() 

서블릿 코드 :

Customer loginResult; 

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 
     try { 
      /* TODO output your page here. You may use following sample code. */ 
      //request.setAttribute("customerFirstName", loginResult.getFirstName()); //String Value 
      //request.setAttribute("customerID", loginResult.getCustomerID()); //IntegerValue 
      out.println(loginResult); 

     } finally { 
      out.close(); 
     } 
    } 

JSP 코드 :

<script type="text/javascript"> 
$().ready(function() { 
    $('#submit').click(function() { 

     var dataf = 'email=' + $('#email').val() 
       + '&password=' + $('#password').val(); 
     $.ajax({ 
      url: "http://localhost:8080/RetailerGui/loginServlet", 
      type: "get", 
      data: dataf, 
      success: function(data) { 
      alert(data); 

      } 
     }); 
     return false; 
    }); 
}); 
</script> 

누군가가이 문제를 해결하는 저를 도와 주실 수는, 사전에 도와 주셔서 감사합니다.

+1

이것은 JSP 코드가 아닙니다. 이것은 단지 자바 스크립트입니다 ... – Virus721

+0

@ Virus721 죄송합니다. 내 코드가 jsp 파일에 있습니다. 따라서 나는 우연히 그것을 선택했다. – KSM

+0

도움이 될 수 있습니다. http://stackoverflow.com/questions/3832792/access-request-object-in-javascript – Susie

답변

0

서블릿을 사용하여 Ajax 요청을 처리하려면 응답에 사용자 정의 개체의 데이터를 쓰는 것이 가장 좋습니다. 이 작업을 쉽게 수행 할 수있는 방법은 JSON을 사용하는 것입니다. 객체에서 문자열로 또는 그 반대로 JSON 변환을 처리하는 라이브러리가 많이 있으므로 Jackson을 사용하는 것이 좋습니다. 이것은 코드가 어떻게 보일 것인가입니다.

서블릿 코드 :

import com.fasterxml.jackson.databind.ObjectMapper; 

@WebServlet("/loginServlet") //assuming you're using Servlet 3.0 
public class YourServlet extends HttpServlet { 

    //Jackson class that handles JSON marshalling 
    private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); 

    //login operation should be handled in POST 
    public void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
     Customer loginResult = ...; //process data and get the loginResult instance 
     response.setContentType("application/json"); 
     response.setCharacterEncoding("UTF-8"); 
     //marshalling the data of your loginResult in JSON format 
     String json = OBJECT_MAPPER.writeValueAsString(loginResult); 
     response.getWriter().write(json); 
    } 
} 

자바 스크립트 코드 :

<script type="text/javascript"> 
$().ready(function() { 
    $('#submit').click(function() { 
     var dataf = 'email=' + $('#email').val() 
       + '&password=' + $('#password').val(); 
     $.ajax({ 
      url: "http://localhost:8080/RetailerGui/loginServlet", 
      type: "post", //login action MUST be post, NEVER a get 
      data: dataf, 
      success: function(data) { 
       //shows the relevant data of your login result object in json format 
       alert(data); 
       //parsing your data into a JavaScript variable 
       var loginResult = JSON && JSON.parse(data) || $.parseJSON(data); 
       //now you can use the attributes of your loginResult easily in JavaScript 
       //for example, assuming you have a name attribute in your Customer class 
       alert(loginResult.name); 
      } 
     }); 
     return false; 
    }); 
}); 
</script> 

상세 정보 :

+0

완벽하게 내가 잘하면이 작품을 보자 :) – KSM

관련 문제