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

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 cocos的js代码调用wx.createUseInfoButton问题!
  • ¥15 关于自相关函数法和周期图法实现对随机信号的功率谱估计的matlab程序运行的问题,请各位专家解答!
  • ¥15 Python程序,深度学习,有偿私
  • ¥15 扫描枪扫条形码出现问题
  • ¥35 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?
  • ¥15 求MCSCANX 帮助
  • ¥15 机器学习训练相关模型
  • ¥15 Todesk 远程写代码 anaconda jupyter python3
  • ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?