jsp实现在线聊天系统

在线聊天系统

大概介绍

  • 就是一个在线聊天平台。

功能

  • 用户登陆、注册
  • 聊天室的创建、查看、加入
  • 聊天信息的查询、发布
  • 聊天室人数限制
  • 聊天上线提示和下线提示

涉及相关技术

  • 表单开发
  • 内置对象
  • jdbc-odbc连接数据库
  • servlet
  • javabean
  • 过滤器
  • ajax
  • 验证码
  • ……有待优化

不足

  • 很丑
  • 数据库连接部分conn的反复定义可以考虑代码进一步精简化
  • 还有很多待发现待改进的地方

部分代码

登陆过滤器

  • 登陆保护,未登陆无法进入内部页面,自动跳转到登陆界面
package filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebFilter(filterName = "loginFilter")
public class loginFilter implements Filter {
    String[] notneed = new String[]{"/login.jsp","/create.jsp","/login","/create","/validate.jsp"};
    public void destroy() {
    }

    public boolean need(String uri){
        for(String that:notneed){
            if(that.equals(uri)){
                return false;
            }
        }
        return true;
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) resp;
        HttpSession session = request.getSession();
        String uri = request.getRequestURI();
        boolean need = need(uri);
        if(!need){
            chain.doFilter(req,resp);
        }else{
            if(session.getAttribute("nickname")!=null&&session!=null){
                chain.doFilter(req,resp);
            }else{
                String resqtype = request.getHeader("X-Requested-With");
                if (resqtype!=null && "XMLHttpRequest".equals(resqtype)){
                    chain.doFilter(req,resp);
                }else{
                    response.sendRedirect("login.jsp");
                }
            }
        }
    }

    public void init(FilterConfig config) throws ServletException {

    }

}

加入聊天室过滤器

  • 进行聊天室人数限制
package filter;

import Dao.ChatroomDao;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebFilter(filterName = "attendFilter")
public class attendFilter implements Filter {
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        ChatroomDao chatroomDao = new ChatroomDao();
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) resp;
        HttpSession session = request.getSession();
        Integer[] that = new Integer[2];
        try{
            that = chatroomDao.getroomnumber(session.getAttribute("room").toString());
        }catch (Exception e){
            e.printStackTrace();
        }
        if(that[0]>=that[1]+1){
            chain.doFilter(req,resp);
        }else{
            response.sendRedirect("chatrooms.jsp");
        }
    }

    public void init(FilterConfig config) throws ServletException {

    }

}

效果展示

登陆界面
聊天室界面
聊天室内部

查看全部代码

  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简易聊天室本次实验的目的是通过以下题目掌握JSP内置对象,包括:request,response,session,application等。 (1)制作简易聊天室,能够实现简单的页面聊天功能。 (2)制作网页计数器,要求相同的窗口内刷新页面访问次数并不增加,并且用图片来显数字。1、 熟悉request、response、session、application、out等内置对象; 2、 选择制作网页计数器程序需准备数字图片;1、进入jsp子目录,编写简易聊天室JSP程序,聊天室的需要实现的基本功能:输入昵称、聊天。 2.根据功能编写页面代码。二、网页计算器 利用内置对象application <html> <head> <base href="<%=basePath%>"> <title>My JSP 'Counter.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> 您是第位访问者! </body> </html> 简易聊天室本次实验的目的是通过以下题目掌握JSP内置对象,包括:request,response,session,application等。 (1)制作简易聊天室,能够实现简单的页面聊天功能。 (2)制作网页计数器,要求相同的窗口内刷新页面访问次数并不增加,并且用图片来显数字。1、 熟悉request、response、session、application、out等内置对象; 2、 选择制作网页计数器程序需准备数字图片;1、进入jsp子目录,编写简易聊天室JSP程序,聊

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值