ExtJS与后台Java交互
参考博客:http://blog.csdn.net/wanghuan203/article/details/8125970
开发环境:Eclipse + Tomcat + ExtJS6.0
工程目录结构
运行效果:
后台获取的数据
源代码如下:
1.web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>ExtJSDemo</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>com.scd.servlet.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/TestServlet</url-pattern> </servlet-mapping> </web-app>
2.ExtJava.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ExtJS And Java</title> <link rel="icon" href="img/tomcat.ico" type="image/x-icon" ></link> <link rel="stylesheet" type="text/css" href="neptune/theme-neptune/resources/theme-neptune-all.css"></link> <script type="text/javascript" src="neptune/ext-all.js"></script> <!--extjs本地化文件,会将extjs中的提示信息等自动转换为简体中文--> <script type ="text/javascript" src="neptune/locale/locale-zh_CN.js"></script> <script type ="text/javascript"> Ext.onReady( function() { Ext.create('Ext.container.Viewport', { scrollable : true, items : [ { xtype : 'container', layout : { type : 'hbox', align : 'center', pack : 'center' }, items : [ { xtype : 'form', bodyPadding : 20, maxWidth : 700, fieldDefaults : { msgTarget : 'under' }, flex : 1, title : 'Customer Register', items : [ { xtype : 'fieldcontainer', layout : 'hbox', fieldLabel : 'Name', defaultType : 'textfield', defaults : { allowBlank : false, flex : 1 }, items : [ { name : 'Name', emptyText : 'Name' } ] }, { xtype : 'datefield', fieldLabel : 'Date of Birth', name : 'dob', maxValue : new Date() }, { xtype : 'textfield', vtype : 'email', fieldLabel : 'Email Address', name : 'email', allowBlank : false, //emptyText : 'user@example.com' }, { xtype : 'textfield', fieldLabel : 'Phone Number', labelWidth : 100, name : 'phone', width : 200, emptyText : 'xxx-xxx-xxxx', maskRe : /[\d\-]/, regex : /^\d{3}-\d{3}-\d{4}$/ }, { xtype : 'button', href : 'http://www.baidu.com', width : 100, height : 60, text : 'Baidu' } ], //form提交数据部分,通过按钮提交事件 buttons : [ { text : 'Submit', handler : function() { var form = this.up('form').getForm(); if (form.isValid()) { form.submit( { url : './TestServlet', //重点: success块 success : function(form, action) { //showmessage是从后台传过来 Ext.MessageBox.alert("提示", action.result.showmessage); }, failure : function(form, action) { Ext.Msg.alert("提示", "失败"); } } ); } else { Ext.Msg.alert('Error', 'Fix the errors in the form'); } } } ] } ] } ] } ); } ); </script> </head> <body> </body> </html>
3.TestServlet.java
package com.scd.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class TestServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; /** * */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("===doPost==========");try{ //调用action等后台方法 //有个返回值,返回给界面的内容 String showMessage = "你好"; //设置response格式 response.setCharacterEncoding("UTF-8"); response.setContentType("application/json"); response.getWriter().write( "{'success':true,'showmessage':'"+ showMessage +"'}"); } catch (Exception e) { //失败时返回的信息 response.setCharacterEncoding("UTF-8"); response.setContentType("text/html"); response.getWriter().write( "{'success':false,'showmessage':'出现异常,操作失败'}"); response.setStatus(500); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("====I am doGet======"); doPost(request,response); } }
存在一个很大的疑惑就是当把代码里面的response.setContentType("text/html"); 设置为"text/html"之后,获取到的是表但数据
package com.scd.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
*
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("===doPost==========");
System.out.println("获取前端form组件中的数据");
String Name = request.getParameter("Name");
String bob = request.getParameter("dob");
String email = request.getParameter("email");
String phone = request.getParameter("phone");
System.out.println(Name+bob+email+phone);
try{
//调用action等后台方法
//有个返回值,返回给界面的内容
String showMessage = "你好";
//设置response格式
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
response.getWriter().write(
"{'success':true,'showmessage':'"+ showMessage +"'}");
} catch (Exception e) {
//失败时返回的信息
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
response.getWriter().write(
"{'success':false,'showmessage':'出现异常,操作失败'}");
response.setStatus(500);
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("====I am doGet======");
doPost(request,response);
}
}
终端输出的数据为
-----------------------------------
===doPost==========
获取前端form组件中的数据
chengdu17年01月18日1809542645@qq.com123-345-2341
和之前传输数据不一样啊????
ExtJS与后台Java交互的更多相关文章
- jsp中的js嵌入Extjs与后台action交互
近期做前台须要和后台交互数据,直接使用js一直没实现.最后使用extjs实现了,extjs代码直接嵌入到jsp的js代码中就可以(0跟jsp里使用extjs一样,须要载入extjs的几个文件) < ...
- atitit.js 与c# java交互html5化的原理与总结.doc
atitit.js 与c# java交互html5化的原理与总结.doc 1. 实现html5化界面的要解决的策略1 1.1. Js交互1 1.2. 动态参数个数1 1.3. 事件监听2 2. sen ...
- Ajax与后台的交互
Ajax Java 交互 jsp代码 <%@ page language="java" import="java.util.*" pageEncoding ...
- atitit.js 与c# java交互html5化的原理与总结.doc
atitit.js 与c# java交互html5化的原理与总结.doc 1. 实现html5化界面的要解决的策略 1 1.1. Js交互 1 1.2. 动态參数个数 1 1.3. 事件监听 2 2. ...
- Android通过Web与后台数据库交互
2021.1.27 更新 已更新新版本博客,更新内容与原文章相比有点多,因此新开了一篇博客,请戳这里. 1 背景 开发一个App与后台数据库交互,基于MySQL+原生JDBC+Tomcat,没有使用D ...
- Flex使用Blazeds与Java交互及自定义对象转换详解-DATAGRID读取ORACLE数据
http://www.cnblogs.com/RocD-DuPeng/articles/1751040.html 一.建立Flex与Java交互的工程. 本文中讲到的交互是利用Blazeds的,因为这 ...
- 身份证校验,前台js校验,后台java校验
js校验: var vcity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"内 ...
- 利用angular与后台的交互
记录的世界是强大的,不管天南海北还是五湖四海,如果利用angular js与后台的交互.angular js 在api上称为是http服务: 下面咱给一个简单的代码看看:简单的利用后台与前端的tab切 ...
- --@angularJS--自定义服务与后台数据交互小实例
1.myService.html: <!DOCTYPE HTML><html ng-app="app"><head> <title& ...
随机推荐
- FatMouse and Cheese 动态化搜索
FatMouse and Cheese Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- swift 自学小计
返回多个value func Myfunc()->(double,double,double) { return (3.14,2.33,9.88) } 动态参数 func Myfunc(numb ...
- Hibernate---基础配置
hibernate.cfg.xml里可以设置一个值显示更详细的sql语句: <property name="format_sql">true</property& ...
- ASP.net AJAX Toolkit —— DynamicPopulateExtender
<%@ Page Language="C#" AutoEventWireup="true" Title="DynamicPopulate Sam ...
- Html标签中Alt和Title都是提示性语言标签
在Html标签中Alt和Title都是提示性语言标签,在我们浏览一些网页时,鼠标停留在一张图片或文字链接上时,在鼠标的右下角出现一个提示信息框,对目标进行一定的注释说明,这就是它们的作用. 其中 ...
- iOS-模糊查询
http://blog.csdn.net/qq_33701006/article/details/51836914 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 前言 ...
- 对AD域进行定期自动备份设置图解
今天为大家讲解一下,如何对域进行定期的备份,因为如果域出问题了,在公司里那可就不好玩了啊,对做定期备份,在域出问题的时候可以及时恢复,减少对域重建而浪费大量的时间,同样也耽误公司员工的工作,这样的事情 ...
- 超全!整理常用的iOS第三方资源
一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:hud提示框 地址:https://github. ...
- Spring MVC之Action输入参数
第一部分:Action输入参数Spring MVC 通过@RequestMapping注解映射请求,最终的真正执行代码为处理器方法,即@RequestMapping注解的方法.Spring MVC方法 ...
- $smary模板缓存
<?php //引入配置文件 $fillname="../cache/testhuancun.html"; //设置一个缓存时间 $time=; //判断如果缓存文件不存在的 ...