项目简介

主要功能:管理员登录,发布新闻,根据标题搜索新闻,分页,编辑,删除

普通用户:登录,注册

首页:查看新闻列表,新闻详情,分页,根据标题搜索新闻,用户管理,根据用户名搜索,删除用户,用户分页

功能简单,涉及最基本的增删改查和分页,以及ajax请求和后台处理,非常适合新手学习

技术:ssm+jsp+bootatrap+jq+css+js+pagehelper

先来看看截图吧(原文附下载源码链接)



管理员截图




1.表设计,主要是三张表,用户表,管理员表和新闻表

2.项目框架搭建

需要的jar包

项目结构:

2.1配置文件

jdbc.properties

spring-mvc.xml

spring-mybatis.xml

3.功能实现

3.1普通用户的注册功能

主要的前端代码

 <form onsubmit="return sub(this);" role="form" method="post"  action="${ctx }/jsp/user/reg" style="margin: 10px 10px;"><div class="form-group"><label for="name">用户名</label><input type="text" name="uname" required="required" class="form-control"  placeholder="请输入名称"></div><div class="form-group"><label for="name">密码</label><input type="password" name="upass" required="required"  class="form-control"  placeholder="请输入名称"></div><div class="form-group"><label for="name">确认密码</label><input type="password" name="pass2" required="required"  class="form-control"  placeholder="请输入名称"></div><button type="submit" class="btn btn-default">注册</button> <a href="${ctx }/jsp/user/tologin" style="margin-left: 20px;">已有账号?登录</a></form>

form的ajax提交

 function sub(v){ //利用ajax发送文字到reg,返回信息$.ajax({type:"post",url:$(v).attr('action'),dataType:"json",data:$(v).serialize(),success:function(data){ if(data.status==1){window.location="${ctx}/jsp/newsdetail/page";}else{alert(data.msg);}},error:function(){alert('请求失败,请检查网络');}})return false;}

controller

@ResponseBody@RequestMapping("/reg")public Object reg(HttpServletRequest request, HttpServletResponse response,HttpSession session,Model model,User u,String pass2) throws IOException {Map m=new HashMap();if(u.getUname()==null||u.getUname().isEmpty()){m.put("status", 0);m.put("msg","请输入用户名");return m;}if(u.getUpass()==null||u.getUpass().isEmpty()){m.put("status", 0);m.put("msg","请输入密码");return m;}if(!u.getUpass().equals(pass2)){m.put("status", 0);m.put("msg","密码不一致");return m;}User uc=new User();uc.setUname(u.getUname());List<User> uli=userService.queryList(uc);if(uli!=null&&uli.size()>0){m.put("status", 0);m.put("msg","注册失败,用户名已存在");return m;}else{userService.add(u);session.setAttribute("userU", u);m.put("status", 1);m.put("msg","注册成功");return m;}}

service层主要是调用dao层,这里不细写了,直接贴代码

package s.jf3q.com.service;import java.util.List;import s.jf3q.com.model.User;public interface   UserService   {public void add(User u);public List<User>  queryList(User u);public User queryById(Integer id);public void update(User u);public void delete(Integer id);}
package s.jf3q.com.service.imp;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Service;import s.jf3q.com.dao.UserMapper;
import s.jf3q.com.model.User;
import s.jf3q.com.service.UserService;/***  @author jf3q.com**/
@Service("userService")
public class   UserServiceImpl   implements UserService{@Resourceprivate UserMapper userMapper;@Overridepublic void add(User u) {userMapper.add(u);}@Overridepublic List<User> queryList(User u) {// TODO Auto-generated method stubreturn userMapper.queryList(u);}@Overridepublic User queryById(Integer id) {// TODO Auto-generated method stubreturn userMapper.queryById(id);}@Overridepublic void update(User u) {// TODO Auto-generated method stubuserMapper.update(u);}@Overridepublic void delete(Integer id) {// TODO Auto-generated method stubuserMapper.delete(id);}}
package s.jf3q.com.dao;import java.util.List;import s.jf3q.com.model.User;public interface   UserMapper  {public void add(User u);public List<User>  queryList(User u);public User queryById(Integer id);public void update(User u);public void delete(Integer id);}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="s.jf3q.com.dao.UserMapper"><sql id="field">uid,uname,  upass </sql><insert id="add" parameterType="s.jf3q.com.model.User" useGeneratedKeys="true" keyProperty="id">insert into user (uname,  upass)values(#{uname},#{upass})</insert><select id="queryList" resultType="s.jf3q.com.model.User" parameterType="s.jf3q.com.model.User">select<include refid="field"></include>from user where 1=1<if test="uname !=null and uname != ''"> and uname = #{uname} </if><if test="upass !=null and upass != '' "> and upass = #{upass} </if></select><select id="queryById" resultType="s.jf3q.com.model.User"parameterType="java.lang.Integer">select<include refid="field"></include>from user where uid=#{0}</select><update id="update" parameterType="s.jf3q.com.model.User">update user<trim prefix="set" suffixOverrides=","><if test="uname !=null and uname != ''">uname=#{uname},</if><if test="upass !=null  and upass != '' ">upass=#{upass},</if></trim>where  1=1 <if test="uid !=null and uid != ''"> and uid=#{uid}</if></update><delete id="delete" parameterType="java.lang.Integer">delete from user where uid = #{1}</delete></mapper>

这个就是用户注册的一个流程,其他的都差不多,这里不一一重复了,接下来主要是看新闻管理的实现

3.2新闻管理功能的实现

新闻管理主要是由管理员来管理新闻的添加,编辑,删除,分页以及和按照标题搜索

添加新闻的页面,这里是form表单提交

<form role="form" action="${ctx }/admin/newsdetail/save" method="post"><input type="hidden" name="id" value="${o.id }"><input type="hidden" name="pageNo" value="${pageNo }"><div class="form-group"><label for="name">标题</label><input type="text" name="title" value="${o.title }" class="form-control" maxlength="50" required="required"   placeholder="请输入标题"></div><div class="form-group"><label for="name">内容</label><textarea name="content"   class="form-control" rows="10"   maxlength="5000000" required="required"  placeholder="请输入内容">${o.content }</textarea></div><div class="form-group"><label for="name">作者</label><input type="text" name="author" value="${o.author }"  class="form-control" maxlength="30"  required="required"  placeholder="请输入名称"></div> <div class="form-group"><label for="name">发布时间</label><input type="date" name="time" value="${o.time }"  class="form-control"  required="required"  placeholder="请输入名称"></div>  <button type="submit" class="btn btn-default">提交</button></form>

controller

/** 保存新闻* */@RequestMapping("/save")public String save(@RequestParam(value="pageNo",defaultValue="1")int pageNo,Newsdetail o,HttpServletRequest request, HttpSession session,Model model) throws IOException {/*根据id判断用户时编辑还是添加* */if(o.getId()!=null){newsdetailService.update(o);}else{newsdetailService.add(o);}return "redirect:/admin/newsdetail/page?pageNo="+pageNo;  }

这里不再写service和dao层了,接下来说一下分页和按标题搜索的新闻管理功能

这些数据是从contrller里获取的,分页主要是用pagehelper实现的,代码如下:

/*
* 新闻管理列表,分页
* */

@RequestMapping("/page")public String page(@RequestParam(value="pageNo",defaultValue="1")int pageNo,HttpServletRequest request, HttpServletResponse response,HttpSession session,Model model,Newsdetail o) throws IOException {PageHelper.startPage(pageNo,Sys.Common.pageSize," id desc ");List<Newsdetail> li=newsdetailService.queryList(o);PageInfo pageInfo = new  PageInfo(li,Sys.Common.pageSize);model.addAttribute("pageInfo", pageInfo);model.addAttribute("o", o);return Sys.Common.jsp + "/admin_news_page";}

页面如下:

搜索框

<form class="form-inline" action="${ctx }/admin/newsdetail/page" method="post" role="form"><div class="form-group"><input type="text" name="title" value="${o.title }" class="form-control" placeholder="请输入标题"></div><button type="submit" class="btn btn-warning">搜索</button><a class="btn btn-success" role="button" href="${ctx }/admin/newsdetail/toedit">发布新闻</a></form>

新闻列表

<c:forEach items="${pageInfo.list }" var="t"><div class="media"><div class="media-body"><h4 class="media-heading">${t.title }</h4><p> ${fn:substring(t.content, 0, 100)}</p><p><span>发布日期:${t.time }</span><a  href="javascript:;" data-href="${ctx }/admin/newsdetail/del?id=${t.id }&pageNo=${pageInfo.pageNum}" class="btn btn-danger pull-right del" role="button">删除</a><a class="btn btn-success pull-right" role="button" href="${ctx }/admin/newsdetail/toedit?id=${t.id }&pageNo=${pageInfo.pageNum}">编辑</a><a class="btn btn-primary pull-right " role="button" target="_blank" href="${ctx }/jsp/newsdetail/info?id=${t.id}">查看详情</a></p></div></div><hr></c:forEach>

分页

<form   action="${ctx }/admin/newsdetail/page" method="post" style="text-align: center;"><input type="hidden" name="title" value="${o.title }" ><%@ include file="page.jsp"%></form>

主要看看mapper的查询语句

<select id="queryList" resultType="s.jf3q.com.model.Newsdetail" parameterType="s.jf3q.com.model.Newsdetail">select<include refid="field"></include>from newsdetail where 1=1<if test="title !=null and title != ''"> and title like concat('%',#{title},'%') </if></select>

如果没有传入新闻标题则查询所有的新闻,如果传入标题,则进行模糊查询。其他的功能都一样,这里不一一赘述了

欢迎进行技术探讨,扣扣1913284695。

java开发的简单新闻系统相关推荐

  1. Java开发的流量分析系统

    Java开发的流量分析系统 一,此系统是网上搜的潭州学院的Tony老师的视频学习的,用于实时分析一个网站的访问量的简单的例子,主要功能是用户登录,展示在线人数以及信息.其中细致的讲解了单例模式,Vec ...

  2. java开发一个简单的通讯录

    java开发一个简单的通讯录 ArrayList的综合应用 import java.util.*; public class ContactNote{static Scanner sc=new Sca ...

  3. 强!一个Java开发的人脸识别系统,获取人脸68个关键点(附源码)

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 关注公众号后台回复pay或mall获取实战项目资料视频 点击此链接:多套SpringCloud/SpringBoot实 ...

  4. JAVA小程序简单学籍系统参考代码,登陆小程序,Jtree //Jtree,JDBC,Jframe

    JAVA小程序简单学籍系统//Jtree,JDBC,Jframe 我们可以先在JAVA写一个类打开数据库获取连接 package sql; import java.sql.Connection; im ...

  5. oa java开发_[原创]OA系统买JAVA开发的还是PHP开发?

    [原创]OA系统买JAVA开发的还是PHP开发? 买OA办公系统的时候,发现OA的开发语言有很多种,有些是PHP的.有些是JAVA的等等.而对于不同的开发语言对OA系统的应用效果有什么影响,究竟哪一种 ...

  6. cc java开发环境搭建_Windows系统下java开发环境搭建

    总的来说,开发环境是程序员工作的基础,没了他,IT工作就没得开展了.话不多说,今天提供的教程是Windows系统下Java开发环境的搭建,具体如下 1.下载并安装JDK(JAVA Developmen ...

  7. cpu java poi 导出_让 Java 开发更简单,提高工作效率 | Gitee 项目推荐

    1.项目名称:基于 Spring Boot 的权限管理系统 项目简介:Good 权限管理系统是作者学习 springBoot 时基于 springBoot 开发的一套轻量级的权限系统,其目的是形成一套 ...

  8. 用java开发一个简单的安卓程序,Android NDK开发简单程序分享(Hello Word!)

    在之前的博客中已经为大家介绍了,如何在win环境下配置DNK程序,本篇我将带大家实现一个简单的Hello jni程序,让大家真正感受一下NDK开发的魅力.这里我们选择使用C+JAVA开发Android ...

  9. 微信投票系统java开发_微信投票系统 v3.0

    微信投票系统简介 微信投票系统软件是一个以php+MySQL进行开发的微信投票系统. 吸粉神器,微信图文投票系统,强大的微信投票系统,防作弊的微信投票系统. 微信投票系统安装步骤: 解压压缩包到根目录 ...

最新文章

  1. 土壤学报:张福锁院士等提出根际生命共同体新概念
  2. cocos2d-x 帧动画学习
  3. PMCAFF微分享 | 供应链金融套利套汇介绍
  4. 库的标准实现和私有实现的选择
  5. php视频流传输,视频流传输协议RTP/RTCP/RTSP/HTTP的区别
  6. 天池入门赛--蒸汽预测
  7. 《Spring Recipes》第二章笔记:Creating Beans by Invokin...
  8. 在SpringBoot中优雅的实现定时任务
  9. swift 将图片资源打包成Bundle
  10. 登陆页面html5代码qq,HTML5QQ登录的一篇代码分享
  11. WINDOWS XP下驱动开发环境设置(DDK+VC6.0)
  12. java需要知道哪些英语单词_70个学习JAVA必背的英语单词,了解下
  13. couldn't connect to the device trackpad
  14. 共享电单车重蹈覆辙:新车投放半年就进“坟场”
  15. html模板导出pdf文件
  16. Java工程师职业怎么规划?
  17. Google App Engine + JDO + Spring MVC,CRUD示例
  18. redis的daemonize设置为yes和no有啥区别呀,为啥我两个都试了之后的效果不是像网上说的那样,设置成No的话,redis也会一直运行呀
  19. Android和OpenCV的学习mat运算/颜色转换
  20. “0基础考生考前三小时突破《申论》80分气哭学霸”——公文题(宣传类+评论类)

热门文章

  1. Cf Round #817 D. Line(贪心)
  2. 悲剧!中小企业惨痛的外训经历!
  3. 《上海市市级企业技术中心申请报告》编写提纲
  4. angularJS概念理解三:控制器
  5. idea快捷键-康师傅
  6. 服务器散热器性能,服务器散热器
  7. 一文详解自动驾驶数据闭环 | 大数据管理!
  8. 将后台数据存放入Application域中
  9. 使用JSZip与FileSaver批量下载文件
  10. 重定向(redirect)和转发(forword)区别