1
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>
 }

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.');
            }    

これは、すべてのエラー メッセージを含む JavaScript 部分です。これには、すべてのエラー メッセージが含まれます。複数のメール サーバーが許可されていないことを示す失敗メッセージの場合に呼び出したいメッセージです。

4

2 に答える 2

2

これは有効な HTML または Javascript ではありません。<body>開始タグ内からスクリプトを削除し<script>、独自のタグ内に配置する必要があります。

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

ただし、サーブレットから HTML を出力することは避け、error.jsp代わりに にリダイレクトすることを検討してください。これにより、すべての検証エラーを照合して、一度にユーザーに表示することもできます。

于 2013-07-16T08:04:44.427 に答える
1

これを試して

 out.println("<html><body onload=\"alert('Hello World')\"></body></html>");
于 2013-07-16T08:05:38.090 に答える