前言:本项目主要用eclipse和orcl数据库进行搭建。重点是代码封装!
基本上是“换汤不换药”,代码大都“神似且形似”。
一、项目功能:
1-1:用户登录
1-2:用户注册
1-3:新闻页面的数据维护(添加、修改、删除、查询)
1-4:新闻主题页面的数据维护(添加、修改、删除)
1-5:阅读新闻页面的数据维护(添加评论、删除评论)
二、准备工作
1、在orcl数据库中创建 新闻表(news)、新闻主题表(subject)、用户表(User)、评论表(ptext)
2、打开eclipse新建一个web项目
3、在webroot下的WEB-INF下的lib中导入数据库的驱动jar包
4、创建对应的包结构
优化新闻管理系统(分层) entity:新闻、主题、评论、用户 dao:新闻dao、主题dao、评论dao、用户dao
com.china.dao ——数据操作类
com.china.entity ——实体类(实体即抽象出来的用户对象,对应数据库中的User表,表中的每个字段在实体中为一个属性)
com.china.util ——帮助类
三、进入主题
帮助类:DBHelper
package com.china.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class DBHelper {
//OracleDriver alt+?
private static String cname = "oracle.jdbc.driver.OracleDriver";
private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";
private static String user = "scott";
private static String upwd = "tiger";
//注册驱动类
static {
try {
Class.forName(cname);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 连接数据库
* @return
*/
public static Connection getCon() {
Connection con = null;
try {
con = DriverManager.getConnection(url, user, upwd);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
/**
* 关闭连接
* @param con
* @param ps
* @param rs
*/
public static void closeDB(Connection con,PreparedStatement ps,ResultSet rs) {
try {
if(con!=null) {
con.close();
}
if(ps!=null) {
ps.close();
}
if(rs!=null) {
rs.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 下一个获取下一个编号的方法
* @return 下一个编号
*/
public static int getNextId(String tableName,String col) {
int id = 1;
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//连接数据库
con = DBHelper.getCon();
ps = con.prepareStatement("select max("+col+") from "+tableName);
//执行sql语句
rs = ps.executeQuery();
if(rs.next()) {
id = rs.getInt(1)+1;
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return id;
}
}
实体类(仅展示一个,其他类以此类推):News
package com.china.entity;
import java.sql.Date;
public class News {
private int nid;
private int tid;
private String ntitle;
private String nzz;
private String nnr;
private Date ndate;
private String nzy;
private int nlook;
private String nimg;
public News() {
super();
}
public News(int nid, int tid, String ntitle, String nzz, String nnr, Date ndate, String nzy, String nimg) {
super();
this.nid = nid;
this.tid = tid;
this.ntitle = ntitle;
this.nzz = nzz;
this.nnr = nnr;
this.ndate = ndate;
this.nzy = nzy;
this.nimg = nimg;
}
public News(int tid, String ntitle, String nzz, String nnr, Date ndate, String nzy, int nlook, String nimg) {
super();
this.tid = tid;
this.ntitle = ntitle;
this.nzz = nzz;
this.nnr = nnr;
this.ndate = ndate;
this.nzy = nzy;
this.nlook = nlook;
this.nimg = nimg;
}
public News(int tid, String ntitle, String nzz, String nnr, String nzy, String nimg) {
super();
this.tid = tid;
this.ntitle = ntitle;
this.nzz = nzz;
this.nnr = nnr;
this.nzy = nzy;
this.nimg = nimg;
}
public News(String ntitle, String nzz, String nnr, String nzy, String nimg) {
super();
this.ntitle = ntitle;
this.nzz = nzz;
this.nnr = nnr;
this.nzy = nzy;
this.nimg = nimg;
}
public News(int nid, int tid, String ntitle, String nzz, String nnr, String nzy, String nimg) {
super();
this.nid = nid;
this.tid = tid;
this.ntitle = ntitle;
this.nzz = nzz;
this.nnr = nnr;
this.nzy = nzy;
this.nimg = nimg;
}
public News(int nid, int tid, String ntitle, String nzz, String nnr, Date ndate, String nzy, int nlook,
String nimg) {
super();
this.nid = nid;
this.tid = tid;
this.ntitle = ntitle;
this.nzz = nzz;
this.nnr = nnr;
this.ndate = ndate;
this.nzy = nzy;
this.nlook = nlook;
this.nimg = nimg;
}
public int getNid() {
return nid;
}
public void setNid(int nid) {
this.nid = nid;
}
public int getTid() {
return tid;
}
public void setTid(int tid) {
this.tid = tid;
}
public String getNtitle() {
return ntitle;
}
public void setNtitle(String ntitle) {
this.ntitle = ntitle;
}
public String getNzz() {
return nzz;
}
public void setNzz(String nzz) {
this.nzz = nzz;
}
public String getNnr() {
return nnr;
}
public void setNnr(String nnr) {
this.nnr = nnr;
}
public Date getNdate() {
return ndate;
}
public void setNdate(Date ndate) {
this.ndate = ndate;
}
public String getNzy() {
return nzy;
}
public void setNzy(String nzy) {
this.nzy = nzy;
}
public int getNlook() {
return nlook;
}
public void setNlook(int nlook) {
this.nlook = nlook;
}
public String getNimg() {
return nimg;
}
public void setNimg(String nimg) {
this.nimg = nimg;
}
@Override
public String toString() {
return "News [nid=" + nid + ", tid=" + tid + ", ntitle=" + ntitle + ", nzz=" + nzz + ", nnr=" + nnr + ", ndate="
+ ndate + ", nzy=" + nzy + ", nlook=" + nlook + ", nimg=" + nimg + "]";
}
}
数据操作类:NewsDao
package com.china.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.sql.Date;
import com.china.entity.News;
import com.china.util.DBHelper;
public class NewsDao {
// 添加新闻
/**
* 添加新闻
* @param news 要添加的新闻对象
* @return 成功返回1,失败返回0
*/
public int addNews(News news) {
// 声明对象
int i = 0;
Connection con = null;
PreparedStatement ps = null;
try {
// 连接数据库
con = DBHelper.getCon();
ps = con.prepareStatement(
"insert into news(nid,tid,ntitle,nzz,ncontent,nzy,ndate,nlook) values(?,?,?,?,?,?,sysdate,0)");
// 给占位符赋值
ps.setInt(1, DBHelper.getNextId("news", "nid"));
ps.setInt(2, news.getTid());
ps.setString(3, news.getNtitle());
ps.setString(4, news.getNzz());
ps.setString(5, news.getNnr());
ps.setString(6, news.getNzy());
// 执行sql语句
i = ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.closeDB(con, ps, null);
}
return i;
}
// 删除新闻
/**
* 删除新闻
* @param nid 要删除的新闻编号
* @return 成功返回1,失败返回0
*/
public int delete(int nid) {
int i = 0;
Connection con = null;
PreparedStatement ps = null;
try {
//连接数据库
con = DBHelper.getCon();
ps = con.prepareStatement("delete news where nid="+nid);
//执行sql语句
i = ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, null);
}
return i;
}
// 修改新闻
/**
* 修改新闻
* @param nid 要修改的 新闻编号
* @param news 修改后的新闻
* @return 成功返回1,失败返回0
*/
public int upNews(int nid,News news) {
int i = 0;
Connection con = null;
PreparedStatement ps = null;
try {
//连接数据库
con = DBHelper.getCon();
ps = con.prepareStatement("update news set tid=?, ntitle=?,nzz=?,ncontent=?,nzy=?,nimg=? where nid="+nid);
//给占位符赋值
ps.setInt(1, news.getTid());
ps.setString(2, news.getNtitle());
ps.setString(3, news.getNzz());
ps.setString(4, news.getNnr());
ps.setString(5, news.getNzy());
ps.setString(6, news.getNimg());
//给占位符赋值
i = ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, null);
}
return i;
}
//查询单个
public News getByid(int xy) {
News n = null;
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//连接数据库
con = DBHelper.getCon();
ps = con.prepareStatement("select * from news where nid="+xy);
//执行sql语句
rs = ps.executeQuery();
//处理结果
if(rs.next()) {
int nid = rs.getInt(1);
int tid = rs.getInt(2);
String ntitle = rs.getString(3);
String nzz = rs.getString(4);
String nnr = rs.getString(5);
Date ndate = rs.getDate(6);
int nlook = rs.getInt(7);
String nzy = rs.getString(8);
String nimg = rs.getString(9);
//创建对象
n = new News(nid, tid, ntitle, nzz, nnr, ndate, nzy, nlook, nimg);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return n;
}
//分页查询:
/**
* 分页查询
* @param pageIndex 页码
* @param pageSize 每页数据条数
* @return 查询到的集合
*/
public ArrayList pageNews(int pageIndex,int pageSize){
//声明对象
ArrayList nlist = new ArrayList<>();
int start = (pageIndex-1)*pageSize+1;
int end = pageIndex*pageSize;
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//连接数据库
con = DBHelper.getCon();
String sql = "select * from(select a.*,rownum mid from news a)b where mid>=? and mid<=?";
ps = con.prepareStatement(sql);
//给占位符赋值
ps.setInt(1, start);
ps.setInt(2, end);
//执行sql语句
rs = ps.executeQuery();
//处理结果
while(rs.next()) {
int nid = rs.getInt(1);
int tid = rs.getInt(2);
String ntitle = rs.getString(3);
String nzz = rs.getString(4);
String nnr = rs.getString(5);
Date ndate = rs.getDate(6);
int nlook = rs.getInt(7);
String nzy = rs.getString(8);
String nimg = rs.getString(9);
//实例化对象
News news = new News(nid, tid, ntitle, nzz, nnr, ndate, nzy, nlook, nimg);
//把新闻对象放到集合中
nlist.add(news);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return nlist;
}
//最大页码方法
/**
* 求出最大页码
* @param pageSize 每页数据条数
* @return 返回最大页码
*/
public int getMaxPage(int pageSize,String str) {
//声明对象
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
int maxPage = 0;
int count = 0;
try {
//连接数据库
con = DBHelper.getCon();
ps = con.prepareStatement("select count(*) from news where ntitle like '%"+str+"%'");
//执行sql语句
rs = ps.executeQuery();
if(rs.next()) {
count = rs.getInt(1);
maxPage = count/pageSize;
if(count%pageSize!=0) {
maxPage++;
}
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return maxPage;
}
/**
* 获取指定主题的新闻最大页码
* @param pageSize 每页数据条数
* @param tid 新闻的主题编号
* @return 返回最大页码
*/
public int getMaxPageByTid(int pageSize,int tid) {
//声明对象
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
int maxPage = 0;
int count = 0;
try {
//连接数据库
con = DBHelper.getCon();
ps = con.prepareStatement("select count(*) from news where tid="+tid);
//执行sql语句
rs = ps.executeQuery();
if(rs.next()) {
count = rs.getInt(1);
maxPage = count/pageSize;
if(count%pageSize!=0) {
maxPage++;
}
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return maxPage;
}
//分页模糊查询
/**
* 模糊查询的分页
* @param pageIndex 页码
* @param pageSize 每页的数据条数
* @param str 模糊查询的关键字
* @return 返回查询到的数据
*/
public ArrayList pageLikeNews(int pageIndex,int pageSize,String str){
//声明对象
ArrayList nlist = new ArrayList<>();
int start = (pageIndex-1)*pageSize+1;
int end = pageIndex*pageSize;
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//连接数据库
con = DBHelper.getCon();
String sql = "select * from(select a.*,rownum mid from news a where ntitle like '%"+str+"%')b where mid>=? and mid<=?";
ps = con.prepareStatement(sql);
//给占位符赋值
ps.setInt(1, start);
ps.setInt(2, end);
//执行sql语句
rs = ps.executeQuery();
//处理结果
while(rs.next()) {
int nid = rs.getInt(1);
int tid = rs.getInt(2);
String ntitle = rs.getString(3);
String nzz = rs.getString(4);
String nnr = rs.getString(5);
Date ndate = rs.getDate(6);
int nlook = rs.getInt(7);
String nzy = rs.getString(8);
String nimg = rs.getString(9);
//实例化对象
News news = new News(nid, tid, ntitle, nzz, nnr, ndate, nzy, nlook, nimg);
//把新闻对象放到集合中
nlist.add(news);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return nlist;
}
//根据新闻主题的分页查询
/**
* 根据新闻主题的分页查询
* @param pageIndex 页码
* @param pageSize 每页的数据条数
* @param tid 新闻主题编号
* @return 返回查询到的集合
*/
public ArrayList pageNewsByTid(int pageIndex,int pageSize,int tid){
//声明对象
ArrayList nlist = new ArrayList<>();
int start = (pageIndex-1)*pageSize+1;
int end = pageIndex*pageSize;
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//连接数据库
con = DBHelper.getCon();
String sql = "select * from(select a.*,rownum mid from news a where tid="+tid+")b where mid>=? and mid<=?";
ps = con.prepareStatement(sql);
//给占位符赋值
ps.setInt(1, start);
ps.setInt(2, end);
//执行sql语句
rs = ps.executeQuery();
//处理结果
while(rs.next()) {
int nid = rs.getInt(1);
String ntitle = rs.getString(3);
String nzz = rs.getString(4);
String nnr = rs.getString(5);
Date ndate = rs.getDate(6);
int nlook = rs.getInt(7);
String nzy = rs.getString(8);
String nimg = rs.getString(9);
//实例化对象
News news = new News(nid, tid, ntitle, nzz, nnr, ndate, nzy, nlook, nimg);
//把新闻对象放到集合中
nlist.add(news);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return nlist;
}
//根据新闻编号查询
public ArrayList getAll(int jk){
ArrayList nlist = new ArrayList<>();
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//连接数据库
con = DBHelper.getCon();
ps = con.prepareStatement("select * from news where tid="+jk);
rs = ps.executeQuery();
while(rs.next()) {
int tid = rs.getInt(1);
int nid = rs.getInt(2);
String ntitle = rs.getString(3);
String nzz = rs.getString(4);
String nnr = rs.getString(5);
Date ndate = rs.getDate(6);
int nlook = rs.getInt(7);
String nzy = rs.getString(8);
String nimg = rs.getString(9);
//实例化一个对象
News n = new News(nid, tid, ntitle, nzz, nnr, ndate, nzy, nlook, nimg);
//将对象添加到集合中
nlist.add(n);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return nlist;
}
}
1、 用户登录界面效果图展示:(登录代码在上一章节有展示)
2、主页面:(admin.jsp代码在上一章节有展示)
3、阅读新闻页面:read_news.jsp
主要代码展示:
<%@page import="com.china.entity.User"%>
<%@page import="com.china.entity.Ptext"%>
<%@page import="com.china.dao.PtextDao"%>
<%@page import="com.china.entity.News"%>
<%@page import="com.china.dao.NewsDao"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="fc" uri="http://java.fckeditor.net" %>
新闻中国
<%
//判断用户是不是为空
Object obj = session.getAttribute("u");
if(obj==null){
out.print
("");
}
%>
<%
// 获取新闻编号
String id=request.getParameter("nid");
int nid=Integer.valueOf(id);
//实例化一个dao类
NewsDao an=new NewsDao();
News end=an.getByid(nid);
if(end!=null){
%>
<%=end.getNtitle() %>
<%=end.getNdate() %>
<%=end.getNzz() %>
<%=end.getNnr() %>
<% }%>
<%
//查询新闻的评论
PtextDao wan=new PtextDao();
ArrayList ptx=wan.getPtextByid(nid);
for(Ptext y:ptx){
%>
<%=y.getPnr() %>
删除
回复
<%} %>
4、添加评论 and 删除评论(doaddpl.jsp and dodelpl.jsp)
重点代码展示:doaddpl.jsp
<%
//设置编码格式
request.setCharacterEncoding("utf-8");
//接收评论人的编号(用户编号)
int uuid = ((User)session.getAttribute("u")).getUuid();//强转
//评论人的IP
String pip = request.getParameter("cip");
//接收新闻编号(给哪一篇新闻评论)
int nid = Integer.valueOf(request.getParameter("nid"));
session.setAttribute("nid", nid);
//评论内容
String pnr = request.getParameter("content");
//实例化PtextDao对象
PtextDao pd=new PtextDao();
//实例化Ptext对象
Ptext p = new Ptext(uuid,nid,pnr,pip);
//调用添加评论方法
int i = pd.addPl(p);
if(i>0){
out.print("");
}else{
out.print("");
}
%>
dodel.jsp
<%
//设置编码格式
request.setCharacterEncoding("utf-8");
//接收要评论编号
int pid=Integer.valueOf(request.getParameter("pid"));
//接收要删除的新闻编号
Object id = session.getAttribute("nid");
int nid = (Integer)id;//强转
//实例化一个PtextDao类对象
PtextDao pd = new PtextDao();
//执行sql语句
int i = pd.delete(pid);
if(i>0){
out.print("");
}else{
out.print("");
}
%>
5、添加新闻:add_news.jsp doadd_news.jsp
重点代码展示:add_news.jsp
<%@page import="com.china.entity.User"%>
<%@page import="com.china.entity.Subject"%>
<%@page import="java.util.ArrayList"%>
<%@page import="com.china.dao.SubjectDao"%>
<%@page import="com.china.util.DBHelper"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
添加新闻--管理后台
<%
//判断用户是不是为空
Object obj = session.getAttribute("u");
if(obj==null){
out.print
("");
}
%>
管理员: <%=((User)session.getAttribute("u")).getUname() %> 登录
login out
doadd_new.jsp
<%@page import="com.china.entity.News"%>
<%@page import="com.china.dao.NewsDao"%>
<%@page import="com.china.util.DBHelper"%>
<%@page import="com.jspsmart.upload.Request"%>
<%@page import="com.jspsmart.upload.File"%>
<%@page import="com.jspsmart.upload.SmartUpload"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//创建SmartUpload对象
SmartUpload su = new SmartUpload();
//初始化
su.initialize(pageContext);
//声明一个File对象 用来接收上传的文件
File file = null;
//设置允许上传的文件类型
su.setAllowedFilesList("jpg,png,gif,jpeg");
//设置不允许上传的文件类型
su.setDeniedFilesList("bat,exe,mp4");
//设置单文件大小
su.setMaxFileSize(60000);
//设置总文件大小
su.setTotalMaxFileSize(90000);
//设置编码
su.setCharset("utf-8");
//开始上传
su.upload();
//获取文件集合中的第一个文件
file = su.getFiles().getFile(0);
String filePath = "";
if(!file.isMissing()){
//拼接文件上传到服务器的 路径
filePath ="onload/"+file.getFileName();
//上传到服务器 保存到指定路径
file.saveAs(filePath,SmartUpload.SAVE_VIRTUAL);
}
Request req = su.getRequest();
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//设置编码格式
//request.setCharacterEncoding("utf-8");
//接收添加页面到的数据,获取新闻主题编号
int tid = Integer.valueOf(req.getParameter("ntid"));
//获取新闻标题
String ntitle = req.getParameter("ntitle");
//获取新闻作者
String nzz = req.getParameter("nauthor");
//获取新闻摘要
String nzy = req.getParameter("nsummary");
//获取新闻内容
String nnr = req.getParameter("ncontent");
//实例化一个新闻对象
News n = new News(tid,ntitle,nzz,nzy,nnr,filePath);
//实例化一个NewsDao类对象
NewsDao nd = new NewsDao();
//添加新闻--调用添加方法
//执行sql语句
int i = nd.addNews(n);
if(i>0){
out.print("");
}else{
out.print("");
}
%>
6、修改新闻:update_news.jsp doupdate_news.jsp
重点代码展示:update_news.jsp
<%@page import="com.china.entity.User"%>
<%@page import="com.china.entity.News"%>
<%@page import="com.china.dao.NewsDao"%>
<%@page import="com.china.entity.Subject"%>
<%@page import="java.util.ArrayList"%>
<%@page import="com.china.dao.SubjectDao"%>
<%@page import="com.china.util.DBHelper"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
修改新闻--管理后台
<%
//判断用户是不是为空
Object obj = session.getAttribute("u");
if(obj==null){
out.print
("");
}
%>
管理员:<%=((User)session.getAttribute("u")).getUname() %> 登录
login out
doupdate_news.jsp
<%@page import="com.china.dao.NewsDao"%>
<%@page import="com.china.entity.News"%>
<%@page import="com.china.util.DBHelper"%>
<%@page import="com.jspsmart.upload.Request"%>
<%@page import="com.jspsmart.upload.File"%>
<%@page import="com.jspsmart.upload.SmartUpload"%>
<%@page import="java.sql.Date"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//创建SmartUpload对象
SmartUpload su = new SmartUpload();
//初始化
su.initialize(pageContext);
//声明一个File对象 用来接收上传的文件
File file = null;
//设置允许上传的文件类型
su.setAllowedFilesList("jpg,png,gif,jpeg");
//设置不允许上传的文件类型
su.setDeniedFilesList("bat,exe,mp4");
//设置单文件大小
su.setMaxFileSize(60000);
//设置总文件大小
su.setTotalMaxFileSize(80000);
//设置编码
su.setCharset("utf-8");
//开始上传
su.upload();
//获取文件集合中的第一个文件
file = su.getFiles().getFile(0);
String filePath = "";
if(!file.isMissing()){
//拼接文件上传到服务器的 路径
filePath ="onload/"+file.getFileName();
//上传到服务器 保存到指定路径
file.saveAs(filePath,SmartUpload.SAVE_VIRTUAL);
}
Request req = su.getRequest();
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//获取隐藏标签的值(分类编号)
String id = req.getParameter("nid");
int nid = Integer.valueOf(id);
//获取修改页面的数据,把字符串转换为整数编号(新闻主题编号)
int tid = Integer.valueOf(req.getParameter("ntid"));
//获取修改页面的数据(新闻标题、新闻作者、新闻摘要、新闻内容)
String ntitle = req.getParameter("ntitle");
String nzz = req.getParameter("nauthor");
String nzy = req.getParameter("nsummary");
String nnr = req.getParameter("ncontent");
//实例化一个news对象
News y = new News(tid,ntitle,nzz,nzy,nnr,filePath);
//实例化一个NewsDao类对象
NewsDao nd = new NewsDao();
//执行sql语句
int i = nd.upNews(nid, y);
if(i>0){
out.print("");
}else{
out.print("");
}
%>
7、删除新闻:dodelnews.jsp
<%@page import="com.china.dao.NewsDao"%>
<%@page import="com.china.entity.News"%>
<%@page import="com.china.util.DBHelper"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//接收要删除的新闻编号
int nid = Integer.valueOf(request.getParameter("nid"));
//实例化一个dao类对象
NewsDao nd = new NewsDao();
//执行sql语句
int i = nd.delete(nid);
if(i>0){
out.print("");
}else{
out.print("");
}
%>
这就完了???对你没看错!其余添加主题、修改主题、删除主题都可以此类推 !
简简单单,轻轻松松!!!