用JSP实现的一个完整的新闻发布系统.docx
《用JSP实现的一个完整的新闻发布系统.docx》由会员分享,可在线阅读,更多相关《用JSP实现的一个完整的新闻发布系统.docx(9页珍藏版)》请在冰豆网上搜索。
用JSP实现的一个完整的新闻发布系统
用JSP实现的一个完整的新闻发布系统
我将分几个步骤完成对一个新闻发布系统的构建,来理解JSP的一些基本使用方法!
首先我将先介绍这个新闻发布系统的基本结构:
index.jsp:
管理员登陆界面
check.jsp:
验证管理员身份
main.jsp:
管理员添加新闻的页面
pub.jsp:
发布信息的页面
display:
显示所有的新闻
而后台的程序主要有:
DB.java:
数据库连接
MD5.java:
MD5算法
PubBean.java:
发布
CheckBean.java:
核实登陆身份
即当你从index->main->display走一趟你基本就可以完成一个新闻发布系统的基本功能了!
我并非把新闻的标题和内容都写入数据库,因为那样太耗费数据库系统的资源,而且在访问的时候总要读取数
据库,很费劲,我把新闻写入了一个单独的HTM文件,之后把标题及HTM文件的名字写入的数据库!
而这个HTM文件的名字怎么随机生成呢?
我选择了MD5算法,因为每个新闻的标题都不会相同,所以保证了唯一性!
下面我先把这个系统的基本框架勾勒出来,说的大一点,这似乎就是这个“系统”的“内核”啦!
:
)
================数据库部分==================
CREATETABLEadministrator
(
adminchar(16),
"password"char(32)
)
WITHOUTOIDS;
ALTERTABLEadministratorOWNERTOadmin;
CREATETABLEnews
(
titlechar(255),
pagechar(255)
)
WITHOUTOIDS;
ALTERTABLEnewsOWNERTOadmin;
================程序部分==================
packagelogin;
importjava.sql.*;
publicclassDB{
privateConnectionconn;
privateStatementstmt;
privateResultSetrs;
publicDB(){
try{
Class.forname("org.postgresql.Driver");
conn=DriverManager.getConnection
("jdbc:
postgresql:
//localhost:
5432/news?
user=admin&&password=");
stmt=conn.createStatement();
}
catch(Exceptione){
System.out.println(e);
}
}
publicvoidupdate(Stringsql){
try{
stmt.executeUpdate(sql);
}
catch(Exceptione){
System.out.println(e);
}
}
publicResultSetquarry(Stringsql){
try{
rs=stmt.executeQuery(sql);
}
catch(Exceptione){
System.out.println(e);
}
returnrs;
}
}
packagelogin;
importjava.sql.*;
importjava.io.*;
publicclassPubBean{
privateStringtitle,context;
privateDBdb;
privateMD5md5;
publicPubBean(){
db=newDB();
md5=newMD5();
}
publicvoidsetTitle(Stringtitle){
this.title=title;
}
publicvoidsetContext(Stringcontext){
this.context=context;
}
publicvoidpubIt(){
try{
title=newString(title.getBytes("8859_1"),"gb2312");context=newString(context.getBytes("8859_1"),"gb2312");StringtitleMD5=md5.getkeyBeanofStr(title);
db.update("insertintonewsvalues('"+title+"','"+titleMD5+"')");Stringfile="news\\ice"+titleMD5+".htm";
PrintWriterpw=newPrintWriter(newFileOutputStream(file));pw.println("
"+title+"");
pw.println(context);
pw.close();
}
catch(Exceptione){
System.out.println(e);
}
}
}
packagelogin;
importjava.sql.*;
publicclassCheckBean{
privateStringmessage="",admin,password;
privateDBdb;
publicCheckBean(){
db=newDB();
}
publicvoidsetAdmin(Stringadmin){
this.admin=admin;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicStringcheckIt(){
try{
ResultSetrs=db.quarry("select*fromadministratorwhereadmin='"+this.admin+"'");
while(rs.next()){
Stringpws=rs.getString("password").trim();
if(pws.equals(this.password)){
message="密码正确!
";
}
elsemessage="密码错误!
";
returnmessage;
}
message="用户不存在!
";
}
catch(Exceptione){
System.out.println(e);
}
returnmessage;
}
}
================页面部分==================index.jsp:
<%@pagecontentType="text/html;charset=gb2312"%>
登陆系统用户:
密码:
<%
Stringerror=request.getParameter("error");
error=newString(error.getBytes("8859_1"),"gb2312");
if(error==null){}
else{
%>
<%=error%>
<%
}
%>
check.jsp
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="login.CheckBean"%>
<%
Stringadmin=request.getParameter("admin");
Stringpassword=request.getParameter("password");
%>
useBeanid="checkBean"/>
setPropertyname="checkBean"property="admin"value="<%=admin.trim()%>"/>
setPropertyname="checkBean"property="password"value="<%=password.trim()%>"/><%
Stringresult=checkBean.checkIt();
if(result.equals("密码正确!
")){
session.setAttribute("admin",admin);
response.sendRedirect("main.jsp");
}
else
{
%>
forwardpage="index.jsp">
paramname="error"value="<%=result%>"/>
forward>
<%
}
%>
main.jsp
<%@pagecontentType="text/html;charset=gb2312"%>
<%
Stringadmin=(String)(session.getAttribute("admin"));
if(admin==null){
response.sendRedirect("index.jsp");
}
else{
%>
新闻发布
题目:
内容:
<%}%>
pub.jsp
<%@pagecontentType="text/html;charset=gb2312"%>
<%
Stringadmin=(String)(session.getAttribute("admin"));
Stringtitle=request.getParameter("title");
Stringcontext=request.getParameter("context");
if(admin==null){
response.sendRedirect("index.jsp");
}
else{
%>
useBeanid="pubBean"/>
setPropertyname="pubBean"property="title"value="<%=title.trim()%>"/>
setPropertyname="pubBean"property="context"value="<%=context%>"/>
<%
pubBean.pubIt();
response.sendRedirect("display.jsp");
}
%>
display.jsp
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*"%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectionconn=DriverManager.getConnection("jdbc:
odbc:
PostgreSQL","","");
Statementstmt=conn.createStatement();
%>
新闻
<%
ResultSetrs=stmt.executeQuery("SELECT*FROMnews");
//显示记录
while(rs.next()){
out.print("(2)+".htmtarget=_blank>"+rs.getString
(1)+"");
out.println("
");
}%>
好了,基本的东西都实现了,希望现在已经可以给你一个完整的面貌了,在后面的文章中,我再把程序一步步的完善,增加一些新的功能!