wyqrhx 2022-06-03 03:51 采纳率: 86.7%
浏览 75
已结题

JSP页面跳转出现关于传值错误

关于JSP页面跳转传值出现问题
Servlet将用户的信息转发到xiaofei.jsp页面


                    request.setAttribute("user", user);
                    request.getRequestDispatcher("/xiaofei.jsp")
                            .forward(request,response);

然后xiaofei.jsp页面接收代码是这样的

16: <%
17:     User user = (User) request.getAttribute("user");
18:     String username = user.getUsername();
19:     System.out.println(username);
20: %>
欢迎您:
<%
    out.print(user.getUsername());
%>

xiaofei.jsp页面链接数据库,根据用户名输出用户详细信息


String sql="select * 
from user u join xuexi x on u.id=x.id join yinshi y on y.hao=x.hao join youxi o on o.day=y.day"+" 
where username='"+user.getUsername()+"'";

xiaofei.jsp页面有添加个人信息的按钮

<td><a href="add.jsp">添加</a></th>

点击添加,跳转到add.jsp页面,在添加完成后,重新跳转到xiaofei.jsp页面

 try{
            Class.forName("com.mysql.jdbc.Driver");
            Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/user","root","root");
            Statement stmt=con.createStatement();
            String sql="insert into xuexi(id,hao,day,book,price1) values('"+id+"','"+hao+"','"+day+"','"+name+"','"+price+"')";
            int i=stmt.executeUpdate(sql);
            if(i==1){
                out.print("<script>alert('添加成功');</script>");
                response.setHeader("refresh", "1;url=xiaofei.jsp");
            }else{
                out.println("<script>alert('添加失败');</script>");
                response.setHeader("refresh","1;url=add.jsp");
            }
            con.close();
            stmt.close();
        }catch(Exception e){
            out.println("<script>alert('失败,请重试');</script>");
            response.setHeader("refresh","1;url=add.jsp");
        }

此时问题出现了,跳转失败了,org.apache.jasper.JasperException: 在 [18] 行处理 [/xiaofei.jsp] 时发生异常
但是数据已经成功插入,再次登录能把新添加的信息显示出来

org.apache.jasper.JasperException: 在 [18] 行处理 [/xiaofei.jsp] 时发生异常

15: <br>
16: <%
17:     User user = (User) request.getAttribute("user");
18:     String username = user.getUsername();
19:     System.out.println(username);
20: %>
欢迎您:
<%
    out.print(user.getUsername());
%>


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:605)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:498)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:383)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:331)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
根本原因。

java.lang.NullPointerException
    org.apache.jsp.xiaofei_jsp._jspService(xiaofei_jsp.java:124)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:465)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:383)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:331)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
):注意 主要问题的全部 stack 信息可以在 server logs 里查看




该怎么办,查找好多方法还是没有用,我的是Tomacat8.5,JDK是1.8,已经导入Jstl.jar包和standard.jar包了,

  • 写回答

1条回答 默认 最新

  • 学习日记 后端领域新星创作者 2022-06-03 07:39
    关注

    你这里你得再经过这个servler啊,你这里用的是请i求转发,你前后的request不是一个,根本getAttribute("user")这个没有,望采纳,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月11日
  • 已采纳回答 6月3日
  • 创建了问题 6月3日

悬赏问题

  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)