基于jsp实现新闻管理系统 附完整源码

很棒的新闻发布系统分享给大家,希望大家喜欢。

下面就让我们来说一说基于jsp的新闻发布系统,其中使用的技术有JavaBean、fillter、数据库等,能够实现新闻的发布功能,在发布之后能够进行对每一条新闻的删除、修改、或者继续增加新的文章,最后还能够进行查询功能,其中引用了百度编辑器,能够进行图文并茂的编辑,极大地方便用户的使用。

:完整项目下载地址:新闻发布系统

一、效果演示

首先让我们来看一看实现的效果:

下面是登陆的首界面:

图1 首界面

管理员登录页面:

图2 管理员登录界面

下面是管理员登陆之后的界面,可以进行添加新闻、删除新闻、查询新闻:

图3 管理员管理界面

下面是添加新闻界面,能够进行新闻的添加:

图4 添加新闻界面

下面是所添加的新闻:

图5 添加后的新闻

下面是修改新闻界面:

图6 修改新闻界面下面是修改后的界面

图7 修改后的界面

下面是删除新闻后的界面:

图8 删除新闻后的界面

对于新闻的查找,与其他类似,在这里我们使用的是利用新闻编号进行查询所需的信息,然后在新的页面上进行显示。

二、具体实现过程 

1、环境:编程环境为NetBeans8.0和Oracle数据库

2、数据库后台的设计

在新闻管理系统中,我们需要数据库后台管理,其具体步骤如下所示:

根据所需的业务进行建表,可参见如下所示:建立数据库

3、编写步骤:

(1)首先建立以个项目,在此命名为Demo_08_NewsRealese,项目布局结构如下图所示,根据如下布局对项目进行布局设计,方便后面的编程,项目中web-inf为项目配置文件夹,images文件夹用于储存项目中使用的图片文件,ueditor为百度富文本编辑器文件夹,源包文件夹为Java类文件夹:

图9 项目布局结构图

接着,我们进行创建数据库连接层,即DAO和VO,分别存于包com.lut.beans和dao,类命名分别命名为NewsRealese、NewsRealeseDao,对于类NewsRealese而言,主要是实现字符串的包装,其内容与数据库里边的内容一一对应,其代码分别如下所示:

package com.lut.beans;
public class NewsRealese {
 private String newsId;
private String classId;
private String kindId;
private String myOther;
private String headTitle;
private String content;
private String connectRealtive;
private String author;
private String editor;
private String newsFrom;
private String top;
private String newsTime;
private String hits;
private String state;
private String tag;

 public String getNewsId() {
 return newsId;
 }

 public void setNewsId(String newsId) {
 this.newsId = newsId;
 }

 public String getClassId() {
 return classId;
 }

 public void setClassId(String classId) {
 this.classId = classId;
 }

 public String getKindId() {
 return kindId;
 }

 public void setKindId(String kindId) {
 this.kindId = kindId;
 }

 public String getMyOther() {
 return myOther;
 }

 public void setMyOther(String myOther) {
 this.myOther = myOther;
 }

 public String getHeadTitle() {
 return headTitle;
 }

 public void setHeadTitle(String headTitle) {
 this.headTitle = headTitle;
 }

 public String getContent() {
 return content;
 }

 public void setContent(String content) {
 this.content = content;
 }

 public String getConnectRealtive() {
 return connectRealtive;
 }

 public void setConnectRealtive(String connectRealtive) {
 this.connectRealtive = connectRealtive;
 }

 public String getAuthor() {
 return author;
 }

 public void setAuthor(String author) {
 this.author = author;
 }

 public String getEditor() {
 return editor;
 }

 public void setEditor(String editor) {
 this.editor = editor;
 }

 public String getNewsFrom() {
 return newsFrom;
 }

 public void setNewsFrom(String newsFrom) {
 this.newsFrom = newsFrom;
 }

 public String getTop() {
 return top;
 }

 public void setTop(String top) {
 this.top = top;
 }

 public String getNewsTime() {
 return newsTime;
 }

 public void setNewsTime(String newsTime) {
 this.newsTime = newsTime;
 }

 public String getHits() {
 return hits;
 }

 public void setHits(String hits) {
 this.hits = hits;
 }

 public String getState() {
 return state;
 }

 public void setState(String state) {
 this.state = state;
 }

 public String getTag() {
 return tag;
 }

 public void setTag(String tag) {
 this.tag = tag;
 }

}

下面是类DAO类,命名为NewsRealeseDao.java,对于DAO类,主要用于实现数据库的连接问题,进行数据库的链接,在连接过程中需要用到各种有关数据库的技术,在这里我们使用的是Oracle数据库,其获取链接的方式为如下代码,其中第一行为驱动程序名,第二行为数据库地址(orcl为Oracle数据库中的SID,在安装Oracle数据库时需要记住),第三行为具体的连接,及使用URL找到数据库位置,然后使用密码wjk139登录到Scott账户

//获取连接
 Class.forName("oracle.jdbc.driver.OracleDriver");
 String url = "jdbc:oracle:thin:@localhost:1521:orcl";
conn = DriverManager.getConnection(url, "scott", "wjk139");

其他的操作分别为增删改查的具体代码,分别对应Servlet中或jsp中需要实例化的代码,下面就是具体的DAO类代码:

package dao;

import com.lut.beans.NewsRealese;
import static java.lang.System.out;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class NewsRealeseDao {

 public ArrayList queryAllNews() throws Exception {
 Connection conn = null;
 ArrayList newsRealese = new ArrayList();
 try {
 //获取连接
 Class.forName("oracle.jdbc.driver.OracleDriver");
 String url = "jdbc:oracle:thin:@localhost:1521:orcl";
 conn = DriverManager.getConnection(url, "scott", "wjk139");
 //运行SQL语句
 String sql = "select * from newmessage";//获取
 Statement stat = conn.createStatement();
 ResultSet rs = stat.executeQuery(sql);
 while (rs.next()) { //实例化VO
 NewsRealese news = new NewsRealese();
 news.setNewsId(rs.getString("newsid"));
 news.setClassId(rs.getString("CLASSID"));
 news.setKindId(rs.getString("KINDID"));
 news.setMyOther(rs.getString("MYOTHER"));
 news.setHeadTitle(rs.getString("HEADTITLE"));
 news.setContent(rs.getString("CONTENT"));
 news.setConnectRealtive(rs.getString("CONNECTREALTIVE"));
 news.setAuthor(rs.getString("AUTHOR"));
 news.setEditor(rs.getString("EDITOR"));
 news.setNewsFrom(rs.getString("NEWSFROM"));
 news.setTop(rs.getString("TOP"));
 news.setNewsTime(rs.getString("NEWSTIME"));
 news.setHits(rs.getString("HITS"));
 news.setState(rs.getString("STATE"));
 news.setTag(rs.getString("TAG"));
 newsRealese.add(news);
 }
 rs.close();
 stat.close();
 } catch (Exception e1) {
 e1.printStackTrace();
 } finally {
 try {//关闭连接
 if (conn != null) {
 conn.close();
 conn = null;
 }
 } catch (Exception ex) {
 }
 return newsRealese;
 }
 }
 //查询一个消息
 public ArrayList queryOneNews(int newsid) throws Exception {
 Connection conn = null;
 ArrayList newsRealese = new ArrayList();
 int temp_id = newsid;
 try {
 //获取连接
 Class.forName("oracle.jdbc.driver.OracleDriver");
 String url = "jdbc:oracle:thin:@localhost:1521:orcl";
 conn = DriverManager.getConnection(url, "scott", "wjk139");//不安全
 //运行SQL语句
 Statement stat = conn.createStatement();
 String sql = "select * from newmessage where newsid=?";//获取newsid,使用?代替字符串,以免会发生错误
 PreparedStatement ps = conn.prepareStatement(sql);
 ps.setInt(1, Integer.valueOf(newsid));
 ResultSet rs = ps.executeQuery();// 之前已经给了sql字符串,所以executeUpdate是无参的。
 while (rs.next()) { //实例化VO
 NewsRealese news = new NewsRealese();
 news.setNewsId(rs.getString("newsid"));
 news.setClassId(rs.getString("CLASSID"));
 news.setKindId(rs.getString("KINDID"));
 news.setMyOther(rs.getString("MYOTHER"));
 news.setHeadTitle(rs.getString("HEADTITLE"));
 news.setContent(rs.getString("CONTENT"));
 news.setConnectRealtive(rs.getString("CONNECTREALTIVE"));
 news.setAuthor(rs.getString("AUTHOR"));
 news.setEditor(rs.getString("EDITOR"));
 news.setNewsFrom(rs.getString("NEWSFROM"));
 news.setTop(rs.getString("TOP"));
 news.setNewsTime(rs.getString("NEWSTIME"));
 news.setHits(rs.getString("HITS"));
 news.setState(rs.getString("STATE"));
 news.setTag(rs.getString("TAG"));
 newsRealese.add(news);
 }
 rs.close();
 stat.close();
 } catch (Exception e1) {
 e1.printStackTrace();
 } finally {
 try {//关闭连接
 if (conn != null) {
 conn.close();
 conn = null;
 }
 } catch (Exception ex) {
 }
 return newsRealese;
 }
 }
 //删除数据
 public String deleteOneNews(int newsid) throws Exception {
 Connection conn = null;
 ArrayList newsRealese = new ArrayList();
 int temp_id = newsid;
 try {
 //获取连接
 Class.forName("oracle.jdbc.driver.OracleDriver");
 String url = "jdbc:oracle:thin:@localhost:1521:orcl";
 conn = DriverManager.getConnection(url, "scott", "wjk139");//不安全
 //运行SQL语句
 Statement stat = conn.createStatement();
 String sql = "DELETE FROM newmessage WHERE newsid =?";//获取newsid,使用?代替字符串,以免会发生错误
 PreparedStatement ps = conn.prepareStatement(sql);
 ps.setInt(1, Integer.valueOf(newsid));
 ResultSet rs = ps.executeQuery();// 之前已经给了sql字符串,所以executeUpdate是无参的。
 rs.close();
 stat.close();
 } catch (Exception e1) {
 e1.printStackTrace();
 } finally {
 try {//关闭连接
 if (conn != null) {
 conn.close();
 conn = null;
 }
 } catch (Exception ex) {
 }
 return newsRealese.toString();
 }
 }
 //插入数据
 public String insertOneNews(ArrayList addnews_list) throws Exception {
 Connection conn = null;
 /* for(int i=0,j=1;i<addnews_list.size();i++,j++)
 {

 System.out.println("j:"+j+"值:"+addnews_list.get(i).toString());
 }*/
 try {
 //获取连接
 Class.forName("oracle.jdbc.driver.OracleDriver");
 String url = "jdbc:oracle:thin:@localhost:1521:orcl";
 conn = DriverManager.getConnection(url, "scott", "wjk139");//不安全
 //运行SQL语句
 Statement stat = conn.createStatement();
 String sql = "insert into newmessage(newsId,classId,kindId,myOther,headTitle,content,connectRealtive,author,editor,newsFrom"
 + ",top,newsTime,hits,state,tag) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";//获取newsid,使用?代替字符串,以免会发生错误
 PreparedStatement ps = conn.prepareStatement(sql);
 ps.setInt(1, Integer.valueOf(addnews_list.get(0).toString()));
 ps.setInt(2, Integer.valueOf(addnews_list.get(1).toString()));
 ps.setInt(3, Integer.valueOf(addnews_list.get(2).toString()));
 ps.setInt(4, Integer.valueOf(addnews_list.get(3).toString()));
 ps.setString(5, addnews_list.get(4).toString());
 ps.setString(6, addnews_list.get(5).toString());
 ps.setString(7, addnews_list.get(6).toString());
 ps.setString(8, addnews_list.get(7).toString());
 ps.setString(9, addnews_list.get(8).toString());
 ps.setString(10, addnews_list.get(9).toString());
 ps.setInt(11, Integer.valueOf(addnews_list.get(10).toString()));
 ps.setString(12, addnews_list.get(11).toString());
 ps.setString(13, addnews_list.get(12).toString());
 ps.setString(14, addnews_list.get(13).toString());
 ps.setString(15, addnews_list.get(14).toString());
 for (int i = 0, j = 1; i < addnews_list.size(); i++, j++) {
 System.out.println("j:" + j + "值:" + addnews_list.get(i).toString());
 }
 int i = ps.executeUpdate();
 conn.commit();
 System.out.println("成功添加" + i + "行");
 stat.close();
 conn.close();
 return i + "conn:" + conn;
 } catch (Exception e1) {
 e1.printStackTrace();
 } finally {
 try {//关闭连接
 if (conn != null) {
 conn.close();
 conn = null;
 }
 } catch (Exception ex) {
 }
 }
 return conn.toString();
 }
 //更新数据
 public String updateOneNews(ArrayList addnews_list) throws Exception {
 Connection conn = null;
 /* for(int i=0,j=1;i<addnews_list.size();i++,j++)
 {

 System.out.println("j:"+j+"值:"+addnews_list.get(i).toString());
 }*/
 try {
 //获取连接
 Class.forName("oracle.jdbc.driver.OracleDriver");
 String url = "jdbc:oracle:thin:@localhost:1521:orcl";
 conn = DriverManager.getConnection(url, "scott", "wjk139");//不安全
 //运行SQL语句
 Statement stat = conn.createStatement();
 //获取newsid,使用?代替字符串,以免会发生错误
 String sql = "UPDATE newmessage set classId=?,kindId=?,myOther=?,headTitle=?,content=?,"
 + "connectRealtive=?,author=?,editor=?,newsFrom=?,top=?,newsTime=?,hits=?,state=?,tag=? where newsid=?";
 PreparedStatement ps = conn.prepareStatement(sql);

 ps.setInt(1, Integer.valueOf(addnews_list.get(1).toString()));
 ps.setInt(2, Integer.valueOf(addnews_list.get(2).toString()));
 ps.setInt(3, Integer.valueOf(addnews_list.get(3).toString()));
 ps.setString(4, addnews_list.get(4).toString());
 ps.setString(5, addnews_list.get(5).toString());
 ps.setString(6, addnews_list.get(6).toString());
 ps.setString(7, addnews_list.get(7).toString());
 ps.setString(8, addnews_list.get(8).toString());
 ps.setString(9, addnews_list.get(9).toString());
 ps.setInt(10, Integer.valueOf(addnews_list.get(10).toString()));
 ps.setString(11, addnews_list.get(11).toString());
 ps.setString(12, addnews_list.get(12).toString());
 ps.setString(13, addnews_list.get(13).toString());
 ps.setString(14, addnews_list.get(14).toString());
 ps.setInt(15, Integer.valueOf(addnews_list.get(0).toString()));
 for (int i = 0, j = 1; i < addnews_list.size(); i++, j++) {
 System.out.println("j:" + j + "值:" + addnews_list.get(i).toString());
 }
 int i = ps.executeUpdate();
 conn.commit();
 System.out.println("成功更新" + i + "行");
 stat.close();
 conn.close();
 return i + "conn:" + conn;
 } catch (Exception e1) {
 e1.printStackTrace();
 } finally {
 try {//关闭连接
 if (conn != null) {
 conn.close();
 conn = null;
 }
 } catch (Exception ex) {
 }
 }
 return conn.toString();
 }
 public String ischecked(String user, String pass) throws Exception {
 Connection conn = null;
 //获取连接
 Class.forName("oracle.jdbc.driver.OracleDriver");
 String url = "jdbc:oracle:thin:@localhost:1521:orcl";
 try {
 conn = DriverManager.getConnection(url,user, pass);//不安全
 //建立连接
 return conn.toString();
 }
 catch (SQLException e)
 {
 e.printStackTrace();
 }
 finally
 {
 if (conn != null)
 {
 try {
 conn.close();
 } catch (SQLException e)
 {
 e.printStackTrace();
 }
 }
 }
 return null;
 }
}

(2)首页展示页面的编写,命名为index.html,由于可能有网络的延迟,我们使用渐进的方式跳转(渐进方式跳转:window.location.href="newRealese_brief.jsp",从index.html页面跳转到ewRealese_brief.jsp页面),代码如下所示:

<!DOCTYPE html>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <link type="text/css" rel="stylesheet" href="newsRealese.css"/>
 <title>新闻发布系统--最前沿的时尚信息、最有看点的社会聚焦、最富得浪漫的殿堂</title>
 </head>
 <body id="body">
 正在跳转...,请等待...
 <script language="javascript" type="text/javascript">
 window.location.href="newRealese_brief.jsp";
 </script>
 </body>
</html>

在缓冲时,会进行跳转,跳转后的页面为newRealese_brief.jsp,其代码如下所示:进入新闻展示页面之后,我们能够对新闻进行搜素,还能够查看详细内容。

<%@page contentType="text/html" import="java.util.*,java.sql.*,com.lut.beans.NewsRealese,dao.NewsRealeseDao"
 pageEncoding="UTF-8" language="java"%>
<!DOCTYPE html>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>新闻发布系统--最前沿的时尚信息、最有看点的社会聚焦、最富得浪漫的殿堂</title>
 <link type="text/css" rel="stylesheet" href="newsRealese.css"/>
 </head>
 <body id="body">
 <a href="adminLogin.jsp" style="table-layout: right">管理员登录</a><h1 id="p">最新资讯</h1><br>
 <%@include file="a_queryNews.jsp" %>
 <table border="0" style="width:100%; height:100%" align="center">
 <tr>
 <td style="width: 10%"> </td>
 <td>
 <%
 NewsRealeseDao newsRealeseDao = new NewsRealeseDao();
 ArrayList newsRealese = newsRealeseDao.queryAllNews();
 %>
 <%
 for (int i = 0; i < newsRealese.size(); i++) {
 NewsRealese newRealese = (NewsRealese) newsRealese.get(i);
 %>
 <center><table border="0" width="100%" id="table">
 <tr>
 <td width="128"><p>此处假设无图片</p>
 <p>此处假设无等级信息</p>
 </td>
 <td ><table border="0" width="100%">
 <tr>
 <td width="11%" >原创或转载:</td>
 <td colspan="3"><%=newRealese.getMyOther()%> </td>
 <td width="10%" >新闻标题:</td>
 <td width="44%" ><%=newRealese.getHeadTitle()%> </td>
 </tr>
 <tr>
 <td colspan="6">新闻内容:</td>
 </table>
 <table width="100%" border="0">
 <tr>
 <td>
 <a target="_blank" href="newRealese_detail.jsp?newsid=<%=newRealese.getNewsId()%>"/>
 <table width="100%" border="0" align="center">
 <tr>
 <td>
 <%=newRealese.getContent()%>
 </td>
 </tr>
 </table>
 </td>
 </tr>
 </table>
 <table border="0" width="100%">
 <tr>
 <td width="51" height="30">作者:</td>
 <td width="203"><%=newRealese.getAuthor()%> </td>
 <td width="97">新闻发布时间:</td>
 <td width="167"><%=newRealese.getNewsTime()%> </td>
 <td width="99">新闻点击次数:</td>
 <td width="191"><%=newRealese.getHits()%> </td>
 </tr>
 </table></td>
 </tr>
 <tr>
 <td height="21" colspan="2"><hr></td>
 </tr>
 </table></center>
 <%
 }
 %>
 </td>
 <td> </td>
 </tr>
 <tr>
 <td> </td>
 <td> </td>
 <td> </td>
 </tr>
</table>
</body>
</html>

(3)详细新闻页面的设计,命名为newRealese_detail.jsp其代码如下所示:再详细新闻页面上,我们能够进行数据的详细情况的了解,在观看完详细信息之后,我们能够进行点击返回按钮进行返回操作

<%@page contentType="text/html" import="java.util.*,java.sql.*" pageEncoding="UTF-8" language="java"%>
<%@page import="com.lut.beans.NewsRealese" %>
<%@page import="dao.NewsRealeseDao" %>
<!DOCTYPE html>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="newsRealese.css"/>
 <title>新闻发布系统--最前沿的时尚信息、最有看点的社会聚焦、最值得浪漫的殿堂</title>
 </head>
 <body id="body">
 <h1>最新资讯</h1><br>
 <%
 String newsid=request.getParameter("newsid");
 int newsid_int=Integer.parseInt(newsid);

 NewsRealeseDao newsRealeseDao=new NewsRealeseDao();
 ArrayList newsRealese=newsRealeseDao.queryOneNews(newsid_int);
 %> 

 <table border="1">
 <tr >
 <td >新闻编号</td>
 <td>所属新闻栏目编号</td>
 <td>所属新闻分类编号</td>
 <td>原创或转载</td>
 <td>新闻标题</td>
 <td>新闻内容</td>
 <td>相关文章</td>
 <td>作者</td>
 <td>编辑</td>
 <td>出处</td>
 <td>是否置顶</td>
 <td>新闻发布时间</td>
 <td>新闻点击次数</td>
 <td>新闻状态</td>
 <td>新闻标记</td>
 </tr>
 <%
 for(int i=0;i<newsRealese.size();i++)
 {
 NewsRealese newRealese=(NewsRealese)newsRealese.get(i);
 %>
 <tr>
 <td><%=newRealese.getNewsId() %> </td>
 <td><%=newRealese.getClassId() %> </td>
 <td><%=newRealese.getKindId() %> </td>
 <td><%=newRealese.getMyOther() %> </td>
 <td><%=newRealese.getHeadTitle()%> </td>
 <td><%=newRealese.getContent() %> </td>
 <td><%=newRealese.getConnectRealtive()%></td>
 <td><%=newRealese.getAuthor() %> </td>
 <td><%=newRealese.getEditor() %> </td>
 <td><%=newRealese.getNewsFrom() %> </td>
 <td><%=newRealese.getTop() %> </td>
 <td><%=newRealese.getNewsTime() %> </td>
 <td><%=newRealese.getHits() %> </td>
 <td><%=newRealese.getState() %> </td>
 <td><%=newRealese.getTag() %> </td>
 </tr>

 </table>
<table width="100%" border="0" cellspacing="0" cellpadding="4">
 <tr>
 <td width="100%" style="text-align: center; vertical-align: top">
 <table width="90%" border="0" cellpadding="0" cellspacing="0">
 <tr>
 <td>
 <table width="100%" border="0" cellspacing="1" cellpadding="4" >
 <tr>
 <th width="26%" class="TitleColor" style="text-align: right; vertical-align: top" scope="row">新闻标题: </th>
 <td width="74%" style="vertical-align: top" class="TitleColor" ><p align="left"><%=newRealese.getHeadTitle()%><p></td>
 </tr>
 <tr>
 <th scope="row" class="TitleColor" style="text-align: right; vertical-align: top">作者:</th>
 <td style="vertical-align: top"><p align="left"><%=newRealese.getAuthor() %> <p> </td>
 </tr>
 <tr>
 <th scope="row" class="TitleColor" style="text-align: right; vertical-align: top">新闻发布时间: </th>
 <td style="vertical-align: top" class="TitleColor"><p align="left"><%=newRealese.getNewsTime() %><p></td>
 </tr>
 <tr>
 <th scope="row" class="TitleColor" style="text-align: right; vertical-align: top">新闻点击次数: </th>
 <td style="vertical-align: top" class="TitleColor"><p align="left"><%=newRealese.getHits() %><p></td>
 </tr>
 <tr>
 <td colspan="2" class="StoryContentColor"><p align="center"><%=newRealese.getContent() %><p></td>
 </tr>
 </table>
 </td>
 </tr>
 </table>
 <p> </p>
 <table>
 <tr>
 <td >
 <a href="newRealese_brief.jsp">返回</a>
 </td>
 <td>
 <a href="#">发表评论</a>
 </td>
 </tr>
 </table>
 </td>
 </tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="4">
 <tr style="text-align: right">
 <td> <a href="#">点赞</a> <a href="#">举报</a> <a href="#">投稿,联系作者</a>  </td>
 </tr>
</table>
 <%
 }
 %>
</body>
</html>

(4)管理员登录界面,命名为adminLogin.jsp页面,使用连接数据库的方式进行登录,在这里我们的管理员名称为Scott,密码为wjk139,管理员登录界面的实现代码如下所示

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>新闻发布系统--最前沿的时尚信息、最有看点的社会聚焦、最值得浪漫的殿堂</title>
<link type="text/css" rel="stylesheet" href="newsRealese.css"/>
</head>
 <body id="body">
 <form method="post" action="checkLogin">
 <table border="0" align="center" id="table_vertical" >
 <caption>管理员登录 </caption>
 <tr>
 <td width="40">Admin</td>
 <td width="183">
 <input type="text" name="user"></td>
 </tr>
 <tr>
 <td height="25">Pass</td>
 <td><input type="password" name="pass"></td>
 </tr>
 </table>
 <table align="center">
 <tr>
 <td>
 <input type="submit" value="Login">
 <input type="reset" value="Reset">
 </td>
 </tr>
 </table>
</form>
</body>
</html>

在登录的过程中,我们需要进行判断,命名为checkLogin.java,,通过此类进行判断登录是否成功,若成功,则跳转到管理界面,若失败,则停留在当前界面,其代码如下所示:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package servlet;

import com.lut.beans.NewsRealese;
import dao.NewsRealeseDao;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class checkLogin extends HttpServlet {
 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 response.setContentType("text/html;charset=UTF-8");
 String user=request.getParameter("user");
 String pass=request.getParameter("pass");
 NewsRealeseDao newsRealeseDao=new NewsRealeseDao();
 try {
 String newsRealese=newsRealeseDao.ischecked(user,pass);
 if(newsRealese!=null)
 {
 response.sendRedirect("adminManager.jsp");
 }
 else
 {
 response.sendRedirect("adminLogin.jsp");

 }
 }
 catch (Exception ex)
 {
 Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex);
 }
 }
 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 processRequest(request, response);
 }
 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 processRequest(request, response);
 }

 @Override
 public String getServletInfo() {
 return "Short description"+"public String getServletInfo() ";
 }// </editor-fold>
}

(5)管理员登陆之后的界面,命名为adminManager.jsp页面,在管理员界面能够进行删除修改增加和查询操作,其代码如下所示:

<%--
 Document : adminManager
 Created on : 2016-5-18, 17:10:01
 Author : Administrator
--%>
<%@page import="java.util.ArrayList"%>
<%@page import="com.lut.beans.NewsRealese"%>
<%@page import="dao.NewsRealeseDao"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>管理员界面||adminManager.jsp</title>
 <link type="text/css" rel="stylesheet" href="newsRealese.css"/>
 </head>
 <body id="body" style=" text-orientation: vertical-right">
 <h1 id="p">新闻管理</h1><br>
 <table border="1" style="width:100%; height:100%">
 <tr>
 <td width="10%" style="text-align:top">
 <table border="0" style="width: 100%;height: 100%" >
 <tr>
 <td><div align="center">新闻信息显示 </div></td>
 </tr>
 <tr>
 <td><img src="./images/dog.jpg" width="100%" height="90%"></td>
 </tr>
 <tr>
 <td><img src="./images/minus.gif" ></td>
 </tr>
 </table></td>
 <td width="50%">
 <table border="0">
 <tr>
 <td>
 <% NewsRealeseDao newsRealeseDao = new NewsRealeseDao();
  ArrayList newsRealese = newsRealeseDao.queryAllNews();
 %>
 <%
  for (int i = 0; i < newsRealese.size(); i++) {
  NewsRealese newRealese = (NewsRealese) newsRealese.get(i);
 %>
 <table border="0" width="100%" id="table">
  <tr>
  <td width="128"><p>此处假设无图片</p>
  <p>此处假设无等级信息</p> </td>
  <td ><table border="0" width="100%">
  <tr>
  <td >原创或转载:</td>
  <td ><%=newRealese.getMyOther()%> </td>
  <td >新闻标题:</td>
  <td ><%=newRealese.getHeadTitle()%> </td>
  </tr>
  <tr>
  <td colspan="6">新闻内容:</td>
  </table>
  <table width="100%" border="0">
  <tr>
  <td>
  <a target="_blank" href="newRealese_detail.jsp?newsid=<%=newRealese.getNewsId()%>"/>
  <table width="100%" border="0" align="center">
  <tr>
  <td>
   <%=newRealese.getContent()%> </td>
  </tr>
  </table> </td>
  </tr>
  </table>
  <table border="0" width="100%">
  <tr>
  <td width="51" height="30">作者:</td>
  <td width="203"><%=newRealese.getAuthor()%> </td>
  <td width="97">新闻发布时间:</td>
  <td width="167"><%=newRealese.getNewsTime()%> </td>
  <td width="99">新闻点击次数:</td>
  <td width="191"><%=newRealese.getHits()%> </td>
  </tr>
  </table></td>
  </tr>
  <tr>
  <td height="21" colspan="2">
  <input type="button" name="delete" value="删除" align="middle"
  onclick="javascrtpt:window.location.href = 'DeleteOneNews?newsid=<%=newRealese.getNewsId()%>'">
  <input type="button" name="delete" value="修改" align="middle"
  onclick="javascrtpt:window.location.href = 'a_updateNews.jsp?newsid=<%=newRealese.getNewsId()%>'">
  <hr> </td>
  </tr>
 </table>
 <%
  }
 %> </td>
 </tr>
 </table> </td>
 <td width="5%" style=" text-orientation: vertical-right">

 <%@include file="a_queryNews.jsp" %>
 </td>
 </tr>
 <tr>
 <td align="center"><a href="a_addNews.jsp" target="_blank">添加新闻</a></td>
 <td align="center">二</td>
 <td align="center">三</td>
 </tr>
 </table>
 </body>
</html>

(6)增加新闻页面,命名为a_addNews.jsp,能够进行新闻的增加,在添加完信息之后,我们点击发布之后就可以成功添加信息,其代码如下所示,增加新闻时需要对新闻进行编辑,对于长篇幅新闻内容且含有图片的新闻内容的编写,在这儿我们使用功能强大的百度编辑器,首先从官网下载:百度编辑器下载,下载之后解压(我使用的版本是ueditor1_4_3_2-utf8-jsp),如下图所示结构

图10 百度富文本编辑器文件夹结构图

然后只需将整个文件夹拷贝到项目下即可,在使用时引入和修改路径,在jsp页面里边我已经配置好引用,只需修改路径即可,修改路径时只需将editor_config.js中查找URL变量配置编辑器在你项目中的路径。其中./ueditor为项目中的文件夹

var URL= window.UEDITOR_HOME_URL||"./ueditor/";

这样就配置好了编辑器,下面就是增加新闻的jsp页面,在添加完新闻之后,只需点击发布即可进行新闻的发布操作,代码如下所示:

<%@page contentType="text/html" import="java.util.*,java.sql.*" pageEncoding="UTF-8" language="java"%>
<%@page import="com.lut.beans.NewsRealese" %>
<%@page import="dao.NewsRealeseDao" %>
<!DOCTYPE html>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>添加新闻- 新闻发布系统--最前沿的时尚信息、最有看点的社会聚焦、最富得浪漫的殿tang</title>
 <!-- 配置文件 -->
 <script type="text/javascript" src="./ueditor/ueditor.config.js"></script>
 <!-- 编辑器源码文件 -->
 <script type="text/javascript" src="./ueditor/ueditor.all.js"></script>
 <link rel="stylesheet" type="text/css" href="./udeditor/themes/default/css" />

 <link type="text/css" rel="stylesheet" href="newsRealese.css"/>
 </head>
 <body id="body">
 <form action="InsertOneNews" method="post">
 <table border="0" id="table">
 <tr>
 <td width="5%">left</td>
 <td width="90%">
 <table border="1" id="table">
 <tr >
 <td >新闻编号</td> <td><input type="text" name="newsid"></td>
 <td>所属新闻栏目编号</td> <td><input type="text" name="classid"></td>
 </tr>
 <tr>
 <td>所属新闻分类编号</td> <td><input type="text" name="kindid"></td>
 <td>原创或转载</td> <td><input type="text" name="myother"></td>
 </tr>
 <tr>
 <td>新闻标题</td> <td><input type="text" name="headtitle"></td>
 <td>相关文章</td> <td><input type="text" name="connectrealtive"></td>
 </tr>
 <tr>
 <td>作者</td> <td><input type="text" name="author"></td>
 <td>编辑</td> <td><input type="text" name="editor"></td>
 </tr>
 <tr>
 <td>出处</td> <td><input type="text" name="newsfrom"></td>
 <td>是否置顶</td> <td><input type="text" name="top"></td>
 </tr>
 <tr>
 <td>新闻发布时间</td> <td><input type="text" name="newstime"></td>
 <td>新闻点击次数</td> <td><input type="text" name="hits"></td>
 </tr>
 <tr>
 <td>新闻状态</td> <td><input type="text" name="state"></td>
 <td>新闻标记</td> <td><input type="text" name="tag"></td>
 </tr>
 <tr>

 </table>
 </td>
 <td width="5%">right</td>
 </tr>
 <tr>
 <td> </td>
 <td>
 <div align="center" style="width:80%">
 <textarea id="newsEditor" name="content" style="height: 80%"></textarea>
 <br/>
 <input type="submit" value="发 布">
 <script type="text/javascript">
 UE.getEditor('newsEditor');
 // var content = UE.getPlainTxt();//content就是编辑器的带格式的内容
 //focus时自动清空初始化时的内容

 </script>
 </div>

 </td>
 <td> </td>
 </tr>
 </table>
 </form>
 </body>
</html>

在增加新闻时,需要对Servlet进行配置,如下图所示所示为配置文件的结构:

插入数据Servlet结构图

下面是InserOneNews.java代码,能够进行对数据的插入功能

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package servlet;

import dao.NewsRealeseDao;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class InsertOneNews extends HttpServlet {
 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 response.setContentType("text/html;charset=UTF-8");
 try (PrintWriter out = response.getWriter()) {
 ArrayList addnews_list = new ArrayList();
 NewsRealeseDao newsRealeseDao = new NewsRealeseDao();
 addnews_list.add(0, request.getParameter("newsid"));
 addnews_list.add(1, request.getParameter("classid"));
 addnews_list.add(2, request.getParameter("kindid"));
 addnews_list.add(3, request.getParameter("myother"));
 addnews_list.add(4, request.getParameter("headtitle"));
 addnews_list.add(5, request.getParameter("content"));
 addnews_list.add(6, request.getParameter("connectrealtive"));
 addnews_list.add(7, request.getParameter("author"));
 addnews_list.add(8, request.getParameter("editor"));
 addnews_list.add(9, request.getParameter("newsfrom"));
 addnews_list.add(10, request.getParameter("top"));
 addnews_list.add(11, request.getParameter("newstime"));
 addnews_list.add(12, request.getParameter("hits"));
 addnews_list.add(13, request.getParameter("state"));
 addnews_list.add(14,request.getParameter("tag"));
 try {
 String newsRealese = newsRealeseDao.insertOneNews(addnews_list);
 System.out.println("String:"+newsRealese);
 if (newsRealese!= null) {
 response.sendRedirect("adminManager.jsp");
 } else {
 response.sendRedirect("a_addNews.jsp");
 }
 } catch (Exception ex) {
 Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex);
 }
 }
 }
 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 processRequest(request, response);
 }
 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 processRequest(request, response);
 }
 @Override
 public String getServletInfo() {
 return "Short description";
 }
}

至此,我们完整的实现了插入工作 (7)现在完成删除操作,在Servlet包中建立如下所示代码,命名为DeleteOneNews.java:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package servlet;
import dao.NewsRealeseDao;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DeleteOneNews extends HttpServlet {
 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 response.setContentType("text/html;charset=UTF-8");
 try (PrintWriter out = response.getWriter()) {
 String str_id=request.getParameter("newsid");
 int newsid_int=Integer.valueOf(str_id);
 NewsRealeseDao newsRealeseDao=new NewsRealeseDao();
 try {
 String newsRealese = newsRealeseDao.deleteOneNews(newsid_int);
 System.out.println("String:"+newsRealese);
 if (newsRealese!= null) {
 response.sendRedirect("adminManager.jsp");
 } else {
 response.sendRedirect("a_addNews.jsp");
 }
 } catch (Exception ex) {
 Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex);
 }
 }
 }

 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 processRequest(request, response);
 }

 /**
 * Handles the HTTP <code>POST</code> method.
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 processRequest(request, response);
 }

 /**
 * Returns a short description of the servlet.
 *
 * @return a String containing servlet description
 */
 @Override
 public String getServletInfo() {
 return "Short description";
 }// </editor-fold>

}

(8)实现查询操作,命名为a_queryNews.jsp,其代码如下所示:

<%--
 Document : a_queryNews
 Created on : 2016-5-18, 17:08:40
 Author : Administrator
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>查询页面</title>
 </head>
 <body>
 <table style="width:100%;height:100%" border="0">
 <tr>
 <td>
 <form action="QueryOneNews" method="post" target="_blank" >
 请输入新闻编号:<input type="text" name="query">
  <input type="submit" value="查询" ><br>
 </form>
 <hr></td>
 </tr>
 <tr>
 <td> </td>
 </tr>
 </table>

 </body>
</html>

对于查询这件事,有成功,有失败,在这儿我们进行失败后文件的设置,代码如下所示,命名为a_queryNewsfailed.jsp,使用超级连接的方式,连接到主页面

<%--
 Document : a_queryNeesfailed
 Created on : 2016-6-6, 8:43:35
 Author : Administrator
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>查询失败</title>
 </head>
 <body>
 <h1>没有找到你要查找的内容,但是你可以进入</h1>
 <a href="index.html">主页进行查看</a>
 </body>
</html>

实现了以上显示层的操作之后,下面就是控制层的实现,命名为QueryOneNews.java,其代码如下所示:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package servlet;
import dao.NewsRealeseDao;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class QueryOneNews extends HttpServlet {
 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 response.setContentType("text/html;charset=UTF-8");
 try (PrintWriter out = response.getWriter()) {
 String str_id=request.getParameter("query");
 int newsid_int=Integer.valueOf(str_id);
 NewsRealeseDao newsRealeseDao=new NewsRealeseDao();
 try {
 ArrayList newsRealese = newsRealeseDao.queryOneNews(newsid_int);
 char [] s1=newsRealese.toString().toCharArray();
 System.out.println("String+newsRealese:"+newsRealese);
 System.out.println("String+newsRealese:"+s1[0]+" -------"+s1[1]);
 if(s1[0]=='['&&s1[1]==']')
 {
 response.sendRedirect("a_queryNewsfailed.jsp");

 }
 else
 {
 response.sendRedirect("newRealese_detail.jsp?newsid="+str_id);
 }
 } catch (Exception ex) {
 Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex);
 }
 }
 }
 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 processRequest(request, response);
 }
 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 processRequest(request, response);
 }
 @Override
 public String getServletInfo() {
 return "Short description";
 }

}

(9)下面实现更新数据的操作,命名为a_updateNews.jsp,其代码如下所示:

<%@page contentType="text/html" import="java.util.*,java.sql.*" pageEncoding="UTF-8" language="java"%>
<%@page import="com.lut.beans.NewsRealese" %>
<%@page import="dao.NewsRealeseDao" %>
<!DOCTYPE html>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>更改新闻-</title>
 <!-- 配置文件 -->
 <script type="text/javascript" src="./ueditor/ueditor.config.js"></script>
 <!-- 编辑器源码文件 -->
 <script type="text/javascript" src="./ueditor/ueditor.all.js"></script>
 <link rel="stylesheet" type="text/css" href="./udeditor/themes/default/css" />
 <link type="text/css" rel="stylesheet" href="newsRealese.css"/>
 </head>
 <body id="body">
 <%
 NewsRealeseDao newsRealeseDao=new NewsRealeseDao();
 String newsid_s=request.getParameter("newsid");
 int news_int=Integer.valueOf(newsid_s);

 ArrayList news_list=newsRealeseDao.queryOneNews(news_int);
 %>
 <%
 for(int i=0;i<news_list.size();i++)
 {
 NewsRealese newRealese=(NewsRealese)news_list.get(i);
 %>
 <form action="UpdateOneNews" method="post">
 <table border="0" id="table" style="width:95%">
 <tr>
 <td width="5%">left</td>
 <td width="90%">
 <table border="1" id="table" style="width:100%">
 <tr >
 <tr>
 <td >新闻编号</td> <td><input type="text" width="100%" name="newsid" value="<%=newRealese.getNewsId() %>"></td>
 <td>所属新闻栏目编号</td> <td><input type="text" width="100%" name="classid" value="<%=newRealese.getClassId() %>"></td>
 </tr>
 <tr>
 <td>所属新闻分类编号</td> <td><input type="text" width="100%" name="kindid" value="<%=newRealese.getKindId() %>"></td>
 <td>原创或转载</td> <td><input type="text" width="100%" name="myother" value="<%=newRealese.getMyOther() %>"></td>
 </tr>
 <tr>
 <td>新闻标题</td> <td><input type="text" width="100%" name="headtitle" value="<%=newRealese.getHeadTitle()%>"></td>
 <td>相关文章</td> <td><input type="text" width="100%" name="connectrealtive" value="<%=newRealese.getConnectRealtive()%>"></td>
 </tr>
 <tr>
 <td>作者</td> <td><input type="text" width="100%" name="author" value="<%=newRealese.getAuthor() %>"></td>
 <td>编辑</td> <td><input type="text" width="100%" name="editor" value="<%=newRealese.getEditor() %>"></td>
 </tr>
 <tr>
 <td>出处</td> <td><input type="text" width="100%" name="newsfrom" value="<%=newRealese.getNewsFrom() %>"></td>
 <td>是否置顶</td> <td><input type="text" width="100%" name="top" value="<%=newRealese.getTop() %>"></td>
 </tr>
 <tr>
 <td>新闻发布时间</td> <td><input type="text" width="100%" name="newstime" value="<%=newRealese.getNewsTime() %> "></td>
 <td>新闻点击次数</td> <td><input type="text" width="100%" name="hits" value="<%=newRealese.getHits() %>"></td>
 </tr>
 <tr>
 <td>新闻状态</td> <td><input type="text" name="state" width="100%" value="<%=newRealese.getState() %>"></td>
 <td>新闻标记</td> <td><input type="text" width="100%" name="tag" value="<%=newRealese.getTag() %>"></td>
 </tr>
 <tr>
 </table>
 </td>
 <td width="5%">right</td>
 </tr>
 <tr>
 <td> </td>
 <td>
 <div align="center" style="width:80%">
 <textarea id="newsEditor" name="content" style="height: 80%"><%=newRealese.getContent() %></textarea>
 <br/>
 <input type="submit" value="发 布">
 <script type="text/javascript">
 UE.getEditor('newsEditor');
 var content=UE.getPlainTxt();//s就是编辑器的带格式的内容
 </script>
 </div>
 </td>
 <td> </td>
 </tr>
</table>
 </form>
 <%
 }
 %>
</body>
</html>

在Servlet中进行如下代码所示配置:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package servlet;

import dao.NewsRealeseDao;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UpdateOneNews extends HttpServlet {
 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 response.setContentType("text/html;charset=UTF-8");
 try (PrintWriter out = response.getWriter()) {
 ArrayList addnews_list = new ArrayList();
 NewsRealeseDao newsRealeseDao = new NewsRealeseDao();
 addnews_list.add(0, request.getParameter("newsid"));
 addnews_list.add(1, request.getParameter("classid"));
 addnews_list.add(2, request.getParameter("kindid"));
 addnews_list.add(3, request.getParameter("myother"));
 addnews_list.add(4, request.getParameter("headtitle"));
 addnews_list.add(5, request.getParameter("content"));
 addnews_list.add(6, request.getParameter("connectrealtive"));
 addnews_list.add(7, request.getParameter("author"));
 addnews_list.add(8, request.getParameter("editor"));
 addnews_list.add(9, request.getParameter("newsfrom"));
 addnews_list.add(10, request.getParameter("top"));
 addnews_list.add(11, request.getParameter("newstime"));
 addnews_list.add(12, request.getParameter("hits"));
 addnews_list.add(13, request.getParameter("state"));
 addnews_list.add(14,request.getParameter("tag"));
 try {
 String newsRealese = newsRealeseDao.updateOneNews(addnews_list);
 System.out.println("String:"+newsRealese);
 if (newsRealese!= null) {
 response.sendRedirect("adminManager.jsp");
 } else {
 response.sendRedirect("a_addNews.jsp");
 }
 } catch (Exception ex) {
 Logger.getLogger(checkLogin.class.getName()).log(Level.SEVERE, null, ex);
 }
 }
 }
 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 processRequest(request, response);
 }
 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 processRequest(request, response);
 }
 @Override
 public String getServletInfo() {
 return "Short description";
 }
}

到这儿,我们已经实现了对增删改查功能的实现,当然,基本的新闻发布功能已经实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 基于jsp的AJAX多文件上传的实例

    最近的项目开发中,遇到了一个多文件上传的问题,即在不刷新页面的情况下,上传多个文件至服务器.现总结分享如下: 本文主要采用了基于jsp的ajax,jquery,servlet等技术. 1.upload.jsp 点击上传时,调用对应的fileupload函数,通过ajax将文件异步传送到servlet中处理.注意在文件上载时,所使用的编码类型应当是"multipart/form-data",它既可以发送文本数据,也支持二进制数据上载. <%@ page language="

  • jsp 网站引入外部css或者js失效问题解决

    最近做项目,完成项目经理布置的任务,开始入门java web,但在开发过程中遇到过许许多多的问题,但是令我最头痛的还是导入外部css一直失效,困扰许久才找出原因. 路径问题 css或者js导入失效最有可能的原因就是路径错误,这里我给出我的网站目录结构,大家可以参考下. 导入css代码: <link rel="stylesheet" type="text/css" href="css/login.css"> 记得jsp头部需要设置相对路

  • jsp页面常用的查询及显示方法分析

    本文实例讲述了jsp页面常用的查询及显示方法.分享给大家供大家参考,具体如下: 背景: 1. 需要将数据库查询结果在JSP中以列表方式显示 2. 在一个良好的J2EE模式中数据库查询一般用DAO实现(Data Access Object), JSP仅用于显示数据 方法一: 建一个类,将查询出的结果封装到该类中,然后将该类对象添加到List中.(这个也是我最开始时用的方法,不通用且太麻烦了). 方法二: 在介绍方法二的时候,我们先来看看如何把ResultSet转化为List吧,代码如下: priv

  • jsp中如何实现按下回车键自动提交表单

    为了省事很多时候希望可以按回车键来提交表单,要控制这些行为,可以借助JS来达到要求. 代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="../../common/include_tag.jsp"%> <%@ include fi

  • 使用java web 在jsp文件及Class中连接MySQL和SQLsever 的驱动方法

    --方法一 使用java web 在jsp文件中连接 连接MySQL的驱动 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@page import="java.sql.Connection"%> <%@page import="java.sql.DriverManager"%>

  • jsp中为表格添加水平滚动条的实现方法

    首先,本项目中使用的是bootstrap框架,因此有些人会说,给表格设置自适应属性就可以了 这里要申明的是 bootsrtap自适应是针对当浏览器不占满整个屏幕,而是一半的时候才会出现横向的滚动条 而当我们将浏览器最大化的时候,如果列数增多了呢?会出现什么效果 答案就是会出现挤压的效果,横向并不会出现滚动条 查看网上的教程,很多人都说将什么父div设置100%,table添加scrool属性均不可 这里,解决的方法很简单,设置<th>标签的属性即可,让其不要自动换行 $(document).r

  • jsp播放视频文件的方法总结

    本文实例讲述了jsp播放视频文件的方法.分享给大家供大家参考,具体如下: 1.avi格式 代码片断如下: JSP代码: <object id="video" width="400" height="200" border="0" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> <param name="ShowDispl

  • jsp页面验证码demo

    在java后台中生成验证码的ImageIO传到前端页面显示,同时把验证码的value值传入session 中用于与用户输入的验证码进行匹配,在用户验证中使用ajax技术,在不刷新页面的同时进行验证码验证. 程序结构图: VerifyCodeUtils程序主要内容为通过java生成验证码的图片,以及验证码的value值,程序如下: package utils; import java.awt.Color; import java.awt.Font; import java.awt.Graphics

  • jsp图片效果大全(图像震动效果、闪烁效果、自动切换图像)

    本文主要介绍jsp实现图像震动效果.闪烁效果.自动切换图像的资料,废话不多说了,具体代码如下: 1.当鼠标指针经过图像时图像震动效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1

  • 在JSP页面中获取当前日期时间的方法

    1. <SCRIPT LANGUAGE="JavaScript"> var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay(); //获取当前星期X(0-6,

  • JSP实现在线考试与成绩评测

    模拟在线考试系统,在request.jsp页面输出单选题和多选题,题目答完后点击"考试完成",页面跳转到requestHandle.jsp,该页面对提交的数据进行处理,并将考试结果的数据输出到页面中. 1.request.jsp代码如下: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PU

随机推荐