Java桌面应用程序到Java Web应用程序

Java桌面应用程序到Java Web应用程序,java,jsp,Java,Jsp,我是Java Web编程新手,无论何时放置JSP标记,我的非GUI Netbeans代码都编译得很好,但无论何时放置JSP标记,我的GUI Netbeans代码都充满了错误:和。 下面是我的一个Netbeans GUI代码,用于一个简单的“工资标签系统”,其中3个标签对应于3个文本字段(dspID、dspNAME、dspSAL)。 什么是正确的JSP标记方式 public class Employee extends javax.swing.JFrame { // Variables d

我是Java Web编程新手,无论何时放置JSP标记,我的非GUI Netbeans代码都编译得很好,但无论何时放置JSP标记,我的GUI Netbeans代码都充满了错误:和。 下面是我的一个Netbeans GUI代码,用于一个简单的“工资标签系统”,其中3个标签对应于3个文本字段(dspID、dspNAME、dspSAL)。 什么是正确的JSP标记方式

public class Employee extends javax.swing.JFrame {

   // Variables declaration                     
private javax.swing.JTextArea dispAREA;
private javax.swing.JTextField dispID;
private javax.swing.JTextField dispNAME;
private javax.swing.JTextField dispSAL;
private javax.swing.JButton findBUTTON;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration    


public Employee() {
    initComponents();
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    findBUTTON = new javax.swing.JButton();
    jLabel1 = new javax.swing.JLabel();
    jLabel2 = new javax.swing.JLabel();
    dispID = new javax.swing.JTextField();
    dispNAME = new javax.swing.JTextField();
    jScrollPane1 = new javax.swing.JScrollPane();
    dispAREA = new javax.swing.JTextArea();
    jLabel3 = new javax.swing.JLabel();
    dispSAL = new javax.swing.JTextField();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    findBUTTON.setText("Find");
    findBUTTON.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            findBUTTONActionPerformed(evt);
        }
    });

    jLabel1.setText("Employee ID");

    jLabel2.setText("Name");

    dispAREA.setColumns(20);
    dispAREA.setRows(5);
    jScrollPane1.setViewportView(dispAREA);

    jLabel3.setText("Salary");

    dispSAL.setText("                                     ");


}// </editor-fold>                        

private void findBUTTONActionPerformed(java.awt.event.ActionEvent evt) {                                           


    try{

        Class.forName( "com.mysql.jdbc.Driver" );
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Emp","root","");
            Statement statement = con.createStatement();

        String query = "SELECT * FROM EmpInfo ";
        query +="WHERE EmpInfo = "+this.dispID.getText();

        if(this.dispNAME.getText().length() != 0){
            query +=" and Name = '"+this.dispNAME.getText()+"'";
        }

            if(this.dispSAL.getText().length() != 0){
            query +=" and Salary = '"+this.dispSAL.getText()+"'";
        }

        //dispAREA.append("\nYour Query is :"+query+"\n");

        ResultSet rs = statement.executeQuery(query);

        boolean moreRecords = rs.next();
        if(!moreRecords){
            dispAREA.append("Sorry,no match!");

                this.dispID.setText("");

        }
        do{
            this.dispNAME.setText(rs.getString(2));
                    this.dispSAL.setText(rs.getString(3));
            this.dispAREA.setText(rs.getString(4));
        }while(rs.next());
        statement.close();
        con.close();

    }

    catch(SQLException e){
        dispAREA.append("");
        //outputjTextArea.append(e.getStackTrace().toString());
        //e.printStackTrace();


    }catch(ClassNotFoundException e){
        //e.printStackTrace();
        dispAREA.append("");
    }

}                                          

public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            new Employee().setVisible(true);
        }
    });
}
公共类Employee扩展javax.swing.JFrame{
//变量声明
私有javax.swing.JTextArea dispAREA;
私有javax.swing.JTextField dispID;
私有javax.swing.JTextField dispNAME;
私有javax.swing.JTextField dispSAL;
私有javax.swing.JButton findBUTTON;
私有javax.swing.JLabel jLabel1;
私有javax.swing.JLabel jLabel2;
私有javax.swing.JLabel jLabel3;
私有javax.swing.JScrollPane-jScrollPane1;
//变量结束声明
公职人员(){
初始化组件();
}
@抑制警告(“未选中”)
//                           
私有组件(){
findBUTTON=newjavax.swing.JButton();
jLabel1=newjavax.swing.JLabel();
jLabel2=newjavax.swing.JLabel();
dispID=newjavax.swing.JTextField();
dispNAME=newjavax.swing.JTextField();
jScrollPane1=newjavax.swing.JScrollPane();
dispAREA=newjavax.swing.JTextArea();
jLabel3=newjavax.swing.JLabel();
dispSAL=newjavax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setText(“Find”);
findBUTTON.addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
findBUTTONActionPerformed(evt);
}
});
jLabel1.setText(“员工ID”);
jLabel2.setText(“名称”);
dispAREA.setColumns(20);
dispAREA.setRows(5);
jScrollPane1.setViewportView(显示区域);
jLabel3.setText(“工资”);
dispSAL.setText(“”);
}//                         
私有void findBUTTONActionPerformed(java.awt.event.ActionEvent evt){
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
Connection con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/Emp“,”根“,”);
语句Statement=con.createStatement();
String query=“从EmpInfo中选择*”;
query+=“WHERE EmpInfo=“+this.dispID.getText();
if(this.dispNAME.getText().length()!=0){
query+=“and Name=””+this.dispNAME.getText()+“”;
}
if(this.dispSAL.getText().length()!=0){
query+=“and Salary='”+this.dispSAL.getText()+“'”;
}
//append(“\n您的查询是:“+Query+”\n”);
ResultSet rs=语句.executeQuery(查询);
布尔moreRecords=rs.next();
如果(!更多记录){
append(“对不起,没有匹配!”);
this.dispID.setText(“”);
}
做{
this.dispNAME.setText(rs.getString(2));
this.dispSAL.setText(rs.getString(3));
this.dispAREA.setText(rs.getString(4));
}while(rs.next());
语句。close();
con.close();
}
捕获(SQLE异常){
显示区域。附加(“”);
//append(例如getStackTrace().toString());
//e、 printStackTrace();
}catch(classnotfounde异常){
//e、 printStackTrace();
显示区域。附加(“”);
}
}                                          
公共静态void main(字符串参数[]){
invokeLater(new Runnable()){
公开募捐{
新员工().setVisible(true);
}
});
}

}`

使应用程序同时支持gui和web的一种方法是使用MVC原则重新设计它。简单地说,这将显示部分与数据和处理分开。

为什么在GUI应用程序中需要jsp标记?jsp/servlet技术是为web应用程序而不是桌面GUI开发的。@Viraj是因为我想将其转换为web应用程序。转换为web应用程序的过程比仅使用jsp复杂得多。你需要学习HTTP,AJAX,Javascript,CSS,HTM…@bhspencer-我认为他们开发了JSP和servlet来摆脱CSS,长HTMLs和Jscript的麻烦。但我从未尝试过AJAX。你知道更好的选择吗???@Marged我一直在避免MVC,有更好的选择吗?很久以前,当我在做一个小班项目时,MVC曾为我工作过。让我试一试。@Shawn我们都在谈论“模型-视图-控制器”MVC吗?当然这就是我要说的。但我正在寻找一个Java Swing Web启用程序,类似AJAXSWING、WebStream或JAVAWEBSTART,但不会弄乱我的代码。@Shawn那么你为什么不在问题的前面提到这个呢?例如,JSP和JavaWebstart是完全不同的联机方式