ログイン後の次のコードでは、ユーザーは自分の情報を表示し、追加/削除または編集ボタンをクリックして、対応するページにリダイレクトできます。しかし、情報を編集して「View Menu」ボタンを押すと、リダイレクトされますが、彼の情報は表示されなくなり、テーブルのヘッダーだけになります。上から下への最初の写真は、ユーザーがログインしたときのビュー、2 番目の写真は新しいメニューを追加したときのビュー、3 番目の写真は再びホーム画面に移動したときの様子です。ユーザーが情報を追加した後に「表示メニュー」を更新するにはどうすればよいですか。
<%@ page language="java" import="java.sql.*" import="java.text.*" errorPage="" %>
<%
String myname = (String)session.getAttribute("username");
Connection conn = null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root", "root");
ResultSet rsLoginFunction = null;
PreparedStatement psLoginFunction=null;
String sUserID=request.getParameter("username");
String sPassword=request.getParameter("password");
String message="User login successfully ";
try{
String sql = "SELECT menu.name, menu.info, menu.price FROM menu INNER JOIN clients ON menu.username = clients.username where clients.username=? and clients.password=?";
psLoginFunction=conn.prepareStatement(sql);
psLoginFunction.setString(1,sUserID);
psLoginFunction.setString(2,sPassword);
rsLoginFunction=psLoginFunction.executeQuery();
session.setAttribute("username", sUserID);
if(rsLoginFunction.next())
{
String username=rsLoginFunction.getString("menu.name")+" "+rsLoginFunction.getString("menu.info");
}
else
{
message="No user or password matched" ;
response.sendRedirect("Login.jsp?error="+message);
}
}
catch(Exception e)
{
e.printStackTrace();
}
/// close object and connection
try{
if(psLoginFunction!=null){
psLoginFunction.close();
}
if(rsLoginFunction!=null){
rsLoginFunction.close();
}
if(conn!=null){
conn.close();
}
}
catch(Exception e)
{
e.printStackTrace();
}
%>
お客様情報ページはこちら
<%@ include file="include/common.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript">
function del() {
if (confirm("Do You Want to Delete this Menu?")) {
} else {
return false;
}
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link rel="stylesheet" href="images/style.css" type="text/css"
charset="utf-8" />
</head>
<body>
<%
menu_slno1 = request.getParameter("menu_slno");
if (menu_slno1 != null)
menu_slno = Integer.parseInt(menu_slno1);
delete_menu = request.getParameter("delete_menu");
if ("yes".equals(delete_menu)) {
MenuId = request.getParameter("MenuId");
x = stmt1
.executeUpdate("Delete from menu where MenuId="
+ MenuId);
}
%>
<center><h2>VIEW MENU</h2></center>
<center><table width="736" height="97" border="1"></center>
<%
if (x == 1) {
%>
<tr bgcolor="gray">
<th height="35" colspan="9"><div align="center">
Menu deleted successfully!
</div></th>
</tr>
<%
}
%>
<tr bgcolor="gray">
<td><div align="center">
<strong>Menu ID</strong>
</div></td>
<td><div align="center">
<strong>Name </strong>
</div></td>
<td><div align="center">
<strong>Info</strong>
</div></td>
<td><div align="center">
<strong>Price</strong>
</div></td>
<td colspan="2"><div align="center">
<strong>Action</strong>
</div></td>
</tr>
<%
String sUserID=request.getParameter("username");
session.setAttribute("username", sUserID);
int icount = 0;
rs = stmt.executeQuery("SELECT menu.menuID, menu.name, menu.info, menu.price, menu.RestaurantID FROM menu INNER JOIN clients ON menu.username = clients.username where menu.username='" +sUserID+ "'");
while (rs.next()) {
//menu_slno = rs.getInt("menu_slno");
MenuId = rs.getString("MenuId");
%>
<tr>
<td><div align="center"><%=++icount%></div></td>
<td><%=rs.getString("Name")%></td>
<td><%=rs.getString("Info")%></td>
<td><%=rs.getDouble("Price")%></td>
<td><div align="center">
<a href="edit_menu.jsp?MenuId=<%=MenuId%>">Edit</a>
</div></td>
<td><div align="center">
<a
href="view_menu.jsp?delete_menu=yes&MenuId= <%=MenuId%>&MenuId=<%=MenuId%>"
onclick="return del()">Delete</a>
</div></td>
</tr>
<%
}
%>
</table>
<a href="add_menu.jsp">Add Menu</a>
</body>
</html>
ユーザーが新しい情報を追加した最後のページ (編集や削除ではなく、新しい情報を追加するだけ)
<%@ include file="include/common.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link rel="stylesheet" href="images/style.css" type="text/css"
charset="utf-8" />
<script language="javascript">
function validate(menu) {
// request.setAttribute("user","<username>");
// String user=request.getAttribute("user");
// while (username.equals(sUserID))
if (menu.Name.value.length == 0) {
alert("Please enter Menu Name!");
menu.Name.focus();
return false;
}
if (menu.Info.value.length == 0) {
alert("Please enter Menu Info!");
menu.Info.focus();
return false;
}
if (menu.Price.value.length == 0) {
alert("Please enter price!");
menu.Price.focus();
return false;
}
return true;
}
</script>
</head>
<body>
<h2>ADD MENU</h2>
<form name="menu" id="menu" action="db_add_menu.jsp"
method="post" onSubmit="return validate(this)">
<table width="332" height="252" border="0" align="center"
cellpadding="2" cellspacing="2">
<tr>
<th height="33" colspan="2"><div align="center">
<%
menu = (String) session.getAttribute("menu");
session.removeAttribute("menu");
if (menu != null)
out.print(menu);
%>
</div></th>
</tr>
<tr>
<th>Menu Name</th>
<td><input name="Name" type="text" class="text"
id="Name" value="" /></td>
</tr>
<tr>
<th>Menu Info</th>
<td><input name="Info" type="text" class="text"
id="Info" value="" /></td>
</tr>
<tr>
<th>Menu Price</th>
<td><input name="Price" type="text" class="text"
id="Price" value="" /></td>
</tr>
<tr>
<td class="submission" colspan="2"><div align="center">
<input name="s" type="submit" class="button" value="ADD" /> <input
name="Reset" type="reset" class="button" value="RESET" />
</div></td>
</tr>
<tr>
<th class="submission" colspan="2"><div align="center">
<a href="view_menu.jsp">View Menu</a>
</div></th>
</tr>
</table>
</form>
</body>
</html>
必要な場合の最後のページは、情報を追加する機能です。
<%@ include file="include/common.jsp" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
body>
<%
String myname = (String)session.getAttribute("username");
MenuId = request.getParameter("MenuId");
Name = request.getParameter("Name");
Info = request.getParameter("Info");
RestaurantID = request.getParameter("RestaurantID");
menu_price1 = request.getParameter("Price");
if (menu_price1 != null || !"".equals(menu_price1))
Price = Double.parseDouble(menu_price1);
pstmt = con
.prepareStatement("Insert into menu(MenuId,Name,Info,Price,RestaurantID) values(?,?,?,?,?)");
pstmt.setString(1, MenuId);
pstmt.setString(2, Name);
pstmt.setString(3, Info);
pstmt.setDouble(4, Price);
pstmt.setString(5, myname);
pstmt.executeUpdate();
con.close();
session.setAttribute("menu", "Menu added successfully");
response.sendRedirect("add_menu.jsp");
%>
</body>
</html>