JavaWeb如何将后台数据传递到前台页面HttpServletResponse和HttpServletRequest_html/css_WEB-ITnose
继续总结:Java经过Action后,怎么将action中返回的数据写到前台去
先了解下:HttpServletResponse对象
(1).Web服务器收到一个http请求,会针对每个请求创建一个HttpServletRequest和HttpServletResponse对象,向客户端发送数据找HttpServletResponse,从客户端取数据找HttpServletRequest;
(2).HttpServletResponse对象可以向客户端发送三种类型的数据:a.响应头b.状态码c.数据
(3).自己去看HttpServletResponse的API
(4).rsponse向前台返回数据:
a.使用OutputStream向客户端写入中文:
response.setHeader("Content-type","text/html;charset=UTF-8");//向浏览器发送一个响应头,设置浏览器的解码方式为UTF-8 String data = "中国"; OutputStream stream = response.getOutputStream(); stream.write(data.getBytes("UTF-8"));
b.使用Writer向客户端写入中文:
response.setCharacterEncoding("UTF_8");//设置Response的编码方式为UTF-8 response.setHeader("Content-type","text/html;charset=UTF-8");//向浏览器发送一个响应头,设置浏览器的解码方式为UTF-8,其实设置了本句,也默认设置了Response的编码方式为UTF-8,但是开发中最好两句结合起来使用 //response.setContentType("text/html;charset=UTF-8");同上句代码作用一样 PrintWriter writer = response.getWriter(); writer.write("中国");
Action:
public void searchModelIsUsed() { <strong>HttpServletRequest req = ServletActionContext.getRequest();</strong> boolean result1 = this.voucherTypeService.queryProductionMode(); if(result1==false){ //非生产模式则可修改模板 String result="is_PRODUCTION_MODE"; this.<strong>actionWrite</strong>("{success:'true',info:'" + result + "'}"); }else{ String vmId = req.getParameter("vmId"); boolean result = this.voucherTypeService.checkVoucherModelUsed(vmId); this.actionWrite("{success:'true',info:'" + result + "'}"); } }
actionWrite如下:
public void actionWrite(String result) { if(result == null){ result = ""; } HttpServletResponse resp = ServletActionContext.getResponse(); resp.setContentType("text/json;charset=UTF-8"); resp.setHeader("Cache-Control", "no-cache"); PrintWriter pw = null; try { pw = resp.getWriter(); pw.write(result); } catch (IOException e) { throw new EVoucherException("获取http写入流异常" + e.getMessage()); } finally { if (pw != null) { pw.close(); } } }
可以看到actionWrite方法就是一个HttpServletResponse设置相关信息后利用PrintWriter向前台写数据
在前台JS中,就是响应response后台传递过来的数据就OK。
callback : function (options,success,response){ if(success){ checkSessionOverdue(response.responseText); var msg = Ext.JSON.decode(response.responseText); var msgInfo = msg.info; if(msgInfo == 'true'){ Ext.Msg.alert("系统提示", "当前模板已存在历史数据,只能修改模板名称跟启用日期!"); isAddVoucherModel = false; refreshAddVoucherModelForm(false); }else if(msgInfo=='is_PRODUCTION_MODE'){ isAddVoucherModel = true; refreshAddVoucherModelForm(false); }else{ isAddVoucherModel = true; refreshAddVoucherModelForm(false); } }}

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

기사는 HTML5 크로스 브라우저 호환성을 보장하기위한 모범 사례에 대해 논의하고 기능 감지, 점진적 향상 및 테스트 방법에 중점을 둡니다.

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex

이 기사는 html5 & lt; time & gt; 시맨틱 날짜/시간 표현 요소. 인간이 읽을 수있는 텍스트와 함께 기계 가독성 (ISO 8601 형식)에 대한 DateTime 속성의 중요성을 강조하여 Accessibilit를 향상시킵니다.

이 기사에서는 브라우저에서 직접 사용자 입력을 검증하기 위해 필요한, Pattern, Min, Max 및 Length 한계와 같은 HTML5 양식 검증 속성을 사용하는 것에 대해 설명합니다.

이 기사는 모바일 장치의 반응 형 웹 디자인에 필수적인 Viewport Meta Tag에 대해 설명합니다. 적절한 사용이 최적의 컨텐츠 스케일링 및 사용자 상호 작용을 보장하는 방법을 설명하는 반면, 오용은 설계 및 접근성 문제로 이어질 수 있습니다.

이 기사는 & lt; iframe & gt; 외부 컨텐츠를 웹 페이지, 공통 용도, 보안 위험 및 객체 태그 및 API와 같은 대안을 포함시키는 태그의 목적.
