新闻发布系统
首先我将先介绍这个新闻发布系统的基本结构: index.jsp:登陆界面 main.jsp:添加新闻的页面 pub.jsp:发布信息的页面 display:显示所有的新闻 即当你从index -> main -> display 走一趟你基本就可以完成一个新闻发布系统的基本功能了!
首先,肯定就是登陆了,之前不用连接数据库,写死就可以了,现在要连接数据库,其实也挺好写的,下面就看看是怎么连接数据库的吧(数据库我用的是MySQL)
LoginImpl log=new LoginImpl();
String name=request.getParameter("uname");
String pwd=request.getParameter("upwd");
//session.getAttribute("syso")!=null && log.login(name, pwd)
if(log.login(name, pwd)){
session.setAttribute(name, "uname");
request.getRequestDispatcher("/newspages/admin.jsp").forward(request,response);
}else{
request.getRequestDispatcher("/index.jsp").forward(request,response);
}
这是写死的登陆,只能用1和1登陆,使用其他的会报错
================程序部分==================
package login;
import java.sql.*;
public class DB {
private Connection conn;
private Statement stmt;
private ResultSet rs;
public DB() {
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection ("jdbc:postgresql://localhost:5432/news?user=admin&&password=");
stmt = conn.createStatement();
}
catch(Exception e) {
System.out.println(e);
}
}
public void update(String sql) {
try {
stmt.executeUpdate(sql);
}
catch(Exception e) {
System.out.println(e);
}
}
public ResultSet quarry(String sql) {
try {
rs = stmt.executeQuery(sql);
}
catch(Exception e) {
System.out.println(e);
}
return rs;
}
}
package login;
import java.sql.*;
import java.io.*;
public class PubBean {
private String title,context;
private DB db;
private MD5 md5;
public PubBean() {
db = new DB();
md5 = new MD5();
}
public void setTitle(String title){
this.title = title;
}
public void setContext(String context) {
this.context = context;
}
public void pubIt()
{
try {
title = new String(title.getBytes("8859_1"),"gb2312");
context = new String(context.getBytes("8859_1"),"gb2312");
String titleMD5 = md5.getkeyBeanofStr(title);
db.update("insert into news values('"+title+"','"+titleMD5+"')");
String file = "news\\ice"+titleMD5+".htm";
PrintWriter pw = new PrintWriter(new FileOutputStream(file));
pw.println("<title>"+title+"</titlepw.println(context);
pw.close();
}
catch(Exception e){
System.out.println(e);
}
}
}
package login;
import java.sql.*;
public class CheckBean {
private String message="",
admin,password;
private DB db;
public CheckBean() {
db = new DB();
}
public void setAdmin(String admin){
this.admin = admin;
}
public void setPassword(String password) {
this.password = password;
}
public String checkIt() {
try {
ResultSet rs = db.quarry("select * from administrator where admin='"+this.admin+"'");
while(rs.next()){
String pws = rs.getString("password").trim();
if(pws.equals(this.password)){
message = "密码正确!";
} else message = "密码错误!";
return message;
}
message = "用户不存在!";
}
catch(Exception e) {
System.out.println(e);
}
return message;
}
}
================页面部分==================
index.jsp:
<%@ page contentType="text/html;charset=gb2312"%>
<html><head><title>登陆系统</title></head>
<body>
<form name="login" action="check.jsp" method="post"> 用户:<input type="text" name="admin"><br> 密码:<input type="password" name="password"><br> <input type="submit" value="登陆"><br>
</form>
</body>
</html>
<% String error=request.getParameter("error"); error=new String(error.getBytes("8859_1"),"gb2312"); if(error==null) {} else{ %>
<%=error%> <% } %> check.jsp <%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="login.CheckBean"%>
<% String admin = request.getParameter("admin");
String password = request.getParameter("password"); %>
<jsp:useBean id="checkBean" class="login.CheckBean"/>
<jsp:setProperty name="checkBean" property="admin" value="<%= admin.trim() %>"/> <jsp:setProperty name="checkBean" property="password" value="<%= password.trim() %>"/>
<% String result = checkBean.checkIt();
if(result.equals("密码正确!"))
{ session.setAttribute("admin",admin); response.sendRedirect("main.jsp");
}
else {
%> <jsp:forward page="index.jsp">
<jsp:param name="error" value="<%=result%>"/> </jsp:forward>
<% } %> main.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<% String admin =(String)(session.getAttribute("admin"));
if(admin==null){
response.sendRedirect("index.jsp");
} else{
%>
<html><head><title>新闻发布</title></head>
<body> <form name="pub" action="pub.jsp" method="post"> 题目:<input type="text" name="title"><br> 内容: <textarea cols="100" rows="10" name="context"></textarea><br> <input type="submit" value="提交"><br>
</form>
</body>
</html>
<%}%> pub.jsp <%@ page contentType="text/html;charset=gb2312"%>
<% String admin = (String)(session.getAttribute("admin")); String title = request.getParameter("title");
String context = request.getParameter("context");
if(admin == null){ response.sendRedirect("index.jsp"); }
else{ %> <jsp:useBean id="pubBean" class="login.PubBean"/>
<jsp:setProperty name="pubBean" property="title" value="<%= title.trim() %>"/>
<jsp:setProperty name="pubBean" property="context" value="<%= context %>"/>
<% pubBean.pubIt(); response.sendRedirect("display.jsp"); } %> display.jsp <%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:PostgreSQL","","");
Statement stmt=conn.createStatement(); %>
<html><head><title>新闻</title></head> <body> <% ResultSet rs=stmt.executeQuery("SELECT * FROM news");
//显示记录
while(rs.next()){
out.print("<a href=news/ice"+rs.getString(2)+".htm target=_blank>"+rs.getString (1)+"</a>"); out.println("<br>"); } %>
</body>
</html>
好了,现在就实现了几个功能点了
登陆界面 添加新闻的页面 发布信息的页面 显示所有的新闻