请问如何只让在浏览器地栏输入http://local:8080/test/login_init.do有效,而屏蔽系统中其他的....x.do test是你的一个应用程序,还是一个应用程序中的子文件夹呀?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如下是过滤器类:package filters;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.HttpServletResponse;import javax.servlet.http.HttpServletRequest;public class URLFilter implements Filter{ private FilterConfig config; protected final static String ALLOW_URI = "/test/login_init.do"; public void init(FilterConfig config) { this.config = config; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException,ServletException { HttpServletRequest httpRequest = (HttpServletRequest)request; HttpServletResponse httpResponse = (HttpServletResponse)response; String uri = httpRequest.getServletPath(); if(uri.endsWith(".do")) { if(uri.equals(ALLOW_URI)) { chain.doFilter(request, httpResponse); return; } httpResponse.setStatus(HttpServletResponse.SC_NOT_FOUND);//返回状态码404,未找到请求对象 } chain.doFilter(request, httpResponse); } public void destroy() { }}在web.xml中再加入如下配置: <filter> <filter-name>URLFilter</filter-name> <description>only /test/login_init.do</description> <filter-class>filters.URLFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>URLFilter</filter-name> <url-pattern>/test/*</url-pattern> </filter-mapping> test是我的一个应用程序根目录,我发现用以上的方法把所以.do都屏蔽了.是何原因 httpResponse.setStatus(HttpServletResponse.SC_NOT_FOUND);//返回状态码404,未找到请求对象我不想返回状态码404,未找到请求对象, 想让它返回到程序的入口(login_init.do).可以吗? 把httpResponse.setStatus(HttpServletResponse.SC_NOT_FOUND);改成:response.sendRedirect("login_init.do")即可 既然test是应用程序,改正如下:package filters;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.HttpServletResponse;import javax.servlet.http.HttpServletRequest;public class URLFilter implements Filter{ private FilterConfig config; protected final static String ALLOW_URI = "/login_init.do"; public void init(FilterConfig config) { this.config = config; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException,ServletException { HttpServletRequest httpRequest = (HttpServletRequest)request; HttpServletResponse httpResponse = (HttpServletResponse)response; String uri = httpRequest.getServletPath(); if(uri.endsWith(".do")) { if(uri.equals(ALLOW_URI)) { chain.doFilter(request, httpResponse); return; } config.getServletContext().getNamedDispatcher("login_init.do").forward(request, response);////login_init.do为<servlet-name> } chain.doFilter(request, httpResponse); } public void destroy() { }}在web.xml中再加入如下配置: <filter> <filter-name>URLFilter</filter-name> <description>only /test/login_init.do</description> <filter-class>filters.URLFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>URLFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 不应该这么配置的,应该是: <filter> <filter-name>URLFilter</filter-name> <description>only /login_init.do</description> <filter-class>filters.URLFilter</filter-class> </filter> <filter-mapping> <filter-name>URLFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 这样处理,只有login_init.do可以,其它的不行,但正系统正常进入时,其它的也打不开.请指点.在线等.谢谢 请问如何在action return前弹出一个对话框 Jsp获取值的问题。 一个概念问题,什么是"xxxx"??????? ▄◣mysql怎么创建数据库 紧急救命啊 跪求一问(request,session的) 关于日期的下拉传递问题 急急??请问高手,我用JSP做了一个WEB系统, 关于JSTL的问题 Javascript中的switch的bug么?求人解决 javasmartupload如何安装? 为什么我在RESIN能够运行的JSP页面在TOMCAT下面却出错呢,代码如下
package filters;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.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;public class URLFilter implements Filter
{
private FilterConfig config;
protected final static String ALLOW_URI = "/test/login_init.do";
public void init(FilterConfig config)
{
this.config = config;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException,ServletException
{
HttpServletRequest httpRequest = (HttpServletRequest)request;
HttpServletResponse httpResponse = (HttpServletResponse)response;
String uri = httpRequest.getServletPath();
if(uri.endsWith(".do"))
{
if(uri.equals(ALLOW_URI))
{
chain.doFilter(request, httpResponse);
return;
}
httpResponse.setStatus(HttpServletResponse.SC_NOT_FOUND);//返回状态码404,未找到请求对象
}
chain.doFilter(request, httpResponse);
}
public void destroy()
{
}
}
在web.xml中再加入如下配置:
<filter>
<filter-name>URLFilter</filter-name>
<description>only /test/login_init.do</description>
<filter-class>filters.URLFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>URLFilter</filter-name>
<url-pattern>/test/*</url-pattern>
</filter-mapping>
我不想返回状态码404,未找到请求对象
, 想让它返回到程序的入口(login_init.do).可以吗?
response.sendRedirect("login_init.do")即可
package filters;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.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;public class URLFilter implements Filter
{
private FilterConfig config;
protected final static String ALLOW_URI = "/login_init.do";
public void init(FilterConfig config)
{
this.config = config;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException,ServletException
{
HttpServletRequest httpRequest = (HttpServletRequest)request;
HttpServletResponse httpResponse = (HttpServletResponse)response;
String uri = httpRequest.getServletPath();
if(uri.endsWith(".do"))
{
if(uri.equals(ALLOW_URI))
{
chain.doFilter(request, httpResponse);
return;
}
config.getServletContext().getNamedDispatcher("login_init.do").forward(request, response);////login_init.do为<servlet-name>
}
chain.doFilter(request, httpResponse);
}
public void destroy()
{
}
}
在web.xml中再加入如下配置:
<filter>
<filter-name>URLFilter</filter-name>
<description>only /test/login_init.do</description>
<filter-class>filters.URLFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>URLFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>URLFilter</filter-name>
<description>only /login_init.do</description>
<filter-class>filters.URLFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>URLFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
谢谢