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

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 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘