JSP MVCモードを使用して、削除と修正機能の実例を完成しました.
11061 ワード
本論文の例は、JSPがMVCモードを使用して削除と修正を完了する方法を説明する.皆さんの参考にしてください.具体的には以下の通りです
ターゲット:
①MVCモードをさらに理解する;②削除機能の基本実現過程を把握する;③補正機能の基本的な実現過程を把握する.
主な内容:
①MVCで削除機能を完了しました.②MVCモードで情報更新機能を完了します.
1、どのようにMVCモードを使って削除機能を完成しますか?
MVCモードの特徴によって、MVCの3つの部分をそれぞれ考慮します.①まずV部分を考える:
入力:通常の削除機能はクエリに基づいて行われるので、ユーザ情報リスト画面に削除されたハイパーチェーンを追加することができます.
出力:ユーザーに削除が成功したかどうかをヒントを与え、単独のインターフェースを使ってもいいし、他のページにも表示できます.第二の方式を採用して、ユーザーリスト画面にヒント情報を表示します.
②次にM部分を考慮します.User.javaにユーザを削除する方法を追加すればいいです.
③C部分を最後に考えます.ユーザが削除するユーザ名を取得し、M部分を呼び出して削除を完了し、最後にユーザ情報リスト画面に移行します.
以下はそれぞれ実現します.
2、userlist.jspファイルにハイパーチェーン削除とヒント情報を追加します.
1)ハイパーチェーンの削除(赤い部分)を追加:
2)メッセージを追加:
パスワード
ドル{user.username}
${user.userpass}
削除
3、M部分を作成する:User.javaに方法を追加する
User.javaにdeleteUser方法を追加します.参照コードは以下の通りです.
4、C部分を作成する:DeleteUserコントローラを追加する
DeleteUser.javaのコードは以下の通りです.
変更機能自体は、変更するユーザを選択し、ユーザーの情報を修正画面に表示する2つのプロセスを含む.ユーザーが修正し、修正して提出し、サーバーが修正機能を完了します.最初の機能については、MVCモードを採用しています.
V部分:
入力:ユーザーリスト画面に「変更」ハイパーチェーンを追加します.出力:ユーザー情報は画面を修正して、照会した情報を修正画面に表示します.
M部分:ユーザー名でユーザー情報を検索する方法を作成します.
C部分:削除するユーザの名前を取得し、M部分の照会方法を呼び出し、ユーザー情報を得て、修正画面に伝達し、修正インターフェースを使ってユーザーに応答する.
第二部分については、MVCモードを採用する.
V部分
入力:上記で作成した修正画面です.出力:ユーザ情報リスト画面
M部分:ユーザー情報の修正方法を作成します.
C部分:ユーザが入力した情報を取得し、M部分を呼び出して修正を完了し、リスト画面に切り替えてユーザに応答する.
それぞれの実現方法を紹介します.
6、ユーザー情報リスト画面を変更する
修正後のコードは以下の通りです.
パスワード
ドル{user.username}
${user.userpass}
変更
削除
7、情報修正画面を作成する
参考コードは以下の通りです.
パスワード:
8、User.javaに照会情報を追加する方法
9、User.javaに「変更情報」を追加する方法
10、クエリ情報を作成するServlet
参考コードは以下の通りです.
参考コードは以下の通りです.
ターゲット:
①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プログラムの設計に役に立ちますように.