一个jsp网站(用struts框架),只能从登录界面进去,若没有登录就跳转到登录界面,
比如输入一个网址,但它不会打开这个页面,而是自动跳转到登录界面,这要在什么地方设置?
如果用session的话,那岂不是很多页面都得去判断,
有没有其它办法,或是要在什么地方进行全局设置?谢谢先!
比如输入一个网址,但它不会打开这个页面,而是自动跳转到登录界面,这要在什么地方设置?
如果用session的话,那岂不是很多页面都得去判断,
有没有其它办法,或是要在什么地方进行全局设置?谢谢先!
调试欢乐多
在filter里面判断session,
如果符合要求,就让通过,
否则就跳转到登陆页面~~
在你的javaBean里定义一个boolean islong=false;变量
然后在得到他的setIslong();isIslong();
在你的登陆处理页面或Servlet里这样写
String ID=request.getParameter("ID");
String password=request.getParameter("password");
javaBean aa=new javaBean();//javaBean的对象
Connection con=null;
java.sql.Statement stat=null;
java.sql.ResultSet res=null;
try{
aa.setIslong(false);//必须初始化
System.out.print(aa.isIslong());
con=new DBCon().getCon();
stat=con.createStatement();
res=stat.executeQuery("select * from zhuce1 where ID='"+ID+"' and password='"+password+"'");
if(res.next()){
aa.setIslong(true);
response.sendRedirect("houtaid.jsp");//成功
}else{
response.sendRedirect("houtais.jsp");不成功;
}
}catch(Exception e){
e.printStackTrace();
}finally{
con.close();
System.out.print("数据库关闭");
}然后在你的每个页面在这样写;
<jsp:useBean id="aa" class="MyBean" scope="session">
</jsp:useBean>
<%
if(aa.isIslong()==false){
response.sendRedirect("houtais.jsp");
}
%>
就OK了
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.UnavailableException;
import javax.servlet.HttpSession;public class SessionValidateFilter implements Filter {
public void destroy() { }
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpSession session = request.getSession();
if ((session == null) || (session.getAttribute("username") != null)) {
response.sendRedirect("login.jsp");
return;
}
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException { }}
web.xml中对过滤器的配置
<filter>
<filter-name>SessionValidateFilter</filter-name>
<filter-class>SessionValidateFilter</filter-class>
</filter><filter-mapping>
<filter-name>SessionValidateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>我用记事本临时写的,没调试,大概就是这意思了。