新闻发布系统(二)

新闻发布系统

首先我将先介绍这个新闻发布系统的基本结构:  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);

}

================程序部分==================

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>

时间: 2024-10-12 21:02:58

新闻发布系统(二)的相关文章

【牛腩新闻发布系统 二】发布后,防火墙关还是不关?

在对牛腩进行发布的时候遇到了问题,别人不能访问我发布的网站.这有个特别简单的办法,那就是直接把防火墙关闭不就得了吗?可是关闭了防火墙,我们的系统就不受保护了,别人可以随意访问我们的电脑啊,这太不安全了.所以我们要想办法在不关闭防火墙的前提下,给其他用户一个权限,他只能访问这一个端口的网站,其他的不能访问,那就要对防火墙进行设置. 1.依次打开"控制面板"--"系统和安全"--"Windows防火墙"如下图,选择"高级设置" 2

牛腩新闻发布系统总结(二)--相对路径与绝对路径

这个问题是在加载的过程中遇到的,明明已经写好了路径,可是总是加载不了图片,究其原因,还是路径的问题,下面就来区别一下相对路径和绝对路径: 关键区别:在于描述目录路径时,所采用的参考点不同 特殊符号: "." -- 代表目前所在的目录,相对路径. <img src="./Page2Image.jpg">或者<img src="Page2Image. jpg"> ".." -- 代表上一层目录,相对路径.

安卓项目-利用Sqlite数据库,开发新闻发布系统

本教程致力于程序员可以快速的学习安卓移动端手机开发. 适合于已经习得一种编程语言的同仁. 更多志同道合,想要学习更多编程技术的大神们. 小弟不才,麻烦关注一下我的今日头条号-做全栈攻城狮. 本文章是基于上篇文章基础之上进行深入学习的.程序员带你学习安卓开发-XML文档的创建与解析 Sqlite数据库: Sqlite数据库是在安卓中使用较广泛的数据库.其为简单.轻巧的Sql类文件型数据库.因以简单的文本形式保存,所以安全性不是很高.只要拿到sqlite数据库文件就可以得到数据.所以这就决定了sql

牛腩新闻发布系统---外键约束下如何删除记录

一.为什么使用外键? 查了些资料,八个字"保持完整性.一致性",结合我之前做的重构机房收费系统,我的理解是"防止相关表中数据没有关联而变得孤立,最终导致数据冗余",得出这个结论是上次让贾丽敏帮忙点系统时候我最深刻的感受,因为我的数据库关系图中辣么多张表却没有丝毫关系-- 既然官方解释是"完整性和一致性",就先来说明一下: 对于完整性和一致性,不少人都混为一谈了. 完整性(integrity)更多是针对实际业务来说的,比如说一个职员ID,不能在一个

牛腩新闻发布系统笔记——怎么写CSS

根据这牛腩学习敲新闻发布系统已经有一段时间了,挺佩服牛腩的,讲那么多东西,我听着也不觉得枯燥,反而有种,一不留神就会错过很多东西的感觉,所以有些地方也是重复又重复的在看. 这篇博客就总结总结小编在学习牛腩新闻发布系统的时候一些笔记.可能知识还比较原生态,but who cares.现在先提炼出来,以后慢慢的体会和升华吧. 牛腩一部分可以说是和机房相似,也是让我从.net到c#的一个过渡.中间一部分就是讲div +css了.里面的知识说多也不多的,根据不同的需求,它又有各种变形和组合,这加起来就有

牛腩新闻发布系统——真假分页

牛腩新闻发布系统已近尾声,牛老师重磅推出真假分页作为压轴,足以见得分页的重要性.我们就一起看一下真假分页的实现以及各自的特点. 一.分页简介 当我们显示足够大的数据量时,所有数据显示在一页上,会造成不必要的麻烦,本着为用户服务的态度,我们往往采用分页显示的处理办法.分页主要分为真分页与假分页. 假分页: 从数据库一次性取出所有数据绑定到控件上,再将所有数据根据每页显示记录条数进行分页.当数据量 比较大时,这种分页方法会造成查询速度, 使用户体验度降低,但是跳页速度较快. 真分页:在执行查询操作的

Maven+Hibernate+Spring+Spring MVC开发新闻发布系统

使用Maven+Hibernate+Spring+Spring MVC开发新闻发布系统 课程学习地址:http://www.xuetuwuyou.com/course/163 课程出自学途无忧网:http://www.xuetuwuyou.com 课程介绍 一.课程用到的软件: 1.jdk 1.8 2.eclipse neon 3.tomcat 8 4.jetty 5.MySQL  6.navicat 9+ 二.课程涉及到的技术点 1.Maven基础 2.Maven高级 3.Hibernate

【牛腩新闻发布系统】----你的验证码正确么

前言 这是一个神奇的网站--牛腩新闻发布系统,虽然做的不咋地,但毕竟是自己动手敲出来,还是有一点点的满足感.同时这也是小编的第一个雠小鸭,长相不算漂亮,发育还是挺健全的. 终有一天我的丑小鸭会变成白天鹅. 一步一步的进化,一步一步的蜕变-- 你的验证码正确么 哎呀--为什么我的牛腩新闻发布系统   请输入验证码的图片一直为这个样子呀--不显示,就是不显示图片,图片加载出错呀.想想估计是图片路径不正确. 尝试一:牛老师说的图片加载路径 <img src="handler/WaterMark.

牛腩新闻发布系统-出错集锦(1)

在学习牛腩新闻发布系统的时候遇到了一些错误,并得出了一些解决方案,分享给大家. 错误一.由于"DAL.SQLHelper.test()"返回 void,返回关键字后面不得有对象表达式E:\提高班\进行中\牛腩新闻发布系统\DAL\SQLHelper.cs2613DAL 代码如下: public void test() { string [email protected]"server=qiwei; database=newssystem; uid=sa; pwd=123456