新闻发布系统

一.功能发布

 1.主页面:类型标题展示、全部新闻分页、相应类型标题新闻分页

 2.后台

新闻管理:

    添加新闻、编辑新闻、删除新闻、新闻分页

主题管理:

添加主题、修改主题、删除主题、全部新闻

三架构设计

3.0实体类

3.0.1 Page 原本应该是工具类,因为分页很地方需要用到。

package cn.news.entity;

import java.util.ArrayList;

import java.util.List;

public class Page {

//1.当前是第几页

  private int pageIndex;

//2.每页记录数

  private int pageSize;

//3.总记录数

  private int totalrecords;

//4.总页数

  private int totalpages;

//5.真实数据集合NewInfo

  private List<NewsInfo> list=new ArrayList<NewsInfo>();

public int getPageIndex() {

return pageIndex;

}

public void setPageIndex(int pageIndex) {

this.pageIndex = pageIndex;

}

public int getPageSize() {

return pageSize;

}

public void setPageSize(int pageSize) {

this.pageSize = pageSize;

}

public int getTotalrecords() {

return totalrecords;

}

public void setTotalrecords(int totalrecords) {

this.totalrecords = totalrecords;

}

public int getTotalpages() {

return totalpages;

}

public void setTotalpages(int totalpages) {

this.totalpages = totalpages;

}

public List<NewsInfo> getList() {

return list;

}

public void setList(List<NewsInfo> list) {

this.list = list;

}

}

3.0.2  UserInfo (用户实体类)

package cn.news.entity;

/**

 * 用户实体

 * @author Happy

*/

public class UserInfo {

    private int uid  ;

private String uname;

private String upwd ;

public int getUid() {

return uid;

}

public void setUid(int uid) {

this.uid = uid;

}

public String getUname() {

return uname;

}

public void setUname(String uname) {

this.uname = uname;

}

public String getUpwd() {

return upwd;

}

public void setUpwd(String upwd) {

this.upwd = upwd;

}

}

3.0.3  Topic (新闻主题实体类)

package cn.news.entity;

/**

 * 新闻分类

 * @author Happy

 */

public class Topic {

 private int tid;

 private String tname;

public int getTid() {

return tid;

}

public void setTid(int tid) {

this.tid = tid;

}

public String getTname() {

return tname;

}

public void setTname(String tname) {

this.tname = tname;

}

}

3.0.4  NewsInfo (新闻实体类)

package cn.news.entity;

import java.util.Date;

public class NewsInfo {

    private int  nid    ;

   private String  ntitle   ;

   private String  ncontent  ;

   private Date  ncreateda ;

   private int  ncateid   ;

   private Date  nmodifyda ;

   private String  npicpath  ;

   private String  nsummary  ;

   private String nauthor;

public String getNauthor() {

return nauthor;

}

public void setNauthor(String nauthor) {

this.nauthor = nauthor;

}

public int getNid() {

return nid;

}

public void setNid(int nid) {

this.nid = nid;

}

public String getNtitle() {

return ntitle;

}

public void setNtitle(String ntitle) {

this.ntitle = ntitle;

}

public String getNcontent() {

return ncontent;

}

public void setNcontent(String ncontent) {

this.ncontent = ncontent;

}

public Date getNcreateda() {

return ncreateda;

}

public void setNcreateda(Date ncreateda) {

this.ncreateda = ncreateda;

}

public int getNcateid() {

return ncateid;

}

public void setNcateid(int ncateid) {

this.ncateid = ncateid;

}

public Date getNmodifyda() {

return nmodifyda;

}

public void setNmodifyda(Date nmodifyda) {

this.nmodifyda = nmodifyda;

}

public String getNpicpath() {

return npicpath;

}

public void setNpicpath(String npicpath) {

this.npicpath = npicpath;

}

public String getNsummary() {

return nsummary;

}

public void setNsummary(String nsummary) {

this.nsummary = nsummary;

}

}

3.1BaseDAO连接数据库(工具类)

package cn.news.dao;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;

/**

 * 连接数据库的工具类

 * @author Happy

 *

 */

public class BaseDAO {

    public static final String driver="com.mysql.jdbc.Driver";

    public static final String url="jdbc:mysql://localhost:3306/news";

    public static final String username="root";

    public static final String password="1234";

    public Connection con;

    public PreparedStatement ps;

    public ResultSet rs;

    //在静态代码块中。注册类

    static{

     try {

     //字符串对应的类装载到内存

Class.forName(driver);

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

    }

    //1.获取连接接口

    public Connection getConection() throws SQLException{

     if (con==null||con.isClosed()) {

     con=DriverManager.getConnection(url, username, password);

}

     return con;

    }

    //1.1根据JNDI获取数据源,进而获得数据连接对象

    public Connection getConectionNew() throws SQLException{

     if (con==null||con.isClosed()) {

     Context ctx;

try {

ctx = new InitialContext();

 DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/news");

 System.out.println(ds+"==================");

 con= ds.getConnection();

} catch (NamingException e) {

}

}

     return con;

    }

    //2.关闭资源的方法

    public void closeResources() throws SQLException{

     rs.close();

     ps.close();

     con.close();

    }

    //3.执行增删改

    //select count(1) from userinfo where uname=? and pwd=?

    public int exeuteUpdate(String sql,Object...objs) throws SQLException{

     //1.根据con创建ps对象

     ps= con.prepareStatement(sql);

     //参数赋值

     for (int i = 0; i < objs.length; i++) {

ps.setObject(i+1, objs[i]);

}

     int count = ps.executeUpdate();

     return count;

    }

    //4.获取结果集ResultSet

    public ResultSet executeQuery(String sql,Object...objs) throws SQLException{

     ps= con.prepareStatement(sql);

     for (int i = 0; i < objs.length; i++) {

ps.setObject(i+1, objs[i]);

}

     rs=ps.executeQuery();

     return rs;

    }

}

3.2INewsDAO   来定义对新闻的接口

package cn.news.dao;

import java.sql.SQLException;

import java.util.List;

import cn.news.entity.NewsInfo;

import cn.news.entity.Topic;

public interface INewsDAO {

//1.检索所有新闻集合

   public List<NewsInfo> getAllNews() throws SQLException;

  //2.检索某一页的新闻数据

   public List<NewsInfo> getOnePageData(int pageindex,int pageSize) throws SQLException;

   //3.获取新闻总记录的方法

   public int getCount() throws SQLException;

   //添加新闻

   public  boolean addNews(NewsInfo news)throws Exception;

   //根据新闻类型查找tid值

public  int getIdByTopicName(Topic topic)throws Exception;

//2.检索某一页的新闻数据

    public List<NewsInfo> getOnePageData(int tid,int pageindex,int pageSize) throws SQLException;

    //依照tid来获取所有的页数

    public int getCountById(int tid)throws SQLException;

}

3.3NewsInfoDAOImpl  对新闻接口的实现

package cn.news.dao.impl;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import org.junit.Test;

import cn.news.dao.BaseDAO;

import cn.news.dao.INewsDAO;

import cn.news.entity.NewsInfo;

import cn.news.entity.Topic;

public class NewsInfoDAOImpl extends BaseDAO implements INewsDAO {

//@Test

/*public void testAllNews() throws SQLException{

List<NewsInfo> list= getOnePageData(2,2);

for (NewsInfo item : list) {

System.out.println(item.getNtitle());

}

int count= getCount() ;

System.out.println(count);

}*/

//获取所有新闻条数

    public int getCount() throws SQLException {

int count=0;

String sql="select count(1) as mycount from newsinfo";

getConection();

rs=executeQuery(sql);

if (rs.next()) {

 count= rs.getInt("mycount");

}

return count;

}

//2.检索某一页的新闻数据

public List<NewsInfo> getOnePageData(int pageindex, int pageSize)

throws SQLException {

if (pageindex<=0) {

pageindex=1;

}

List<NewsInfo> list=new ArrayList<NewsInfo>();

    String sql="SELECT * FROM newsinfo LIMIT ?,? ";

    Object[] paras={(pageindex-1)*pageSize,pageSize};

    getConection();

    rs=executeQuery(sql, paras);

    while(rs.next()){

NewsInfo info=new NewsInfo();

info.setNtitle(rs.getString("ntitle"));

info.setNcreateda( rs.getDate("ncreatedate"));

list.add(info);

}

return list;

}

//获取新闻列表

public List<NewsInfo> getAllNews() throws SQLException {

List<NewsInfo> list=new ArrayList<NewsInfo>();

String sql="select * from newsinfo";

getConection();

rs=executeQuery(sql);

while(rs.next()){

NewsInfo info=new NewsInfo();

info.setNtitle(rs.getString("ntitle"));

info.setNcreateda( rs.getDate("ncreatedate"));

list.add(info);

}

return list;

}

@Test   

public void TestAdd() throws Exception{

NewsInfo news=new NewsInfo();

//无法存储中文

news.setNtitle("123");

Topic topic =new Topic();

topic.setTname("国内新闻");

 int ncateid=getIdByTopicName(topic);

 news.setNcontent("最忌刘");

 news.setNcateid(ncateid);

 news.setNauthor("瞿亮");

 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");

 //Date date=new Date();

 String nowTimeString= sdf.format(new Date());

 Date nowTime=sdf.parse(nowTimeString);

 news.setNcreateda(nowTime);

   boolean flag=addNews(news);

   if (flag) {

System.out.println("添加成功");

}

}

   //添加新闻

public boolean addNews(NewsInfo news) throws Exception {

getConection();

Topic topic =new Topic();

topic.getTname();

   int tid=getIdByTopicName(topic);

       boolean flag=false;

String sqlString="insert into  news.`newsinfo` (`ntitle`,`ncontent`,`ncreatedate`,`ncateid`,`nsummary`,`nauthor`) values(?,?,?,?,?,?)";

       int count=0;

       count=exeuteUpdate(sqlString,news.getNtitle(),news.getNcontent(),news.getNcreateda(),tid,news.getNsummary(),news.getNauthor());

       if (count>0) {

flag=true;

}

return flag;

}

//获取tid值的单测

/*@Test

public void TestGetId() throws Exception{

Topic topic =new Topic();

topic.setTname("国内新闻");

int id= getIdByTopicName(topic);

System.out.println(id);

}*/

public int getIdByTopicName(Topic topic) throws Exception {

  getConection();

       String sqlString="select tid from topic where tname=?";

//int exeuteUpdate(sqlString,topic.getTname());

       ResultSet rs = executeQuery(sqlString,topic.getTname());

      int tidString=0;

       while (rs.next()) {

        tidString= rs.getInt("tid");

   }

return tidString;

}

public List<NewsInfo> getOnePageData(int tid, int pageindex,

int pageSize) throws SQLException {

if (pageindex<1) {

pageindex=1;

}

getConection();

List<NewsInfo> list=new ArrayList<NewsInfo>();

String sqlString="select * from newsinfo  where ncateid =? limit ?,?";

 ResultSet rs=executeQuery(sqlString,tid,pageindex,pageSize);

 while(rs.next()){

NewsInfo info=new NewsInfo();

info.setNtitle(rs.getString("ntitle"));

info.setNcreateda( rs.getDate("ncreatedate"));

list.add(info);

}

return list;

}

@Test

public void TestCount() throws SQLException{

int num=getCountById(1);

System.out.println(num);

}

public int getCountById(int tid) throws SQLException {

getConection();

String sqlString="select COUNT(1) as mycount from newsinfo where ncateid =?";

 ResultSet rs=executeQuery(sqlString,tid);

int sum=0;

 while (rs.next()) {

 sum=rs.getInt("mycount");

}

return sum;

}

}

3.4 INewsInfoService  

package cn.news.service;

import java.sql.SQLException;

import java.util.List;

import cn.news.entity.NewsInfo;

import cn.news.entity.Topic;

public interface INewsInfoService {

   //获取所有新闻

   public List<NewsInfo> getAllNews() throws SQLException;

    //2.检索某一页的新闻数据

    public List<NewsInfo> getOnePageData(int pageindex,int pageSize) throws SQLException;

    //3.获取新闻总记录的方法

    public int getCount() throws SQLException;

    //添加新闻

    public  boolean addNews(NewsInfo news)throws Exception;

    //根据新闻类型查找tid值

public  int getIdByTopicName(Topic topic)throws Exception;

//2.检索某一页的新闻数据

    public List<NewsInfo> getOnePageData(int tid,int pageindex,int pageSize) throws SQLException;

        //依照tid来获取所有的页数

    public int getCountById(int tid)throws SQLException;

}

3.5  NewsInfoServiceImpl  

package cn.news.service.impl;

import java.sql.SQLException;

import java.util.List;

import org.junit.Test;

import cn.news.dao.INewsDAO;

import cn.news.dao.impl.NewsInfoDAOImpl;

import cn.news.entity.NewsInfo;

import cn.news.entity.Topic;

import cn.news.service.INewsInfoService;

public class NewsInfoServiceImpl implements INewsInfoService {

    private INewsDAO dao=new NewsInfoDAOImpl();

public List<NewsInfo> getAllNews() throws SQLException {

return dao.getAllNews();

}

public List<NewsInfo> getOnePageData(int pageindex, int pageSize)

throws SQLException {

return dao.getOnePageData(pageindex, pageSize);

}

public int getCount() throws SQLException {

return dao.getCount();

}

public boolean addNews(NewsInfo news) throws Exception {

return dao.addNews(news);

}

public int getIdByTopicName(Topic topic) throws Exception {

return dao.getIdByTopicName(topic);

}

@Test

public void  TestGet() throws SQLException{

List<NewsInfo> list=getOnePageData(0, 1, 2);

for (NewsInfo newsInfo : list) {

System.out.println(newsInfo.getNcateid());

}

}

public List<NewsInfo> getOnePageData(int tid, int pageindex, int pageSize)

throws SQLException {

return dao.getOnePageData(tid, pageindex, pageSize);

}

public int getCountById(int tid) throws SQLException {

return dao.getCountById(tid);

}

}

4.1ITopicDAO  新闻主题的接口

package cn.news.dao;

import java.sql.SQLException;

import java.util.List;

import cn.news.entity.Topic;

public interface ITopicDAO{

   //查询所有的主题

public List<Topic> getAllTopics() throws SQLException;

//添加标题

    public boolean addTopic(Topic topic) throws SQLException;

    //区别是否有重复的标题

    public int isRepeat(Topic topic) throws SQLException;

    //更新标题信息

    public int updateTopic(Topic topic) throws SQLException;

    //删除标题

    public  boolean deleteTopic(Topic topic)throws SQLException;

    //按编号查询对应的新闻

    Public tring searchTopicNameById(Topic topic)throws SQLException;

    //

}

4.2TopicDAOImpl  对新闻主题接口的实现

package cn.news.dao.impl;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import org.junit.Test;

import cn.news.dao.BaseDAO;

import cn.news.dao.ITopicDAO;

import cn.news.entity.Topic;

public class TopicDAOImpl extends BaseDAO implements ITopicDAO{

/*@Test

public void testALl() throws SQLException{

List<Topic> list= getAllTopics();

for (Topic topic : list) {

System.out.println(topic.getTname());

}

}*/

//获取所有标题

public List<Topic> getAllTopics() throws SQLException {

List<Topic> list=new ArrayList<Topic>();

String sql="select * from topic";

getConection();

rs=executeQuery(sql);

while(rs.next()){

Topic topic=new Topic();

topic.setTid(rs.getInt("tid"));

topic.setTname(rs.getString("tname"));

list.add(topic);

}

closeResources();

return list;

}

@Test

public void TestAddTopic() throws SQLException{

Topic topic=new Topic();

topic.setTname("国内新闻");

boolean flag=addTopic(topic);

if (flag) {

System.out.println("添加成功");

}

}

//添加新闻

public boolean addTopic(Topic topic) throws SQLException {

getConection();

boolean flag=false;

String sqlString="insert into topic values(?,?)";

        int count=0;

        try {

count=exeuteUpdate(sqlString,topic.getTid(),topic.getTname());

if (count>0) {

flag=true;

}

} catch (Exception e) {

e.printStackTrace();

}

return flag;

}

@Test

public void TestRepeat() throws SQLException{

Topic topic=new Topic();

topic.setTname("国内新闻");

int count=isRepeat(topic);

if (count>0) {

System.out.println("重复!");

}

}

//是否存在重复的数据

public int isRepeat(Topic topic) throws SQLException {

getConection();

        String sqlString="select count(1)  from Topic where tname=?";

      int count=0;

     try {

    ResultSet rs = executeQuery(sqlString,topic.getTname());

    if(rs.next()){

    count=rs.getInt(1);

  }

   }catch(Exception e){

      e.printStackTrace();    

   }

        return count;

        }

/*@Test

public void TestUpdateTopic() throws SQLException{

Topic topic =new Topic();

topic.setTid(6);

topic.setTname("二奇");

int count=updateTopic(topic);

System.out.println(count);

}*/

//根据编号修改新闻名称

public int updateTopic(Topic topic) throws SQLException {

getConection();

 String sqlString="update topic set tname=? where tid=?";

       int count= exeuteUpdate(sqlString,topic.getTname(),topic.getTid());

       return count;

}

@Test

public void TestDeleteTopic() throws SQLException{

Topic topic=new Topic();

topic.setTid(0);

boolean flag= deleteTopic(topic);

if (flag) {

System.out.println("删除成功");

}else {

System.out.println("删除失败");

}

}

public boolean deleteTopic(Topic topic) throws SQLException {

getConection();

         String sqlString="delete from topic where tid=?";

         boolean flag=false;

        int count=exeuteUpdate(sqlString,topic.getTid());

        if (count>0) {

flag=true;

}

return flag;

}

@Test

public void searchTopicNameById() throws SQLException{

Topic topic =new Topic();

topic.setTid(1);

String nameString= searchTopicNameById(topic);

System.out.println("------------"+nameString);

}

public String searchTopicNameById(Topic topic) throws SQLException {

getConection();

String sqlString="select tname from topic where tid=?";

  ResultSet rs=executeQuery(sqlString,topic.getTid());

  String tempString=null ;

while (rs.next()) {

tempString=rs.getString("tname");

}

return tempString;    //返回为空对象的话,就说明数据库中没有这条数据

}

}

4.3 ITopicService

package cn.news.service;

import java.sql.SQLException;

import java.util.List;

import cn.news.entity.Topic;

public interface ITopicService {

 //查询所有的主题

     public List<Topic> getAllTopics() throws SQLException;

   //添加标题

     public boolean addTopic(Topic topic) throws SQLException;

     //区别是否有重复的标题

     public int isRepeat(Topic topic) throws SQLException;

     //更新标题信息

     public int updateTopic(Topic topic) throws SQLException;

     //删除标题

     public  boolean deleteTopic(Topic topic)throws SQLException;

     //按编号查询对应的新闻

     public  String searchTopicNameById(Topic topic)throws SQLException;

}

4.4TopicServiceImpl

package cn.news.service.impl;

import java.sql.SQLException;

import java.util.List;

import cn.news.dao.ITopicDAO;

import cn.news.dao.impl.TopicDAOImpl;

import cn.news.entity.Topic;

import cn.news.service.ITopicService;

public class TopicServiceImpl implements ITopicService{

//植入dao接口

private ITopicDAO dao=new TopicDAOImpl();

public List<Topic> getAllTopics() throws SQLException {

return dao.getAllTopics();

}

public boolean addTopic(Topic topic) throws SQLException {

return dao.addTopic(topic);

}

public int isRepeat(Topic topic) throws SQLException {

return dao.isRepeat(topic);

}

public int updateTopic(Topic topic) throws SQLException {

return dao.updateTopic(topic);

}

public boolean deleteTopic(Topic topic) throws SQLException {

return dao.deleteTopic(topic);

}

public String searchTopicNameById(Topic topic) throws SQLException {

return dao.searchTopicNameById(topic);

}

}

5.1UserInfoDAO  定义用户接口

package cn.news.dao;

import java.sql.SQLException;

import cn.news.entity.UserInfo;

//用户接口

public interface IUserInfoDAO {

   //登录

public boolean isLogin(UserInfo info) throws SQLException;

}

5.2UserInfoDAOImpl 对用户接口的实现

package cn.news.dao.impl;

import java.sql.SQLException;

import org.junit.Test;

import cn.news.dao.BaseDAO;

import cn.news.dao.IUserInfoDAO;

import cn.news.entity.UserInfo;

public class UserInfoDAOImpl extends BaseDAO implements IUserInfoDAO {

@Test

public void loginTest() throws SQLException{

UserInfo info =new UserInfo();

info.setUname("admin2");

info.setUpwd("admin");

 boolean flag= isLogin(info);

 if (flag) {

System.out.println("login success!");

}

}

public boolean isLogin(UserInfo info) throws SQLException {

boolean flag=false;

String sql="select count(1) as mycount from userinfo where uname=? and upwd=?";

Object[] paras={info.getUname(),info.getUpwd()};

getConection();

rs=executeQuery(sql,paras);

if (rs.next()) {

int count = rs.getInt("mycount");

if (count>0) {

//登录成功

flag=true;

}

}

closeResources();

return flag;

}

}

5.3  IUserInfoService  

package cn.news.service;

import java.sql.SQLException;

import cn.news.entity.UserInfo;

public interface IUserInfoService {

  //登录

public boolean isLogin(UserInfo info) throws SQLException;

}

5.4UserinfoServiceImpl

package cn.news.service.impl;

import java.sql.SQLException;

import cn.news.dao.IUserInfoDAO;

import cn.news.dao.impl.UserInfoDAOImpl;

import cn.news.entity.UserInfo;

import cn.news.service.IUserInfoService;

public class UserInfoServiceImpl implements IUserInfoService{

//植入dao接口

private IUserInfoDAO dao=new UserInfoDAOImpl();

public boolean isLogin(UserInfo info) throws SQLException {

return dao.isLogin(info);

}

}

6.servlet

6.1 UserInfoServlet

package cn.news.serlvet;

import java.io.IOException;

import java.io.PrintWriter;

import java.sql.SQLException;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import cn.news.dao.impl.NewsInfoDAOImpl;

import cn.news.dao.impl.TopicDAOImpl;

import cn.news.entity.NewsInfo;

import cn.news.entity.Page;

import cn.news.entity.Topic;

import cn.news.entity.UserInfo;

import cn.news.service.INewsInfoService;

import cn.news.service.IUserInfoService;

import cn.news.service.impl.NewsInfoServiceImpl;

import cn.news.service.impl.UserInfoServiceImpl;

public class UserInfoServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost( request,  response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//准备新闻数据

INewsInfoService newsservice=new NewsInfoServiceImpl();

Page page=new Page();

//页大小

int pagesize=5;

page.setPageSize(pagesize);

//3.总记录数

int count=0;

try {

count = newsservice.getCount();

} catch (SQLException e1) {

e1.printStackTrace();

}

page.setTotalrecords(count);

             String tempString= request.getParameter("tid");

int sum=0;

if (tempString!=null) {

sum=Integer.parseInt(tempString.trim());

}

System.out.println(count);

int pageCount=0;

  if (sum!=0) {    //说明选择了类型

try {

count=  newsservice.getCountById(sum);

} catch (SQLException e) {

e.printStackTrace();

}

  }else {

//4.总页数

  try {

count=newsservice.getCount();

} catch (SQLException e) {

e.printStackTrace();

}

  }

  //总页数

  pageCount=count%pagesize==0 ? count/pagesize : count/pagesize+1;

  System.out.println(pagesize);

  System.out.println("##############总页数"+pageCount);

page.setTotalpages(pageCount);

//2.当前是第几页

int pageIndex=1;

String pagesIndex =request.getParameter("pageIndex");

try {

if (request.getParameter("pageIndex")!=null) {

pageIndex=Integer.parseInt(pagesIndex);

System.out.println("当前index"+pageIndex);

}

if (pageIndex<1) {

pageIndex=1;

}else if (pageIndex>pageCount) {

pageIndex=pageCount;

}

} catch (Exception e) {

pageIndex=1;

}

 System.out.println("当前页:"+pageIndex);

page.setPageIndex(pageIndex);

//3.给page中的List集合赋值

     //新闻类型下的分页

           TopicDAOImpl impl=new TopicDAOImpl();

           NewsInfoDAOImpl news=new NewsInfoDAOImpl();

           List<NewsInfo> list=null;

           System.out.println("是否选择新闻类型:"+sum);

       if (sum!=0) {   //点击选择新闻类型的时候

        System.out.println("if");

        try {

        request.setAttribute("tid",sum);

        list=news.getOnePageData(sum,page.getPageIndex(),page.getPageSize());

System.out.println(list.size());

        } catch (SQLException e) {

e.printStackTrace();

}

}else{

System.out.println("else");

try {

list = newsservice.getOnePageData(page.getPageIndex(), page.getPageSize());

} catch (SQLException e) {

e.printStackTrace();

}

}

       page.setList(list);

//放入request作用域

request.setAttribute("onePage",page);    

  //logout

String action=request.getParameter("action");

if ("logout".equals(action)) {

request.getSession().removeAttribute("uname");

//2.跳转到index

/*response.sendRedirect("/NewsManagerSystem/index.jsp");*/

request.getRequestDispatcher("/index.jsp").forward(request, response);

}else if("login".equals(action)) {

//code write here

//1.解决乱码

request.setCharacterEncoding("utf-8");

//2.解析前台传递的表单数据

String uname=request.getParameter("uname");

String upwd=request.getParameter("upwd");

//拼接成一个用户对象

UserInfo info=new UserInfo();

info.setUname(uname);

info.setUpwd(upwd);

IUserInfoService service=new UserInfoServiceImpl();

try {

boolean flag = service.isLogin(info);

if (flag) {  //登录成功

list=newsservice.getOnePageData(pageIndex, pagesize);

 page.setList(list);

 request.setAttribute("onePage",page);

//3.记录session

request.getSession().setAttribute("uname",uname);

//4.转发或者重定向   转发不需要加项目名称

request.getRequestDispatcher("/newspages/admin.jsp").forward(request, response);

}else {

List<Topic> topiclist=null;

try {

 topiclist= impl.getAllTopics();

} catch (SQLException e) {

e.printStackTrace();

}

 request.setAttribute("list",topiclist);

list=newsservice.getOnePageData(pageIndex, pagesize);

 page.setList(list);

 request.setAttribute("onePage",page);

request.getRequestDispatcher("/index.jsp").forward(request, response);

}

} catch (SQLException e) {

e.printStackTrace();

}

}else {    //所有的新闻类型

       List<Topic> topiclist=null;

try {

 topiclist= impl.getAllTopics();

} catch (SQLException e) {

e.printStackTrace();

}

 request.setAttribute("list",topiclist);

//第一次访问首页

request.getRequestDispatcher("/index.jsp").forward(request, response);

}

}

}