📄 chktodb.jsp.htm
字号:
<%@ page import="java.util.*,java.sql.*" contentType="text/html;charset=GB2312"%>
<html>
<head>
<title>文章入库</title>
</head>
<body>
<%//防止某些用户不进行登陆,直接想进入此页面
if (session.getAttribute("username")==null){
response.sendRedirect("login1.jsp");
}%>
<%
//得到用户名
String username=(String)session.getAttribute("username");
//String username=(String)session.getValue("username");
//得到文章的标识ID
String id=request.getParameter("id");
//得到要回复文章的标识ID
int reid=Integer.parseInt(request.getParameter("reid"));
//得到当前所在讨论区的编号bid
int bid=Integer.parseInt(request.getParameter("bid"));
//得到对文章的操作内容(发表或修改)
String exe=request.getParameter("exe");
//得到发表文章的表情
String emotion=request.getParameter("emotion");
//得到文章的标题
String title=request.getParameter("title");
//得到文章的内容
String content=request.getParameter("content");
//接收登陆用户的身份等级信息rankid
int rankid=Integer.parseInt(request.getParameter("rankid"));
//设定文章当前发表时间
// Calendar cal=Calendar.getInstance();
// month=Calendar.get(Calender.MONTH)+1;
GregorianCalendar Cal;
Cal=new GregorianCalendar();
int year,month,day,hour,min,sec;
year=Cal.get(Calendar.YEAR);
month=Cal.get(Calendar.MONTH)+1;
day=Cal.get(Calendar.DAY_OF_MONTH);
hour=Cal.get(Calendar.HOUR_OF_DAY);
min=Cal.get(Calendar.MINUTE);
sec=Cal.get(Calendar.SECOND);
String posttime=year+"年"+month+"月"+day+"日"+hour+":"+min+":"+sec;
%>
<%if (title.equals("") || content.equals("")){%>
标题和文章内容均不能为空!<br>
<a href="javascript:history.back();">返回</a>
<%}else{
//加载数据库驱动并用连接池连结数据库
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();
//查询此用户名的ID号
sql="select ID from User where UserName='"+username+"'";
ResultSet rs=stmt.executeQuery(sql);
rs.next();
int authorid=rs.getInt("ID");
title=new String(title.getBytes("iso8859-1"), "gb2312");
content=new String(content.getBytes("iso8859-1"), "gb2312");
int renum=0;
//如果是发表新主题文章或回复文章
if (exe.equals("write")){
if(reid!=0)
{ //如果是回复文章,则被回复文章的被回复数加一
rs.close(); //注意close的位置
sql="select ReplyNum from Articles where ID="+reid;
rs=stmt.executeQuery(sql);
rs.next();
renum=rs.getInt("ReplyNum");
renum++;
rs.close();//注意close的位置
sql="update Articles set ReplyNum='"+renum+"' where ID="+reid;
stmt.executeUpdate(sql);
}
//此用户的PostNumber加一
sql="select PostNumber from User where UserName='"+username+"'";
rs=stmt.executeQuery(sql);
rs.next();
int postnum=rs.getInt("PostNumber");
postnum++;
rs.close();
sql="update User set PostNumber='"+postnum+"' where UserName='"+username+"'";
stmt.executeUpdate(sql);
//将文章信息存入数据库
out.println(postnum);
renum=0;
sql="insert into Articles (AuthorId,PostTime,Title,Content,Emotion,BoardID,ReplyID,ReplyNum) values ("
+authorid+",'"+posttime+"','"+title+"','"+content+"','"+emotion+"','"+bid+"','"+reid+"','"+renum+"')";
}
//如果是修改文章
else if (exe.equals("modify")){
sql="update Articles set PostTime='"+posttime+"',Content='"+content+"' where ID="+id;
}
stmt.executeUpdate(sql);
%>
<% stmt.close();
conn.close(); %>
<%
//如果是发表新主题文章,就转向所有主题文章列表页面
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));
}
%>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -