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