【问题标题】:page is not redirect页面未重定向
【发布时间】:2011-08-15 07:13:35
【问题描述】:

org.apache.jasper.JasperException:JSP 中的异常:/views/header.jsp:14

11:         <a href="<%=request.getContextPath()%>">Home</a> | 
12:         <% String username=(String)session.getAttribute("formdata");
13:         String admin="admin";
14:         if(username.equals(" ")){
15:             
16:             String logout="http://localhost:8080/NewsBank/logout.do";
17:             response.sendRedirect(logout);

堆栈跟踪:

    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:801)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

root cause

java.lang.NullPointerException
    org.apache.jsp.views.addStory_jsp._jspService(addStory_jsp.java:93)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:801)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

【问题讨论】:

  • 在这段代码中我没有重定向到询问页面..即注销页面
  • 也许你应该为空检查用户名变量...

标签: java jsp servlets


【解决方案1】:

username 在我看来是 null

检查无效

if(username != null || "".equals(userName)){
//your code
}

建议:

  • 我们有 Filter 用于此(身份验证检查)目的,为什么要破坏 jsp?

  • Avoid在JSP上写javacode


另见

【讨论】:

  • +1 不仅是为了正确的答案,也是为了好的方法。很好。
  • 我在标题页中有 3 种不同的情况 ..ie 1)if(username.isEmpty()){ //redirect to index page } 2)else if(username.equals(admin)) { //重定向到管理页面 } 3)else if(username!=admin && username!=""){//重定向到所有用户页面}
  • 1.检查无效性 2. 您可以使用 equals() 比较字符串而不使用 == 3. 读出 Suggestions 部分
  • 表示在用户名==null的情况下,它必须重定向到索引页面............它现在不重定向到该页面
  • username == null 如果返回 true,则表示您没有在会话中设置用户名,所以我猜它应该转到登录页面
猜你喜欢
  • 1970-01-01
  • 2021-03-20
  • 1970-01-01
  • 2013-10-14
  • 2020-07-04
  • 2017-01-18
  • 2011-08-11
  • 2014-05-19
相关资源
最近更新 更多