📄 delete.jsp.htm
字号:
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*"%>
<html>
<head>
<title>删除文章</title>
</head>
<body>
<%//防止某些用户不进行登陆,直接想进入此页面
if (session.getAttribute("username")==null){
response.sendRedirect("login1.jsp");
}%>
<%
//得到文章的标识ID
String id=request.getParameter("id");
//得到当前所在讨论区的编号bid
int bid=Integer.parseInt(request.getParameter("bid"));
//得到要回复文章的标识ID
int reid=Integer.parseInt(request.getParameter("reid"));
//接收登陆用户的身份等级信息rankid
int rankid=Integer.parseInt(request.getParameter("rankid"));
int postnum; //发表文章数
String username; //用户名
//加载数据库驱动并用连接池连结数据库
String sql="";
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{
out.print(e);
}
String strDirPath=application.getRealPath(request.getRequestURI());
strDirPath=strDirPath.substring(0,strDirPath.lastIndexOf('\\'))+"\\";
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+strDirPath+"forum.mdb";
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
//将文章所属作者的PostNumber数减一
sql="select User.PostNumber,User.UserName from User,Articles where Articles.AuthorID=User.ID and Articles.ID="+id;
ResultSet rs=stmt.executeQuery(sql);
rs.next();
postnum=rs.getInt(1);
username=rs.getString(2);
postnum--;
rs.close();
sql="update User set PostNumber='"+postnum+"' where UserName='"+username+"'";
stmt.executeUpdate(sql);
if(reid==0){
//如果要删除主题文章
sql="select count(*) from Articles where ReplyID="+id;
rs=stmt.executeQuery(sql);
rs.next();
int recount=rs.getInt(1);
rs.close();
for(int i=0;i<recount;i++)
{
//将相关文章的PostNumber数减一
sql="select User.PostNumber,User.UserName from User,Articles where Articles.AuthorID=Users.ID and Articles.ReplyID="+id;
rs=stmt.executeQuery(sql);
rs.next();
postnum=rs.getInt(1);
username=rs.getString(2);
postnum--;
rs.close();
sql="update User set PostNumber='"+postnum+"' where UserName='"+username+"'";
stmt.executeUpdate(sql);
}
//删除相关文章
sql="delete * from Articles where ReplyID="+id;
stmt.executeUpdate(sql);
}else{
//如果是删除回复文章,要将对应的主题文章的回复数ReplyNum减一
sql="select ReplyNum from Articles where ID="+reid;
rs=stmt.executeQuery(sql);
rs.next();
int renum=rs.getInt(1);
renum--;
rs.close();
sql="update Articles set ReplyNum='"+renum+"' where ID="+reid;
stmt.executeUpdate(sql);
}
//删除此文章信息
sql="delete * from Articles where ID="+id;
stmt.executeUpdate(sql);
%>
<%
//如果是发表新主题文章,就转向所有主题文章列表页面
if (reid==0){
response.sendRedirect("listarticle.jsp?bid="+bid+"&rankid="+String.valueOf(rankid));
}
//如果是回复文章,就转向显示文章详细内容和回复文章内容的页面
else{
response.sendRedirect("detail.jsp?bid="+bid+"&id="+reid+"&rankid="+String.valueOf(rankid));
}
stmt.close();
conn.close();
%>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -