基于servlet+jsp的新闻发布系统

1.介绍

本系统是基于javaweb+servlet+jsp实现的一个简单的额新闻发布系统,主要分为两个板块,用户管理和新闻管理,用户的增删改查和新闻的增删改查。主要分为两个用户,普通用户只能浏览新闻,管理员可以管理用户和新闻

2.数据库设计

1.用户表
CREATE TABLE `user`  (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名',
  `password` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码',
  `gender` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别',
  `profession` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '职业',
  `favor` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '爱好',
  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
  `join_date` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '注册日期',
  `last_login_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '最近登陆时间',
  `role` varchar(20) COMMENT '权限',
  `status` varchar(20) COMMENT '状态',
  PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
2.新闻表
CREATE TABLE `news`  (
  `news_id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '标题',
  `author` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '作者/来源',
  `state` varchar(10) NULL DEFAULT 1 COMMENT '状态。0-下架,1-上架。',
  `category` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '新闻类别',
  `cover_url` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '新闻封面图片url',
  `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '新闻正文',
  `view_count` int(10) NULL DEFAULT NULL COMMENT '点击次数',
  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '发布日期',
  `updateTime` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',
  PRIMARY KEY (`news_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;

3.部分系统代码

1.主界面

2.登录界面和登录servlet

package servlet;

import dao.newsDao;
import dao.userDao;
import user.News;
import user.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;

@WebServlet("/login.do")
public class loginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        userDao userdao=new userDao();
        newsDao newsdao=new newsDao();

        System.out.println("login");

        User user = userdao.findByUsername(username,password);
        if(user!=null)
        {
            HttpSession session = request.getSession();
            System.out.println("找到这个人!");
            session.setAttribute("username", username);

            String role=user.getRole();
            String getm="管理员";

            System.out.println(role);
            System.out.println("11111");

            if(getm.equals(role))
            {
                System.out.println("登录的是管理员");
                response.sendRedirect(request.getContextPath()+"/login/loginSuccessManger.jsp");
            }
            else {
                List<News> news=newsdao.queryNewsList();
                request.setAttribute("newsList",news);
                // 重定向到登录成功页面
                response.sendRedirect( request.getContextPath()+"/login/loginSuccess.jsp");
            }
        }
        else{
            System.out.println("22222");
            // 重定向到登录失败页面
            response.sendRedirect( "login/loginFill.jsp");
        }

    }
}
3.注册界面和注册servlet

package servlet;

import dao.userDao;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

@WebServlet("/register.do")
public class registerServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");//读取中文信息时不会出错。
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String gender = req.getParameter("gender");
        String profession = req.getParameter("profession");
        String favor = req.getParameter("favor");
        String description=req.getParameter("description");

        String role = "一般用户";
        String status = "可用";

        System.out.println("registerServlet");

        userDao userdao=new userDao();
        if(userdao.insertUser(username,password,gender,profession,favor,description,role,status))
        {
            // 重定向到登录成功页面
            response.sendRedirect( "admin/login.jsp");
        }
        else {
            // 重定向到登录失败页面
            response.sendRedirect( "login/loginFill.jsp");
        }
    }
}
4.监听器

如果没有登录,是不能访问用户列表等界面的

package filter;

import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebFilter("/login/*")
public class loginFillter extends HttpFilter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("过滤器初始化....");
    }

    @Override
    protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
        if(request.getSession().getAttribute("username")!=null)
        {
            chain.doFilter(request,response);
        }
        else{
            response.sendError(403);
            //response.sendRedirect( "admin/login.jsp");
        }
    }

    @Override
    public void destroy() {
        System.out.println("过滤器被销毁了....");
    }
}
5.完整项目

https://github.com/xjkfg/-.git

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于servlet jsp的点餐系统是一种使用Java技术开发的餐饮服务管理系统,在Web应用中通过servletJSP页面来实现用户点餐、订单管理等功能。 该系统包括了用户界面、管理员界面和数据库三个主要模块。用户通过浏览器访问点餐系统的网站,选择菜品并生成订单。管理员通过登录后台系统,可以管理餐厅菜单,处理订单、管理餐桌等。数据库负责存储系统中的数据,包括菜品信息、用户信息、订单信息等。 在点餐系统中,用户可以浏览菜单并选择想要点的菜品,系统会根据用户的选择自动生成订单,并计算总价。用户可以选择在线支付或到店支付。在管理员界面,管理员可以方便地管理餐厅菜单,添加、删除或修改菜品信息。管理员还可以查看订单信息,处理订单状态,并对用户评价进行管理。 在点餐系统的实现中,servlet负责处理用户的请求,从数据库查询相关信息,然后动态生成并返回相应的网页内容。而JSP则负责展示网页内容,通过Java代码嵌入实现与数据库的交互。 此外,点餐系统还可以集成其他功能,如用户注册、登录认证、优惠券、会员积分等。可以提供更好的用户体验和营销活动。 总之,基于servlet jsp的点餐系统在餐饮行业中具有很大的推广和应用价值,它能够提高餐厅的服务效率和用户体验,实现餐厅与顾客之间的无缝连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值