1.
我在一个JSP里嵌套另一个JSP页面 如下: display参数是传的JSP
<jsp:include page="${param.display}" flush="true"/>
运行后出现异常 但不影响程序正常操作
java.lang.StringIndexOutOfBoundsException: String index out of range: -12.
过滤器里页面跳转
request.getRequestDispatcher("index.jsp?display=Picture.jsp").forwar(request,response);
异常
java.lang.IllegalStateException: Cannot forward after response has been committed改成Response后
((HttpServletResponse)Response).sendRedirect("Login.jsp");
没有异常 显示空白页~~应该说的够清楚了吧~~~~
很郁闷~`求高手解
我在一个JSP里嵌套另一个JSP页面 如下: display参数是传的JSP
<jsp:include page="${param.display}" flush="true"/>
运行后出现异常 但不影响程序正常操作
java.lang.StringIndexOutOfBoundsException: String index out of range: -12.
过滤器里页面跳转
request.getRequestDispatcher("index.jsp?display=Picture.jsp").forwar(request,response);
异常
java.lang.IllegalStateException: Cannot forward after response has been committed改成Response后
((HttpServletResponse)Response).sendRedirect("Login.jsp");
没有异常 显示空白页~~应该说的够清楚了吧~~~~
很郁闷~`求高手解
有可能的话,把核心代码贴上来..
他提示就是我嵌套那一行,核心代码...一个JSP页面..全是标签 发来也没什么用
我把嵌套的JSP写死了就没问题了
所以我想问以下这个标签为什么会有数组越界异常
值是通过变量传进来的,你看看传的值对不?先写成静态的看还会有问题不?一步一步分析。。
但运行起来后<jsp:include page="${param.display}" flush="true"/> 马上就出了数组越界异常
但并不影响程序正常运行
这个很郁闷~`
request.getRequestDispatcher("index.jsp?display=Picture.jsp").forwar(request,response);
前面已经执行过跳转...请确认...
字符串的下标越界异常,你的代码再仔细检查一下
package com.superet.filter;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import com.superet.vo.UserBean;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class BuyFilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
//Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
} //Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
try {
UserBean ub = (UserBean) ((HttpServletRequest) request).getSession().
getAttribute("login");
if (ub == null) {
System.out.println("buynull");
((HttpServletResponse)response).sendRedirect("Login.jsp");
} else if (!ub.getType().equals("采购员") &&!ub.getType().equals("超级管理员")) {
System.out.println("buyquanxian");
((HttpServletResponse)response).sendRedirect("index.jsp?display=Picture.jsp");
} else {
System.out.println("buyok");
filterChain.doFilter(request, response);
}
} catch (IOException iox) {
filterConfig.getServletContext().log(iox.getMessage());
} catch (ServletException ex) {
ex.printStackTrace();
} } //Clean up resources
public void destroy() {
}
}我所有的跳转语句都用if(){}else{}隔开了
运行后的错误提示指定的是嵌套这一行
<jsp:include page="${param.display}" flush="true"/>
而我把page="picture.jsp"写死后就没有错了
所以才很郁闷,这个标签难道也会有字符串的下标越界异常吗
这个可能是你用out对象写了东西后flush,造成的。这个我曾经碰到过第一个问题,param本身他就是个array形式的,造成这个问题有可能是哪个直没有接到吧。。
我是这么考虑的,不知道对你有帮助没。
LS是怎么解决的
<jsp:include page="${param.display}" flush="true"/>
这个我一开始运行的不是这个页面
我一开始运行的是login.jsp 运行起来后就出错了
登陆后才转交到index.jsp?display=pricture.jsp
如果要一开始就给传值 我不知道该怎么传这种嵌套我在另一个程序中用过 一模一样的用法
但那个不知道怎么就没错
没有异常 显示空白页~~ 空白页的问题,我以前页遇到过,没有异常,开始认为是struts-config.xml的问题,后来发现是转发到的页面有问题。你看一下是不是Login.jsp的问题啊
页面跳转只是在filter里跳不过去
在普通servlet里和jsp里都可以跳转的
你太牛了,大哥,forward 给你一个介意,写程序时请细心 心细 再心细
我又 <- 一下想弄成一行 没注意删掉了d
我....
是这块有错误吧。。你都sendRedirect了,那么request 里的对象肯定都没。我觉得这些有问题。。
再一个,没有必要在前边再加个强制转换response,我觉得还是不要用sendRedirect,用forward试试吧
会出现异常
java.lang.IllegalStateException: Cannot forward after response has been committed
这个异常会不会是因为我嵌套页面的关系想不通·~
请问还有没有别的页面跳转的办法
反正这个异常可能是转发了2次造成的