符合MVC模式的javaWEB学生信息管理系统(3)

一.分页处理 (5.在线人数统计 8.分页处理  9.注销登陆 )

SeesionContext对象即jsp页面的applicationScope对象,是所有session会话所共享,我们通过建立对session声明周期的listener,绑定SeesionContext进行计数,就可以实现统计在线人数.
Tomcat 8.5也不需要再在web.xml中进行配置,直接在eclipse中建立listener文件,勾选属性就可以了
在这里插入图片描述

  • Session对话监听 实现5
@WebListener
public class userSessionListener implements HttpSessionListener {

    /**
     * Default constructor. 
     */
    public userSessionListener() {
        // TODO Auto-generated constructor stub
    }

	/**
     * @see HttpSessionListener#sessionCreated(HttpSessionEvent)
     */
    public void sessionCreated(HttpSessionEvent se)  { 
         //1.创建ServletContext对象
    	 //2.在对象ServletContext中绑定计数,seesion建立一次加一
    	//3.绑定的元素在EL表达式中体现在applicationScope
    	System.out.println("创建了");
    	 ServletContext sc=se.getSession().getServletContext();
    	 se.getSession().setAttribute("Username","");
         Object count=sc.getAttribute("count");
         if(count==null)
         {
        	 sc.setAttribute("count",1);
         }
         else {
			sc.setAttribute("count",(Integer)count+1);
		}
    }

	/**
     * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)
     */
    public void sessionDestroyed(HttpSessionEvent se)  
    { 
    	System.out.println("销毁了一个");
    	ServletContext sc=se.getSession().getServletContext();
        Object count=sc.getAttribute("count");
        if(count==null)
        {
       	   
        }
        else {
        	if((Integer)count>=1)
			sc.setAttribute("count",(Integer)count-1);
		}
    }
	
}

  • 分页处理

关键在于sql语句String sql=“select *from teacher limit ?,?”;

request.setCharacterEncoding("UTF-8");
	    int pageSize=13;
	    int lineCount;
	    int pageCount;
	    int pageNow=1;
        try 
        {
        	if(request.getParameter("pageNow")!=null)
        	{
        		pageNow=Integer.parseInt((String)request.getParameter("pageNow"));
        	
        	}
        	else
        	pageNow=1;
        	System.out.println(pageNow);
        	ArrayList<Teacher> teachers=null;
        	if (flag==0) 
        	{	
			lineCount=teacherDao.count();
			pageCount=lineCount%pageSize==0?lineCount/pageSize:lineCount/pageSize+1;
			teachers=teacherDao.findteacher(pageSize*(pageNow-1), pageSize);
        	}
        	else 
        	{
        	teachers=teacherDao.fuzzy_Search(request.getParameter("content")+"",0,15);
			pageCount=1;	
			}
			request.setAttribute("teachers",teachers);
			request.setAttribute("pageCount",pageCount);
			request.setAttribute("pageNow",pageNow);
  • 注销登陆
  • 调用Session,validate方法,清除session信息,使用户进入未登陆状态 点击logOut后登陆状态已经消失,进入登陆界面
    在这里插入图片描述
@WebServlet("/Logout")
public class Logout extends HttpServlet {
	private static final long serialVersionUID = 1L;
    public Logout() {
        super();
        // TODO Auto-generated constructor stub
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		request.getSession().invalidate();  //清除session会话
		response.sendRedirect("login.jsp");
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

二.对404 500页面异常的友好处理

  • commons/error.jsp界面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isErrorPage="true"%>

<body>
   <%
        response.setStatus(200);     %>
     很抱歉!你访问的页面不存在......  </body>
  • 再在web.xml中配置
  <error-page>
        <error-code>404</error-code>
        <location>/commons/error.jsp</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/commons/error.jsp</location>
    </error-page>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值