//验证不成功,让用户登录。
hres.sendRedirect(LOGIN_PAGE);//////验证不成功转到index.htm页面 ==>>
String contextPath = hreq.getContextPath();
String redir = contextPath + "/index.htm";
hres.sendRedirect(redir);
hres.sendRedirect(LOGIN_PAGE);//////验证不成功转到index.htm页面 ==>>
String contextPath = hreq.getContextPath();
String redir = contextPath + "/index.htm";
hres.sendRedirect(redir);
都不行的啊。
得到是什么,看看对不?你先打印出来看看
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description><!-- JSPC servlet mappings start --> <servlet>
<servlet-name>org.apache.jsp.index_jsp</servlet-name>
<servlet-class>org.apache.jsp.index_jsp</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>org.apache.jsp.index_jsp</servlet-name>
<url-pattern>/index.jsp</url-pattern>
</servlet-mapping><!-- JSPC servlet mappings end --> <filter>
<filter-name>auth</filter-name>
<filter-class>com.jspdev.ch8.SignonFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>auth</filter-name>
<url-pattern>/ch8/security/*</url-pattern>
</filter-mapping> <filter-mapping>
<filter-name>auth</filter-name>
<url-pattern>/ch8/hello/*</url-pattern>
</filter-mapping> <filter-mapping>
<filter-name>auth</filter-name>
<url-pattern>/ch8/admin/*</url-pattern>
</filter-mapping>
我的web.xml的定义
</web-app>
得到是什么,看看对不?你先打印出来看看
--这个有问题吗
session.setAttribute("isLogin","true");
%>
通过以下代码简单实现登录:<br>
<font color=red>session.setAttribute("isLogin","true");</font>
<br>
现在已经登录,点击<a href="security/index.jsp?test=a test value">这里</a>进入受限制的页面。
是jsp中的写法,在jsp中上下文环境由系统处理,在servlet中你可以用如下跳转:
getServletContext().getRequestDispatcher(LOGIN_PAGE).forward(request,response);
加入getServletContext().getRequestDispatcher(LOGIN_PAGE).forward后提示SignonFilter.java:55: cannot resolve symbol
symbol : method getServletContext ()
location: class com.jspdev.ch8.SignonFilter
getServletContext().getRequestDispatcher(LOGIN_PAGE).forward(hreq,hres);
^
1 error
<servlet>
<servlet-name>Aupload</servlet-name>
<servlet-class>com.smarteam.vcms.basicmng.servlet.Aupload</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>Aupload</servlet-name>
<url-pattern>/GroupCustmerMng/gc/Aupload</url-pattern>
</servlet-mapping>
你可以如下定义:
public void doFilter(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res,FilterChain chain)throws IOException,ServletException
这样的话,你在方法里面也不用把 HttpServletRequest hreq = (HttpServletRequest )req; HttpServletResponse hres = (HttpServletResponse)res;将ServletRequest、ServletResponse转化成HttpServletRequest、HttpServletResponse了。
另外,你的servlet是继承了哪个类或接口呢?
public void doFilter(final ServletRequest req,final ServletResponse res,FilterChain chain) 方法是从哪里来的?会处理什么问题?
extends javax.servlet.http.HttpServlet
然后去调用我给你的那个方法应该就可以的,再去试一下