JSP MVCモードを使用して、削除と修正機能の実例を完成しました.

11061 ワード

本論文の例は、JSPがMVCモードを使用して削除と修正を完了する方法を説明する.皆さんの参考にしてください.具体的には以下の通りです
ターゲット:
①MVCモードをさらに理解する;②削除機能の基本実現過程を把握する;③補正機能の基本的な実現過程を把握する.
主な内容:
①MVCで削除機能を完了しました.②MVCモードで情報更新機能を完了します.
1、どのようにMVCモードを使って削除機能を完成しますか?
MVCモードの特徴によって、MVCの3つの部分をそれぞれ考慮します.①まずV部分を考える:
入力:通常の削除機能はクエリに基づいて行われるので、ユーザ情報リスト画面に削除されたハイパーチェーンを追加することができます.
出力:ユーザーに削除が成功したかどうかをヒントを与え、単独のインターフェースを使ってもいいし、他のページにも表示できます.第二の方式を採用して、ユーザーリスト画面にヒント情報を表示します.
②次にM部分を考慮します.User.javaにユーザを削除する方法を追加すればいいです.
③C部分を最後に考えます.ユーザが削除するユーザ名を取得し、M部分を呼び出して削除を完了し、最後にユーザ情報リスト画面に移行します.
以下はそれぞれ実現します.
2、userlist.jspファイルにハイパーチェーン削除とヒント情報を追加します.
1)ハイパーチェーンの削除(赤い部分)を追加:


 
  
   ${user.username}
  
  
   ${user.userpass}
  
  
     
  
 


注意:削除するときは、削除するユーザの名前(ここの名前はキーとして)を知る必要がありますので、パラメータを通じて名前を伝えます.
2)メッセージを追加:

    ${deleteinfo}  
 
3)修正後のコードは以下の通りです.



 ${addinfo} 
 ${deleteinfo} 

のページ のページ のページ のページ
ユーザ名
パスワード
ドル{user.username}
${user.userpass}
削除
3、M部分を作成する:User.javaに方法を追加する
User.javaにdeleteUser方法を追加します.参照コードは以下の通りです.

public boolean deleteUser(String username) {
 Connection con = null;
 Statement stmt = null;
 boolean b; //         
 try {
  //                
  Class.forName("oracle.jdbc.driver.OracleDriver");
  //            
  con = DriverManager.getConnection(
    "jdbc:oracle:thin:@myserver:1521:mydb", "scott",
    "tiger");
  //           SQL  
  String sql = "delete from usertable where username='" + username + "'";
  //       ,    SQL  
  stmt = con.createStatement();
  //             ,                
  int n = stmt.executeUpdate(sql);
  if (n > 0)
   b = true;
  else
   b = false;
 } catch (Exception e) {
  b = false;
 } finally {
  //       
  if (stmt != null)
   try {
    stmt.close();
   } catch (Exception ee) {
   }
  if (con != null)
   try {
    con.close();
   } catch (Exception ee) {
   }
 }
 return b;
}

注意:赤い部分はサーバーとデータベースに変更する必要があります.
4、C部分を作成する:DeleteUserコントローラを追加する
DeleteUser.javaのコードは以下の通りです.

package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javabean.User;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DeleteUser extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
 //    
 String username = request.getParameter("username");
 //   JavaBean
 User user = new User();
 boolean b = user.deleteUser(username);
 //             
 String info;
 if(b)
  info = "    !";
 else
  info = "    !";
 request.setAttribute("deleteinfo",info);
 //          
 RequestDispatcher rd = request.getRequestDispatcher("getAllUser");
 rd.forward(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
  doGet(request,response);
}
}

5、どのようにMVCモードを使って修正機能を実現しますか?
変更機能自体は、変更するユーザを選択し、ユーザーの情報を修正画面に表示する2つのプロセスを含む.ユーザーが修正し、修正して提出し、サーバーが修正機能を完了します.最初の機能については、MVCモードを採用しています.
V部分:
入力:ユーザーリスト画面に「変更」ハイパーチェーンを追加します.出力:ユーザー情報は画面を修正して、照会した情報を修正画面に表示します.
M部分:ユーザー名でユーザー情報を検索する方法を作成します.
C部分:削除するユーザの名前を取得し、M部分の照会方法を呼び出し、ユーザー情報を得て、修正画面に伝達し、修正インターフェースを使ってユーザーに応答する.
第二部分については、MVCモードを採用する.
V部分
入力:上記で作成した修正画面です.出力:ユーザ情報リスト画面
M部分:ユーザー情報の修正方法を作成します.
C部分:ユーザが入力した情報を取得し、M部分を呼び出して修正を完了し、リスト画面に切り替えてユーザに応答する.
それぞれの実現方法を紹介します.
6、ユーザー情報リスト画面を変更する
修正後のコードは以下の通りです.



 ${addinfo} 
 ${deleteinfo} 
 ${updateinfo} 

のページ のページ のページ のページ
ユーザ名
パスワード
ドル{user.username}
${user.userpass}
変更
削除
7、情報修正画面を作成する
参考コードは以下の通りです.

     
ユーザ名:{user.username}
パスワード:
8、User.javaに照会情報を追加する方法

public User findUserByName(String username) {
  Connection con = null;
  Statement stmt = null;
  ResultSet rs = null;
  try {
   //                
   Class.forName("oracle.jdbc.driver.OracleDriver");
   //            
   con = DriverManager.getConnection(
     "jdbc:oracle:thin:@myserver:1521:mydb", "scott",
     "tiger");
   //           SQL  
   String sql = "select * from usertable where username='" + username + "'";
   //       ,    SQL  
   stmt = con.createStatement();
   //             ,                
   rs = stmt.executeQuery(sql);
   if(rs.next()){
    User user = new User();
    String userpass = rs.getString(2);
    user.setUsername(username);
    user.setUserpass(userpass);
    return user;
   }   
  } catch (Exception e) {
   return null;
  } finally {
   //       
   try{
    rs.close();
   }catch(Exception e){}
   if (stmt != null)
    try {
     stmt.close();
    } catch (Exception ee) {
    }
   if (con != null)
    try {
     con.close();
    } catch (Exception ee) {
    }
  }
  return null;
}

注意:赤い部分はサーバーとデータベースに変更する必要があります.
9、User.javaに「変更情報」を追加する方法

public boolean update() {
 Connection con = null;
 Statement stmt = null;
 boolean b;
 try {
  //                
  Class.forName("oracle.jdbc.driver.OracleDriver");
  //            
  con = DriverManager.getConnection(
    "jdbc:oracle:thin:@myserver:1521:mydb", "scott",
    "tiger");
  //      sQL  
  String sql = "update usertable set userpass = '"+userpass+"' where username='" + username + "'";
  //       ,    SQL  
  stmt = con.createStatement();
  //             ,                
  int n = stmt.executeUpdate(sql);
  if(n>0)
   b=true;
  else
   b=false;
 } catch (Exception e) {
  b = false;
 } finally {
  if (stmt != null)
   try {
    stmt.close();
   } catch (Exception ee) {
   }
  if (con != null)
   try {
    con.close();
   } catch (Exception ee) {
   }
 }
 return b;
}

注意:赤い部分はサーバーとデータベースに変更する必要があります.
10、クエリ情報を作成するServlet
参考コードは以下の通りです.

package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javabean.User;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FindUser extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
 doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
 //     
 String username = request.getParameter("username");
 //  Javabean
 User user = new User();
 user = user.findUserByName(username);
 //    
 request.setAttribute("user", user);
 //            
 RequestDispatcher rd = request.getRequestDispatcher("updateuser.jsp");
 rd.forward(request, response);    
}
}

11、修正情報を作成するServlet
参考コードは以下の通りです.

package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javabean.User;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UpdateUser extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
 doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
 //     
 String username = request.getParameter("username");
 String userpass = request.getParameter("userpass");
 //  Javabean
 User user = new User();
 user.setUsername(username);
 user.setUserpass(userpass);
 boolean b = user.update();
 //    
 String info ;
 if(b)
  info="    !";
 else
  info="    !";
 //            
 RequestDispatcher rd = request.getRequestDispatcher("getAllUser");
 rd.forward(request, response); 
}
}

本論文で述べたように、皆様のJSPプログラムの設計に役に立ちますように.