java里面如何在用户登录管理页面时判断用户是不是登录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里面如何在用户登录管理页面时判断用户是不是登录相关的知识,希望对你有一定的参考价值。

已经登录的话可以进行下一步操作,没有登录的话就跳转到登录页。是否是在管理页面获取用户的登录名看是否存在,然后在判断跳转到哪??可不可以写一下关键的代码?谢谢各位大神了!!!!

给你详细讲一下。

比如系统有个登陆页面(login.jsp):
name:_________
password:____________
(登陆按钮)

你按下登陆按钮,就根据name和password去数据库里面查,如果判断有此用户并且密码正确,就设置一个session的键对应的值,键名字自己取,统一即可,比如"userInfo",代码就是servlet的doPost里面
HttpSession session = request.getSession();
Hashtable userInfo = new Hashtable();
userInfo.setAttribute("userName", request.getParameter("userName");
userInfo.setAttribute("passWords", Util.toSecret( request.getParameter("passWords)); //密码最好加密
session.setAttribute("userInfo", userInfo);
session是在一定时期(超时时间内)一直存在的,这段时间内你可以随时判断用户是否合法,否则就退回登陆页面。

在任何除了登陆页面以外的页面访问,只需判断有没有这个键值,没就到登陆页面,否则进正常页面。(最好写在servlet中,让servlet当页面控制器)代码如下:
if ( session.getAttribute("userInfo")==null )
response.sendRedirect(request.getServletContext.getPath() + "/login.jsp");
else
request.getRequestDispatcher("/正常页面.jsp").forward(request,response);
参考技术A 在用户登陆的时候,后台写上:
User user = new User(xxxxxx); //建立user对象
request.getSession().setAttribute("user", user); // 保存到session

在前台,你加上:
User user = session.getAttribute("user");
if(user==null)
response.sendRedirect("login.jsp");
else
// 读取 user信息
参考技术B 用户登录后把登录信息存入session,然后可以在web.xml中的filter或者validate中去判断~ 参考技术C 你好 可以写一个拦截器, 每次用户请求都将进行拦截,判断是否登录,如果没有登录将返回登录页.这种拦截也是一种很好的解决方案.我们一般都把用户放入session中以便作一些操作,我有一个简单的拦截器例子,当然使用之前是要通过web.xml进行参数配置的 给你作下参考,
package com.manage.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

/**
* @author RiesLing
*
*/
public class CheckLoginFilter implements Filter
public static boolean isContains(String container, String[] regx)
boolean result = false;
for (int i = 0; i < regx.length; i++)
if (container.indexOf(regx[i]) != -1)
return true;


return result;

public FilterConfig config;
public void setFilterConfig(FilterConfig config)
this.config = config;

public FilterConfig getFilterConfig()
return config;

@SuppressWarnings("static-access")
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException

HttpServletRequest httpreq = (HttpServletRequest) request;
@SuppressWarnings("unused")
HttpServletResponse httpres = (HttpServletResponse) response;
HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper(
(HttpServletResponse) response);
String logonStrings = config.getInitParameter("logonStrings");
String includeStrings = config.getInitParameter("includeStrings");
String redirectPath = httpreq.getContextPath()
+ config.getInitParameter("redirectPath");
String disabletestfilter = config.getInitParameter("disabletestfilter");

if (disabletestfilter.toUpperCase().equals("Y"))
chain.doFilter(request, response);
return;

String[] logonList = logonStrings.split(";");
String[] includeList = includeStrings.split(";");
Object user = httpreq.getSession().getAttribute("userSession");
if (user == null)
if (!this.isContains(httpreq.getRequestURI(), includeList))
chain.doFilter(request, response);
return;

if (this.isContains(httpreq.getRequestURI(), logonList))
chain.doFilter(request, response);
return;

wrapper.sendRedirect(redirectPath);

else
chain.doFilter(request, response);


public void destroy()
this.config = null;

public void init(FilterConfig filterConfig) throws ServletException
this.config = filterConfig;

参考技术D 设置个session 再判断session是否为空追问

能不能写一下关键的几句代码,session理解的不是很透,谢谢!!!!

追答

设置session.setAttribute( "Username", "username的值 ");
获取session.getAttribute( "Username");

jsp不用框架,如何实现用户登陆后显示用户信息,隐藏登陆框

比如一个网页的首页,用户如果没有登录,显示的是登录框,登录之后就显示用户的基本信息,如何实现的?
我看到网上好多貌似用的web框架,Struts之类的,但是我没学过。
我也知道要用判断语句,但是不知道怎么写这个判断语句,不知如何替换的,能给我一个例子吗?谢谢!

可以这样写
登录时把表单提交给一个servlet,登录成功时写入session里
如: 成功时 session.setAttribute("user", 一个用户对象User);
在jsp登录页面,先从session里面把登录成功的标记读出来:
User user= (User)session.getAttribute("user");
<%
if (user== null) 为空时表示你没有登录,
%>
这里就写上你的html代码,显示一个登录框架 //html代码1
<%else%>
这里也是html代码//html代码2
成功时你可以存一个user对象,那在这里可以直接通过session把值取出来
<%=(User)session.getArrtibute("user").getName()%> 成功登录时,就显示用户的名字
<%%>
总的来说就是,如果未登录时,就显示html代码1,成功登录时,将显示html代码2
参考技术A 登录成功在session中放个标示
进入首页的时候读取该标示的值,如果为空则没登录,给出登录界面(用jsp:include包含登录界面),否则登录过,显示基本信息
参考技术B 你可以只用jsp+servlet的,在页面中用java脚本写,<% %>之类的,或者用jstl表达式进行判断,挺多的,还可以通过js判断 参考技术C 这个很简单啊,request对象就可以实现啊

以上是关于java里面如何在用户登录管理页面时判断用户是不是登录的主要内容,如果未能解决你的问题,请参考以下文章

JAVA WEB 中登录的session的判断 如何控制用户权限可以访问那些东西

flask 每次检测啥判断用户登录

java web的用户角色权限管理是如何实现的?

前端判断用户登录状态方法

java web开发如何实现用用户账号和手机号进行登录?

jsp不用框架,如何实现用户登陆后显示用户信息,隐藏登陆框