请问,jsp页面如何做到只有通过登陆界面才能访问,而不能在地址栏输入地址就可以访问.我目前得情况就是在地址栏输入要访问得页面地址就可以访问.
许多网友介绍通过过滤器和session实现.我只是在登录页面设置一个登录标记如下,session.setAttribute("flag","flag");然后在没有个jsp页面,添加下面得代码:
String num = (String)session.getAttribute("vnum");
if(num != "101")
{%>
<SCRIPT language=javascript>
top.location.replace("../login/errorpage.htm");
</SCRIPT>
可是当两个以上用户通过同一个浏览器访问时,第一个后面的用户又在浏览器地址栏直接输入地址就可以访问了?
请问各位网友,这个问题怎么解决,能不能给一个例子研究学习一下?
许多网友介绍通过过滤器和session实现.我只是在登录页面设置一个登录标记如下,session.setAttribute("flag","flag");然后在没有个jsp页面,添加下面得代码:
String num = (String)session.getAttribute("vnum");
if(num != "101")
{%>
<SCRIPT language=javascript>
top.location.replace("../login/errorpage.htm");
</SCRIPT>
可是当两个以上用户通过同一个浏览器访问时,第一个后面的用户又在浏览器地址栏直接输入地址就可以访问了?
请问各位网友,这个问题怎么解决,能不能给一个例子研究学习一下?
解决方案 »
- 用fileupload获取表单值获取不到~~急~~请高手帮下忙~~
- jsp 重定向 同时 post 数据
- Java(web jsp ……)自学讨论QQ群 150445924 欢迎广大初学者加入
- 研究过日志分类的大侠请进!
- 郁闷我两天的连接池问题,sqlserver连接!请高手帮忙看看!
- 关于web.xml里面一些参数的意思
- 做一个简单的javabean 但是出现了4个出错 请各位大哥帮帮忙!
- 取结果集的问题,请各位指点一二
- 新手高手请教JB+WAS最简单的问题.
- 求助:关于jdbc写入数据的问题
- 如何在页面之间传送参数的问题
- 不解:为什么Tomcat的时钟的Plugin例子,不能正常执行??~在线求答
/*
* Created on 2006-4-17
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.FilterConfig;
import javax.servlet.http.HttpSession;
/**
* @author YangBin
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class SignonFilter implements Filter
{
String LOGIN_PAGE="../index.jsp";
protected FilterConfig filterConfig;
/* (non-Javadoc)
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
*/
public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
this.filterConfig=config;
} /* (non-Javadoc)
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(final ServletRequest req, final ServletResponse res, FilterChain chain) throws IOException, ServletException
{
// TODO Auto-generated method stub
HttpServletRequest hreq=(HttpServletRequest)req;
HttpServletResponse hres=(HttpServletResponse)res;
HttpSession session=hreq.getSession();
// String isLogin="";
try{
Boolean isLogin = (Boolean)session.getAttribute("isLogin");
if(isLogin!=null)
{
// System.out.println("hehe");
chain.doFilter(req,res);
}
else
{
// System.out.println("asdfasdf");
hres.setContentType("text/html;charset=gb2312");
PrintWriter out=hres.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<script>");
out.println("alert('您未登陆或登陆时间过长!先请登陆');");
out.println("history.back();");
out.println("</script>");
out.println("</body>");
out.println("</html>");
// hres.sendRedirect(LOGIN_PAGE);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void setFilterConfig(final FilterConfig filterConfig)
{
this.filterConfig=filterConfig;
}
/* (non-Javadoc)
* @see javax.servlet.Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
this.filterConfig=null;
}
}
web.xml里设置下
<filter>
<filter-name>auth</filter-name>
<filter-class>filter.SignonFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>auth</filter-name>
<url-pattern>/这里是登陆才允许访问的页面/*</url-pattern>
</filter-mapping>
/*
* Created on 2006-4-17
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.FilterConfig;
import javax.servlet.http.HttpSession;
/**
* @author YangBin
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class SignonFilter implements Filter
{
String LOGIN_PAGE="../index.jsp";
protected FilterConfig filterConfig;
/* (non-Javadoc)
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
*/
public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
this.filterConfig=config;
} /* (non-Javadoc)
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(final ServletRequest req, final ServletResponse res, FilterChain chain) throws IOException, ServletException
{
// TODO Auto-generated method stub
HttpServletRequest hreq=(HttpServletRequest)req;
HttpServletResponse hres=(HttpServletResponse)res;
HttpSession session=hreq.getSession();
// String isLogin="";
try{
Boolean isLogin = (Boolean)session.getAttribute("isLogin");
if(isLogin!=null)
{
// System.out.println("hehe");
chain.doFilter(req,res);
}
else
{
// System.out.println("asdfasdf");
hres.setContentType("text/html;charset=gb2312");
PrintWriter out=hres.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<script>");
out.println("alert('您未登陆或登陆时间过长!先请登陆');");
out.println("history.back();");
out.println("</script>");
out.println("</body>");
out.println("</html>");
// hres.sendRedirect(LOGIN_PAGE);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void setFilterConfig(final FilterConfig filterConfig)
{
this.filterConfig=filterConfig;
}
/* (non-Javadoc)
* @see javax.servlet.Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
this.filterConfig=null;
}
}
web.xml里设置下
<filter>
<filter-name>auth</filter-name>
<filter-class>filter.SignonFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>auth</filter-name>
<url-pattern>/这里是登陆才允许访问的页面/*</url-pattern>
</filter-mapping>