简体   繁体   English

Servlet中的消息警报框

[英]Message alert box in servlet

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    String action = request.getParameter("action");

    try {

 //            System.out.println("in mail servlet");

        if (action.equals("show")) {
            List<EmailSetup> emailSetup_List = emailSetup_lf.findAll();
            JSONObject returnJSON = new JSONObject();
            JSONArray emailSetup_Array = ListToJSONArray(emailSetup_List);
            returnJSON.put("success", true);
            returnJSON.put("rows", emailSetup_Array);
 //                System.out.println(returnJSON.toJSONString());
            sendJSONResponse(returnJSON, response);
        } else if (action.equals("add")) {


          if( emailSetup_lf.count() >= 1 ){

         sendJSONResponseSimple("fail", response);

          return;

            }




            // all data is sent to the servelet as strings
            // when creating cast to proper DB type
            String smtp_host = request.getParameter("SMTP_HOST");
            String smtp_user = request.getParameter("SMTP_USER");
            String smtp_pwd = request.getParameter("SMTP_PWD");
            String smtp_port = request.getParameter("SMTP_PORT");
            String smtp_from = request.getParameter("SMTP_FROM");








            if ((!smtp_host.equals(""))
                 &&  (!smtp_user.equals(""))
                    && (!smtp_pwd.equals(""))
                    && (!smtp_port.equals(""))
                    && (!smtp_from.equals(""))) {
                EmailSetup new_email_setup_record = new EmailSetup();
                new_email_setup_record.setSmtpHost(smtp_host);
                new_email_setup_record.setSmtpUser(smtp_user);
                new_email_setup_record.setSmtpPwd(smtp_pwd);
                new_email_setup_record.setSmtpPort(smtp_port);
                new_email_setup_record.setSmtpFrom(smtp_from);

          emailSetup_lf.create(new_email_setup_record);



          // LOG
                systemLog("Create (MailServerSevlet)", "Created Mail Server: " + new_email_setup_record.toString(), request);
            }

        } else if (action.equals("edit")) {
            // all data is sent to the servelet as strings
            // when creating cast to proper DB type
            String e_id = request.getParameter("E_ID");
            String smtp_host = request.getParameter("SMTP_HOST");
            String smtp_user = request.getParameter("SMTP_USER");
            String smtp_pwd = request.getParameter("SMTP_PWD");
            String smtp_port = request.getParameter("SMTP_PORT");
            String smtp_from = request.getParameter("SMTP_FROM");





            if ((!smtp_host.equals(""))
                    && (!smtp_user.equals(""))
                    && (!smtp_pwd.equals(""))
                    && (!smtp_port.equals(""))
                    && (!smtp_from.equals(""))) {
                EmailSetup email_setup_record = emailSetup_lf.find(new BigDecimal(e_id));
                email_setup_record.setSmtpHost(smtp_host);
                email_setup_record.setSmtpUser(smtp_user);
                email_setup_record.setSmtpPwd(smtp_pwd);
                email_setup_record.setSmtpPort(smtp_port);
                email_setup_record.setSmtpFrom(smtp_from);
                // CALL EDIT!
                emailSetup_lf.edit(email_setup_record);
                // LOG
                systemLog("Update (MailServerSevlet)", "Updated Mail Server: " + email_setup_record.toString(), request);

   } // systemLog

  // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/** 
 * Handles the HTTP <code>GET</code> method.
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
}

/** 
 * Handles the HTTP <code>POST</code> method.
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
}

  /** 
   * Returns a short description of the servlet.
   * @return a String containing servlet description
   */
  @Override
  public String getServletInfo() {
    return "Short Description";
  }// </editor-fold>
 }

I have now tried using a JSON simple response, but it keeps calling the wrong error message 我现在尝试使用JSON简单响应,但始终调用错误的错误消息

var db_drivers_Store = new Ext.data.JsonStore({
    //url: '../DataBaseDriversServelet_show',
    url: '../DataBaseDriversServelet?action=show',
    root: 'rows',
    idProperty: 'ID',
    fields: [{
        name: 'ID',
        type: 'int'
    },{
        name: 'TYPE',
        type: 'string'
    },{
        name: 'NAME',
        type: 'string'
    },{
        name: 'ADDRESS',
        type: 'string'
    },{
        name: 'PORT',
        type: 'int'
    }]
});


// ADD
var add_db_driver_Window = new Ext.Window({
    title: 'Add DB Driver',
    width: 400,
    height:200,
    minWidth: 300,
    minHeight: 200,
    layout: 'fit',
    plain:true,
    bodyStyle:'padding:5px;',
    buttonAlign:'center',
    border: true,
    closable:false,
    modal:true,
    shim: false,
    frame: true,
    //        forceLayout: true,
    items: add_db_driver_FormPanel,

    buttons: [{
        text: 'Submit',

        handler: function(){
            if( add_db_driver_FormPanel.getForm().isValid()){
                add_db_driver_FormPanel.getForm().submit({
                    success: function(){
                        add_db_driver_Window.hide();
                        db_drivers_Store.load();
                        add_db_driver_FormPanel.getForm().reset();
                    },
                    failure: function(){}
                });
            }else{
                Ext.MessageBox.alert('Database Drivers', 'Could not Submit. Make sure all fields are valid.');
            }

        } // submit handler
    },{
        text: 'Cancel',
        handler: function(){
            add_db_driver_Window.hide();
            add_db_driver_FormPanel.getForm().reset();
        } // cancel handler
    }]
});

// DBDRIVER - ADD POP UP UI (END)

// DBDRIVER - EDIT POP UP UI (START)
var edit_db_driver_FormPanel = new Ext.FormPanel({
    url: '../DataBaseDriversServelet?action=edit',
    // url:'../DataBaseDriversServelet_edit',
    labelWidth: 125,
    frame: true,
    bodyStyle:'padding:5px 5px 0',
    defaultType: 'textfield',
    id: 'edit_db_driver_FormPanel',
    items: [
    {
        fieldLabel: 'Type',
        id: 'TYPE_edit_db_driver_FormPanel',
        allowBlank: false,
        name: 'TYPE',
        width:190
    },{
        fieldLabel: 'Name',
        id: 'NAME_edit_db_driver_FormPanel',
        allowBlank: false,
        name: 'NAME',
        width:190
    },{
        fieldLabel: 'Address',
        id: 'ADDRESS_edit_db_driver_FormPanel',
        allowBlank: false,
        name: 'ADDRESS',
        width:190
    },new Ext.form.NumberField ({
        fieldLabel: 'Port',
        id: 'PORT_edit_db_driver_FormPanel',
        allowBlank: false,
        name: 'PORT',
        width:190
    })
    ]
});

var recordToEdit;
var edit_db_driver_Window = new Ext.Window({
    title: 'Edit DB Driver',
    width: 400,
    height:200,
    minWidth: 300,
    minHeight: 200,
    layout: 'fit',
    plain:true,
    bodyStyle:'padding:5px;',
    buttonAlign:'center',
    border: false,
    closable:false,
    modal:true,
    shim: false,
    frame: true,
    items: edit_db_driver_FormPanel,

    buttons: [{
        text: 'Submit',
        handler: function(){

            var db_driver_id = recordToEdit.get("ID");
            if(edit_db_driver_FormPanel.getForm().isValid()){
                edit_db_driver_FormPanel.getForm().submit({

                    //  url:'../DataBaseDriversServelet_edit',
                    url: '../DataBaseDriversServelet?action=edit',
                    waitMsg:'Saving Data...',

                    params:{
                        ID: db_driver_id
                    },

                    success: function(){
                        edit_db_driver_Window.hide();
                        db_drivers_Store.load();

                    },
                    failure: function(){}
                });

            }else{
                Ext.MessageBox.alert('Database Drivers', 'Could not Submit. Make sure all fields are valid.');
            }
        } // submit handler
    },{
        text: 'Cancel',
        handler: function(){
            edit_db_driver_Window.hide();
            edit_db_driver_FormPanel.getForm().reset();
        } // cancel handler
    }]
});

// DBDRIVER - EDIT POP UP UI (END)

// DBDRIVER - POP UP UI (END)

var db_driver_btn_panel = [{
    id: 'db_driver_add_btn',
    text: 'Add',
    iconCls: 'adddb',
    handler: (function(){
        add_db_driver_Window.show();
    }) // add handler function
}, {
    text: 'Edit',
    iconCls: 'edit',
    handler: (function(){

        var edit_selModel = Ext.getCmp("db_drivers_UPanel").getSelectionModel();
        var selRecord;

        if(edit_selModel.getSelected()== undefined){
            Ext.message.msg('Notice','Select Database Driver first');
        }else{

            selRecord = edit_selModel.getSelected();
            recordToEdit = selRecord;

            Ext.getCmp("TYPE_edit_db_driver_FormPanel").setValue(recordToEdit.get("TYPE"));
            Ext.getCmp("NAME_edit_db_driver_FormPanel").setValue(recordToEdit.get("NAME"));
            Ext.getCmp("ADDRESS_edit_db_driver_FormPanel").setValue(recordToEdit.get("ADDRESS"));
            Ext.getCmp("PORT_edit_db_driver_FormPanel").setValue(recordToEdit.get("PORT"));

            edit_db_driver_Window.show();
        } // end if
    }) // edit handler function
},{
    text: 'Delete',
    iconCls: 'delete',
    handler: function() {
        //get currently selected record
        var rec = Ext.getCmp('db_drivers_UPanel').getSelectionModel().getSelected();
        //rec will be undefined if nothing is selected so check for this.
        if(rec){
            //open delete confirmation box
            Ext.MessageBox.confirm('Delete Confirmation', 'Delete Driver?', function(btn)
            {//check if the user selected 'yes'
                if (btn == 'yes'){
                    //create ajax request to send delete requesdt to the servlete
                    Ext.Ajax.request({
                        //specify servlet url
                        //url : '../DataBaseDriversServelet_delete' ,
                        url: '../DataBaseDriversServelet?action=delete',
                        params : {
                            //D_ID = driver id, send through as param to the servlet
                            'D_ID': rec.data.ID
                        },
                        //use post
                        method: 'POST',
                        //method will run if server returns success message
                        success: function ( result, request ) {
                            // Ext.MessageBox.alert('Success','Post Deleted');
                            Ext.message.msg('Driver - Removed.', 'Driver has successfully been removed!');
                            //Ext.message.msg('Success','Driver Deleted');

                            db_drivers_Store.load();

                        },
                        //method will run if server returns failure message
                        failure: function ( result, request) {
                            Ext.MessageBox.alert('Failure','Driver Deletion Failed');
                        }
                    });//ajax request

                }//if btn

            });//confirm box
        }else
        {
            Ext.message.msg('Notice','Select driver first');
        }
    } // function
}];

var db_drivers_UPanel = new Ext.Panel({
    id: 'databaseDriversUtil-form',
    labelAlign: 'left',
    bodyStyle:'padding:5px',
    frame: true,
    boder: true,
    width: 450,
    title:"Database Drivers",
    items:[{
        xtype: 'grid',
        id: 'db_drivers_UPanel',
        tbar: db_driver_btn_panel,
        ds: db_drivers_Store, // ds = datastore
        cm: db_drivers_ColModel, // cm = column model
        autoScroll:true,
        height:220
    }]
});
return  db_drivers_UPanel;
}

// Database Drivers UI (End)

// Database Setup UI (Start)
Ext.Dyno.databaseUtil.databaseSetupUtilPanel = function(){

var db_setup_Store = new Ext.data.JsonStore({
    //url: '../DataBaseSetupServelet',
    url: '../DataBaseSetupServelet?action=show',
    root: 'rows',
    idProperty: 'ID',
    fields: [{
        name: 'ID',
        type: 'int'
    },{
        name: 'TYPE',
        type: 'string'
    },{
        name: 'DRIVERNAME',
        type: 'string'
    },{
        name: 'CONNECTSTART',
        type: 'string'
    },{
        name: 'DEFAULTPORT',
        type: 'int'
    }]
});
// this displays the data in the gird
db_setup_Store.load();

var db_setup_ColModel = new Ext.grid.ColumnModel([
{
    header: "ID",
    width: 70,
    sortable: true,
    locked:false,
    hidden: true,
    dataIndex: 'ID'
},{
    header: "Type",
    width: 70,
    sortable: true,
    dataIndex: 'TYPE'
},{
    header: "Driver Name",
    width: 150,
    sortable: true,
    dataIndex: 'DRIVERNAME'
},{
    header: "Connect Start",
    width: 100,
    sortable: true,
    dataIndex: 'CONNECTSTART'
},{
    header: "Default Port",
    width: 80,
    sortable: true ,
    dataIndex: 'DEFAULTPORT'
}
]);

// DBTYPE - POP UP UI (START)

// DBTYPE - ADD POP UP UI (START)

var add_db_type_FormPanel = new Ext.FormPanel({
    //url:'../DataBaseSetupServelet_add',
    url: '../DataBaseSetupServelet?action=add',
    labelWidth: 125,
    frame: true,
    bodyStyle:'padding:5px 5px 0',
    defaultType: 'textfield',
    items: [
    {
        fieldLabel: 'Type',
        name: 'TYPE',
        allowBlank: false,
        width:190
    },{
        fieldLabel: 'Driver Name',
        name: 'DRIVERNAME',
        allowBlank: false,
        width:190
    },{
        fieldLabel: 'Connect Start',
        name: 'CONNECTSTART',
        allowBlank: false,
        width:190
    },new Ext.form.NumberField ({
        fieldLabel: 'Default Port',
        name: 'DEFAULTPORT',
        allowBlank: false,
        width:190
    })
    ]
});

// ADD
var add_db_type_Window = new Ext.Window({
    title: 'Add DB Type',
    width: 400,
    height:200,
    minWidth: 300,
    minHeight: 200,
    layout: 'fit',
    plain:true,
    bodyStyle:'padding:5px;',
    buttonAlign:'center',
    border: false,

        //get currently selected record
        var rec = Ext.getCmp('db_setup_UPanel').getSelectionModel().getSelected();
        //rec will be undefined if nothing is selected so check for this.
        if(rec){
            //open delete confirmation box
            Ext.MessageBox.confirm('Delete Confirmation', 'Delete Setup?', function(btn)
            {//check if the user selected 'yes'
                if (btn == 'yes'){
                    //create ajax request to send delete requesdt to the servlete
                    Ext.Ajax.request({
                        //specify servlet url
                        // url : '../DataBaseSetupServelet_delete' ,
                        url: '../DataBaseSetupServelet?action=delete',
                        params : {
                            //D_ID = driver id, send through as param to the servlet
                            'ID': rec.data.ID
                        },
                        //use post
                        method: 'POST',
                        //method will run if server returns success message
                        success: function ( result, request ) {
                            //Ext.MessageBox.alert('Success','Post Deleted');
                            //Ext.message.msg('Success','Setup Deleted');
                            Ext.message.msg('Setup - Removed.', 'Setup has successfully been removed!');

                            db_setup_Store.load();

                        },
                        //method will run if server returns failure message
                        failure: function ( result, request) {
                            Ext.MessageBox.alert('Failure','Setup Deletion Failed');
                        }
                    });//ajax request

                }//if btn

            });//confirm box
        }else
        {
            Ext.message.msg('Notice','Select setup first');
        }
    } // function
}];

var db_setup_UPanel = new Ext.Panel({
    id: 'databaseSetupUtil-form',
    labelAlign: 'left',
    bodyStyle:'padding:5px',
    frame: true,
    boder: true,
    width: 450,
    title:"Database Setup",
    items:[{
        xtype: 'grid',
        id:'db_setup_UPanel',
        tbar: db_setup_btn_panel,
        ds: db_setup_Store, // ds = datastore


        cm: db_setup_ColModel, // cm = column model
        autoScroll:true,
        height:220
    }]
});
return  db_setup_UPanel;
      }




var cat_config_Store = new Ext.data.JsonStore({
    url: '../configureCatogoriesServelet?action=show',
    root: 'rows',
    idProperty: 'C_ID',
    fields: [{
        name: 'C_ID',
        type: 'int'
    },{
        name: 'C_NAME',
        type: 'string'
    },{
        name: 'C_DESCRIPTION',
        type: 'string'
    }]
});
// this displays the data in the gird
cat_config_Store.load();


var categoryGridTable = new Ext.grid.GridPanel({

    region:'center',
    //columnWidth: 0.70,
    layout: 'fit',
    ds: cat_config_Store,
    //cm: colModel,
    columns:[
        {
            header: "ID",
            width: 70,
            sortable: true,
            locked:false,
            hidden: true,
            dataIndex: 'C_ID'
        }, {
            header: "Name",
            width: 100,
            sortable: true,
            dataIndex: 'C_NAME'
        }, {
            header: "Description",
            width: 300,
            sortable: true,
            dataIndex: 'C_DESCRIPTION'
        }
    ],

    frame:true,
    height:250,
    // width:500,
    border:false


});

 var cat_config_FormPanel = new Ext.FormPanel({
    url: '../configureCatogoriesServelet',
    labelWidth: 125,
    frame: true,
    bodyStyle:'padding:5px 5px 0',
    defaultType: 'textfield',
    items: [
    {
        fieldLabel: 'Name',
        name: 'C_NAME',
        allowBlank: false,
        maxLength: 256, // for validation
        width:190
    },{
        fieldLabel: 'Description',
        name: 'C_DESCRIPTION',
        allowBlank: false,
        maxLength: 256, // for validation
        width:190
    }] // items
}); // cat_config_FormPanel

var cat_config_Window = new Ext.Window({
    //title: 'Add Category',
    width: 400,
    height:200,
    minWidth: 300,
    minHeight: 200,
    layout: 'fit',
    plain:true,
    bodyStyle:'padding:5px;',
    buttonAlign:'center',
    border: false,
    closable:false,
    modal:true,
    shim: false,
    frame: true,
    items: cat_config_FormPanel,
    buttons: [{
        text: 'Submit',
        handler: function(){
            var form = cat_config_FormPanel.getForm();
            if(form.isValid()){
                form.submit({
                    url: '../configureCatogoriesServelet',
                    waitMsg:'Saving Data...',
                    params:{
                        action:categoryAddEditAction,
                        ID:chosenCategoryIdToEdit
                    },
                    success: function(){
                        cat_config_Window.hide();
                        cat_config_Store.load();
                        form.reset(); 
                    },
                    failure: function(){}
                });
            }else{
                Ext.MessageBox.alert('Database Drivers', 'Could not Submit. Make sure all fields are valid.');
            }
        } // submit handler
    },{
        text: 'Cancel',
        handler: function(){
            cat_config_Window.hide();
            cat_config_FormPanel.getForm().reset();
        } // cancel handler
    }]
});

var cat_conf_btn_panel = [{
    text: 'Add',
    iconCls: 'adddb',
    handler: (function(){

        cat_config_FormPanel.getForm().reset();
        categoryAddEditAction = 'add';
        cat_config_Window.setTitle('Add Category');
        cat_config_Window.show();

    }) // add handler function
},{
    text: 'Edit',
    iconCls: 'edit',
    handler: function(){
        var selModel = categoryGridTable.getSelectionModel();
        var selRecord;
        //updatepassword=true;
        if(selModel.getSelected()== undefined){

            Ext.MessageBox.alert('Notice','Select Catogry first');
        }else{
            selRecord = selModel.getSelected();

            chosenCategoryIdToEdit = selRecord.get("C_ID");
            categoryAddEditAction = "edit";
            cat_config_Window.setTitle('Edit Category Configuration');

            cat_config_Window.show();
            cat_config_Window.hide();

            cat_config_FormPanel.getForm().findField("C_NAME").setValue(selRecord.get("C_NAME"));
            cat_config_FormPanel.getForm().findField("C_DESCRIPTION").setValue(selRecord.get("C_DESCRIPTION"));
            cat_config_FormPanel.getForm().loadRecord(selRecord);
            cat_config_Window.show();
        }
    } // edit handler function
},{
    text: 'Delete',
    iconCls: 'delete',
    handler: function() {

        var selModel = categoryGridTable.getSelectionModel();
        var selRecord;

        if(selModel.getSelected()== undefined){
            Ext.MessageBox.alert('Notice','Select category first');
        }else{
            selRecord = selModel.getSelected();
            var  recordToDelete = selRecord;



var add_app_Window = new Ext.Window({
    //title: 'Add Application',
    width: 700,
    height:250,
    layout: 'fit',
    plain:true,
    bodyStyle:'padding:5px;',
    buttonAlign:'center',
    border: false,
    closable:false,
    modal:true,
    shim: false,
    frame: true,
    items: applicationForm,

    buttons: [{
        text: 'Submit',

        handler: function(){
            if( applicationForm.getForm().isValid()){
                applicationForm.getForm().submit({
                    url: '../ApplicationServelet',
                    waitMsg:'Saving Data...',
                    params:{
                        action:schedulerAppAddEditAction,
                        ID:chosenSchedulerAppIdToEdit
                    },
                    success: function(){
                        add_app_Window.hide();
                        AppList_Store.load();
                        applicationForm.getForm().reset();
                    },

           },
                fail: function(){
                 Ext.MessageBox.alert('Email Server', 'Multiple Mail Server is not Allowed.');



                },



                    failure: function(result, request){
                        var obj = Ext.util.JSON.decode(request.response.responseText);
                        Ext.MessageBox.alert('Add Application Failed.', obj.reason);
                    }
                });
            }else{
                Ext.MessageBox.alert('Applications', 'Could not Submit. Make sure all fields are valid.');
            }    

This is the javascript part which contains all the error messages , which contains all the error messages, the message i want to call if the Fail message, which says that Multiple Mail Server is not allowed 这是包含所有错误消息的javascript部分,其中包含所有错误消息,如果出现“失败”消息(表示不允许使用多个邮件服务器),我想调用该消息

That's not valid HTML or Javascript. 这不是有效的HTML或Javascript。 You need to remove the script from inside the opening <body> tag and place it inside <script> tags of its own. 您需要从开始的<body>标记内删除脚本,并将其放置在自己的<script>标记内。

out.println ("<html><body><script>alert('Hello World!');</script></body></html>");

You should however avoid printing out HTML from a Servlet and consider redirecting to an error.jsp instead. 但是,您应该避免从Servlet打印出HTML,而应考虑重定向到error.jsp This would also allow you to collate all the validation errors and display them to the user in one go. 这还使您可以整理所有验证错误,并一次性将它们显示给用户。

尝试这个

 out.println("<html><body onload=\"alert('Hello World')\"></body></html>");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM