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

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 vue+element 生成table
    • ¥15 实验 4 FIFO 算法和 LRU 算法-C 程序实现
    • ¥30 电脑画面同步投屏,通过同wifi的方式投屏方法,接收投屏端不需要安装第三方软件,
    • ¥15 有偿拼接大疆精灵4RGB影像
    • ¥15 MATLAB特殊符号
    • ¥15 Arduino实现音频混响
    • ¥15 cuda.jit加速报错
    • ¥15 Octave 安装工具箱出错 Only Win32 target is supported!
    • ¥15 docker save的不能在另一台设备运行