参考博客: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交互的更多相关文章

  1. jsp中的js嵌入Extjs与后台action交互

    近期做前台须要和后台交互数据,直接使用js一直没实现.最后使用extjs实现了,extjs代码直接嵌入到jsp的js代码中就可以(0跟jsp里使用extjs一样,须要载入extjs的几个文件) < ...

  2. 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 ...

  3. Ajax与后台的交互

    Ajax Java 交互 jsp代码 <%@ page language="java" import="java.util.*" pageEncoding ...

  4. atitit.js&#160;与c#&#160;java交互html5化的原理与总结.doc

    atitit.js 与c# java交互html5化的原理与总结.doc 1. 实现html5化界面的要解决的策略 1 1.1. Js交互 1 1.2. 动态參数个数 1 1.3. 事件监听 2 2. ...

  5. Android通过Web与后台数据库交互

    2021.1.27 更新 已更新新版本博客,更新内容与原文章相比有点多,因此新开了一篇博客,请戳这里. 1 背景 开发一个App与后台数据库交互,基于MySQL+原生JDBC+Tomcat,没有使用D ...

  6. Flex使用Blazeds与Java交互及自定义对象转换详解-DATAGRID读取ORACLE数据

    http://www.cnblogs.com/RocD-DuPeng/articles/1751040.html 一.建立Flex与Java交互的工程. 本文中讲到的交互是利用Blazeds的,因为这 ...

  7. 身份证校验,前台js校验,后台java校验

    js校验: var vcity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"内 ...

  8. 利用angular与后台的交互

    记录的世界是强大的,不管天南海北还是五湖四海,如果利用angular js与后台的交互.angular js 在api上称为是http服务: 下面咱给一个简单的代码看看:简单的利用后台与前端的tab切 ...

  9. --@angularJS--自定义服务与后台数据交互小实例

    1.myService.html: <!DOCTYPE HTML><html ng-app="app"><head>    <title& ...

随机推荐

  1. js中焦点的含义是什么

    焦点即是光标   焦点是在页面上屏幕中闪动的的小竖线,鼠标点击可获得光标,Tab键可按照设置的Tabindex切换焦点

  2. (五)Jquery Mobile列表

    Jquery Mobile列表 一.JM列表 1.普通列表            效果:            带序号的列表 将ul换成ol      效果:       2.data-inset=& ...

  3. 引用 struts2标签详解 - wo的的日志 - 网易博客

    引用 元元 的 struts2标签详解   引用 COLD 的 struts2标签详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@t ...

  4. flume-1.6.0单节点部署

    这个不多说,直接上干货,部署很简单! 步骤一:flume的下载 当然,这里也可以使用wget命令在线下载,很简单,不多说. 步骤二:flume的上传 [hadoop@djt002 flume]$ ls ...

  5. jsoncpp第二篇------API

    更多API参考jsoncpp头文件 1  jsoncpp的api简要说明 1,解析(json字符串转为对象) std::string strDataJson; Json::Reader JReader ...

  6. ARM裸机开发中内存管理库RT_HEAP的使用

    在使用arm芯片进行裸机开发的时候,很多时候都需要内存管理的功能,我们可以使用自己写的内存管理程序,也可以直接使用标准库,不过我一般比较喜欢标准库,速度快,今天就来说说在C语言环境下怎么样进行内存的动 ...

  7. Octave使用感想

    Octave是一门比较 简单.原始 的语言.从某方面来说和 shell 语言类似,只不过,shell语言主要用于 操作系统管理方面,而Octave侧重于科学计算方面. 语言本身没有提供或者说很简单的 ...

  8. Servlet实现文件上传(多文件)(三)

    1.上传文件的页面fileUpload2.jsp <%@ page language="java" import="java.util.*" pageEn ...

  9. Cdoefroces #354

    A题 题意:给定一些数,然后求一次交换以后最大的数和最小的数之间的最大距离 分析:找到最大数和最小数的位置,然后判断是把位置大的移到最后还是把位置小的移到开始位置即可 #include <ios ...

  10. [转] 如何让CloudStack使用KVM创建Windows实例成功识别并挂载数据盘

    在使用kvm给windows虚拟机动态挂载virtio类型的硬盘时候遇到问题,通过下面的文章知道需要安装virtio驱动,从而解决问题使挂在正常,在此处mark一下 问题产生背景: 使用CloudSt ...