servlet이 json 데이터를 전방으로 전달

3207 단어
자세히 보기
servlet이 json 데이터를 전방으로 되돌려줍니다
단일 대상과 집합 (list 등) 을 보낼 수 있습니다. 템플릿을 보여 줍니다. json 변환은 알리바바의fastjson이고 다른 json 패키지와 유사합니다.
protected void getJson(HttpServletRequest request,HttpServletResponse response,Object object){
        response.setContentType("text/html;charset=UTF-8");  
        //    ,             
        response.setHeader("Pragma","No-cache");      
        response.setHeader("Cache-Control","no-cache");      
        response.setDateHeader("Expires", -10);  
        PrintWriter out = null;
        try {
            out = response.getWriter();
            String jsonStr=JSON.toJSONString(object);
            out.print(jsonStr);  
            out.flush();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            out.close();
        }
    }

사용 방법(간단한 예):
json으로 돌아갈 servlet 메서드에서 를 호출하면 다음과 같은 개별 객체가 반환됩니다.
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
        // TODO Auto-generated method stub
        HttpSession session=request.getSession();
        User user=(User) session.getAttribute("user");
        getJson(request, response, user);//    user  
    }

컬렉션으로 돌아가기
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
        // TODO Auto-generated method stub
        List provinces=provinceDao.getProvinces();
        getJson(request, response, provinces);//    list  
    }

전단 획득 방법은 보통ajax입니다.
$(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('
').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); });

좋은 웹페이지 즐겨찾기