14 个解决方案
#1
在后面几个页面都添加访问控制,通常是判断session是否有登录信息,如果没有则跳转到登录页面。
#2
在登陆的时候设置session setAttribute("user",user);
在每个页面增加session判断,判断是否有user存在,
如果有的话,说明登陆过的;
如果没有的话,自动跳转到登陆页面
这样就OK了;
另外还可以使用在web.xml中配置过滤器实现.
在每个页面增加session判断,判断是否有user存在,
如果有的话,说明登陆过的;
如果没有的话,自动跳转到登陆页面
这样就OK了;
另外还可以使用在web.xml中配置过滤器实现.
#3
给你个简单的方法,在每个需要登陆后才能看的页面加上
<%
if(session.getAttribute("login")==null)
response.sendRedirect("登陆页面");
%>
当登陆时,
session.setAttribute("login","success");
不过能常的做法是用过滤器。
<%
if(session.getAttribute("login")==null)
response.sendRedirect("登陆页面");
%>
当登陆时,
session.setAttribute("login","success");
不过能常的做法是用过滤器。
#4
写个过滤器。。。
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.HttpSession;
/**
* 用户登录过滤
*
* @author cuilike
*
*/
public class LoginFilter implements Filter {
protected FilterConfig filterConfig;
public void destroy() {
this.filterConfig=null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest hreq = (HttpServletRequest)request;
HttpServletResponse hres = (HttpServletResponse) response;
HttpSession session = hreq.getSession();
if(session == null){
filterChain.doFilter(request,response);
return;
}
//获取配置的登陆路径
String loginpath = filterConfig.getInitParameter("loginpath");
if(session.getAttribute("loginaccount") == null){
hres.sendRedirect(hreq.getContextPath() + loginpath );
return;
}
filterChain.doFilter(request,response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
}
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.HttpSession;
/**
* 用户登录过滤
*
* @author cuilike
*
*/
public class LoginFilter implements Filter {
protected FilterConfig filterConfig;
public void destroy() {
this.filterConfig=null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest hreq = (HttpServletRequest)request;
HttpServletResponse hres = (HttpServletResponse) response;
HttpSession session = hreq.getSession();
if(session == null){
filterChain.doFilter(request,response);
return;
}
//获取配置的登陆路径
String loginpath = filterConfig.getInitParameter("loginpath");
if(session.getAttribute("loginaccount") == null){
hres.sendRedirect(hreq.getContextPath() + loginpath );
return;
}
filterChain.doFilter(request,response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
}
#5
有没有高级点的方法~我感觉应该有
#6
如果用的是cokiee呢
#7
没有用cookie的,谢谢。
#8
收回刚才那句话,对于安全要求不高的可以用cookie。
在网页中,首页是登录页面,但是如果用户知道你的登录成功之后的页面的地址,那么就可以直接访问而跳过登录,请问怎样防止这种情况发生?
这种情况用cookie做不合适。
在网页中,首页是登录页面,但是如果用户知道你的登录成功之后的页面的地址,那么就可以直接访问而跳过登录,请问怎样防止这种情况发生?
这种情况用cookie做不合适。
#9
能告诉为什么么?
#10
首选过滤器,其次可以用各种flag等小巧办法。类似防止连续点击之类的。
#11
这种问题是绝对要用过滤器过滤最好的,当然,判断session也是办法,项目里面一般都是用过滤器
具体过滤器的使用方法也很简单,楼主随便去找点资料就是了,多的是
过滤器不过就是一个java class罢了,实现javax.servlet.Filter接口,重写doFilter方法,如下
<code>
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain)
throws IOException, ServletException {
/*请求时,执行这里的代码,所以你要在这里写上判断用户是否登陆*/
if(登陆){
跳转到成功页面
}else{
跳转到失败页面或者从新回到登陆页面
}
......
filterChain.foFilter(request, response);
/*响应的时候执行这里的代码*/
.....
}
</code>
具体过滤器的使用方法也很简单,楼主随便去找点资料就是了,多的是
过滤器不过就是一个java class罢了,实现javax.servlet.Filter接口,重写doFilter方法,如下
<code>
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain)
throws IOException, ServletException {
/*请求时,执行这里的代码,所以你要在这里写上判断用户是否登陆*/
if(登陆){
跳转到成功页面
}else{
跳转到失败页面或者从新回到登陆页面
}
......
filterChain.foFilter(request, response);
/*响应的时候执行这里的代码*/
.....
}
</code>
#12
个人认为用过滤器最好
#13
首选过滤器,这是过滤器的优点所在。cookie优点不在这,LZ应该好好研究下过滤器在这的用处!
#14
<%
String userName = (String)session.getAttribute("userName");
if(userName == null || userName == "") {
response.sendRedirect("login.jsp");
}
%>
String userName = (String)session.getAttribute("userName");
if(userName == null || userName == "") {
response.sendRedirect("login.jsp");
}
%>
#1
在后面几个页面都添加访问控制,通常是判断session是否有登录信息,如果没有则跳转到登录页面。
#2
在登陆的时候设置session setAttribute("user",user);
在每个页面增加session判断,判断是否有user存在,
如果有的话,说明登陆过的;
如果没有的话,自动跳转到登陆页面
这样就OK了;
另外还可以使用在web.xml中配置过滤器实现.
在每个页面增加session判断,判断是否有user存在,
如果有的话,说明登陆过的;
如果没有的话,自动跳转到登陆页面
这样就OK了;
另外还可以使用在web.xml中配置过滤器实现.
#3
给你个简单的方法,在每个需要登陆后才能看的页面加上
<%
if(session.getAttribute("login")==null)
response.sendRedirect("登陆页面");
%>
当登陆时,
session.setAttribute("login","success");
不过能常的做法是用过滤器。
<%
if(session.getAttribute("login")==null)
response.sendRedirect("登陆页面");
%>
当登陆时,
session.setAttribute("login","success");
不过能常的做法是用过滤器。
#4
写个过滤器。。。
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.HttpSession;
/**
* 用户登录过滤
*
* @author cuilike
*
*/
public class LoginFilter implements Filter {
protected FilterConfig filterConfig;
public void destroy() {
this.filterConfig=null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest hreq = (HttpServletRequest)request;
HttpServletResponse hres = (HttpServletResponse) response;
HttpSession session = hreq.getSession();
if(session == null){
filterChain.doFilter(request,response);
return;
}
//获取配置的登陆路径
String loginpath = filterConfig.getInitParameter("loginpath");
if(session.getAttribute("loginaccount") == null){
hres.sendRedirect(hreq.getContextPath() + loginpath );
return;
}
filterChain.doFilter(request,response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
}
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.HttpSession;
/**
* 用户登录过滤
*
* @author cuilike
*
*/
public class LoginFilter implements Filter {
protected FilterConfig filterConfig;
public void destroy() {
this.filterConfig=null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest hreq = (HttpServletRequest)request;
HttpServletResponse hres = (HttpServletResponse) response;
HttpSession session = hreq.getSession();
if(session == null){
filterChain.doFilter(request,response);
return;
}
//获取配置的登陆路径
String loginpath = filterConfig.getInitParameter("loginpath");
if(session.getAttribute("loginaccount") == null){
hres.sendRedirect(hreq.getContextPath() + loginpath );
return;
}
filterChain.doFilter(request,response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
}
#5
有没有高级点的方法~我感觉应该有
#6
如果用的是cokiee呢
#7
没有用cookie的,谢谢。
#8
收回刚才那句话,对于安全要求不高的可以用cookie。
在网页中,首页是登录页面,但是如果用户知道你的登录成功之后的页面的地址,那么就可以直接访问而跳过登录,请问怎样防止这种情况发生?
这种情况用cookie做不合适。
在网页中,首页是登录页面,但是如果用户知道你的登录成功之后的页面的地址,那么就可以直接访问而跳过登录,请问怎样防止这种情况发生?
这种情况用cookie做不合适。
#9
能告诉为什么么?
#10
首选过滤器,其次可以用各种flag等小巧办法。类似防止连续点击之类的。
#11
这种问题是绝对要用过滤器过滤最好的,当然,判断session也是办法,项目里面一般都是用过滤器
具体过滤器的使用方法也很简单,楼主随便去找点资料就是了,多的是
过滤器不过就是一个java class罢了,实现javax.servlet.Filter接口,重写doFilter方法,如下
<code>
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain)
throws IOException, ServletException {
/*请求时,执行这里的代码,所以你要在这里写上判断用户是否登陆*/
if(登陆){
跳转到成功页面
}else{
跳转到失败页面或者从新回到登陆页面
}
......
filterChain.foFilter(request, response);
/*响应的时候执行这里的代码*/
.....
}
</code>
具体过滤器的使用方法也很简单,楼主随便去找点资料就是了,多的是
过滤器不过就是一个java class罢了,实现javax.servlet.Filter接口,重写doFilter方法,如下
<code>
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain)
throws IOException, ServletException {
/*请求时,执行这里的代码,所以你要在这里写上判断用户是否登陆*/
if(登陆){
跳转到成功页面
}else{
跳转到失败页面或者从新回到登陆页面
}
......
filterChain.foFilter(request, response);
/*响应的时候执行这里的代码*/
.....
}
</code>
#12
个人认为用过滤器最好
#13
首选过滤器,这是过滤器的优点所在。cookie优点不在这,LZ应该好好研究下过滤器在这的用处!
#14
<%
String userName = (String)session.getAttribute("userName");
if(userName == null || userName == "") {
response.sendRedirect("login.jsp");
}
%>
String userName = (String)session.getAttribute("userName");
if(userName == null || userName == "") {
response.sendRedirect("login.jsp");
}
%>