HTTP Status 500 - An exception occurred processing JSP page

img

代码如下
<%@page contentType="text/html" pageEncoding="UTF-8" import="java.sql.*"%>

JSP Page
    <br><br>
    <table align="center">
        <tr>
            <td >列车信息如下</td>                
        </tr>
    </table>
    <br>
    <table align="center">
        <tr>
            <td width="120" align="center">车号</td>
            <td width="120" align="center">始发站</td>
            <td width="120" align="center">终点站</td>
            <td width="120" align="center">发车日期</td>
            <td width="120" align="center">开出时刻</td>
            <td width="120" align="center">到达时刻</td>
            <td width="120" align="center">车票类型</td>
            <td width="120" align="center">票价</td>
        </tr>
        
        <%
                  
                    String start = new String(request.getParameter("start").getBytes("ISO-8859-1"), "UTF-8");
                    String end = new String(request.getParameter("end").getBytes("ISO-8859-1"), "UTF-8");
                    String type = request.getParameter("type");
                    String startd = request.getParameter("startd");
                    Class.forName("com.mysql.jdbc.Driver");
                    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/lin", "root", "root");
                    int intPageSize;
                    int intRowCount;
                    int intPageCount;
                    int intPage;
                    String strPage;
                    int i;
                    intPageSize = 8;
                    strPage = request.getParameter("page");
                    if (strPage == null) {
                        intPage = 1;
                    } else {
                        intPage = java.lang.Integer.parseInt(strPage);
                        if (intPage < 1) {
                            intPage = 1;
                        }
                    }
                    Statement stmt = conn.createStatement();
                    String sql = "select * from train  where start='" + start + "'and end='" + end + "'";
                    ResultSet rs = stmt.executeQuery(sql);
                    rs.last();
                    intRowCount = rs.getRow();
                    intPageCount = (intRowCount + intPageSize - 1) / intPageSize;
                    if (intPage > intPageCount) {
                        intPage = intPageCount;
                    }
                    if (intPageCount > 0) {
                        rs.absolute((intPage - 1) * intPageSize + 1);
                        i = 0;
                        while (i < intPageSize && !rs.isAfterLast()) {%>
        <tr>
           
            <td width="120" align="center"><%=rs.getString("num")%></td>
            <td width="120" align="center"><%=rs.getString("start")%></td>
            <td width="120" align="center"><%=rs.getString("end")%></td>
            <td width="120" align="center"><%=rs.getString("startd")%></td>
            <td width="120" align="center"><%=rs.getString("starttime")%></td>
            <td width="120" align="center"><%=rs.getString("endtime")%></td>
            <td width="120" align="center"><%=rs.getString("type")%></td>
            <td width="120" align="center"><%=rs.getString("price")%></td>
            <td width="120" align="center"><a href="http://localhost:8084/Ticket/User/BookTicket.jsp?num=<%=rs.getString("num")%>">订票</a></td>
        </tr>

        <%
                            rs.next();
                            i++;

                        }
                    }
        %>
    </table>
    <hr>
    <div align="center"><%=intPage%>页 共<%=intPageCount%><%if (intPage < intPageCount) {%>
        <a href="train.jsp?page=<%=intPage + 1%>">下一页</a>
        <%}
                            if (intPage > 1) {%>
        <a href="train.jsp?page=<%=intPage - 1%>">上一页</a>
        <%
                    }
                    rs.close();
                    stmt.close();
                    conn.close();
        %>
    </div>

   
</body>

前后端传值问题,注意看看预想中前端传递的值是后端接收到的值是否为想要的值

没给jsp页面传参数,所以request.getParameter为空了,再调用方法报空指针异常了

第23行,request域中取名为 end 的参数为空。而你第22行start却没有报错,检查一下end传参的代码

不应该直接请求jsp页面的,需要先请求servlet 获取数据后,跳转到jsp页面。

你好,根据报错信息是这一行报错:

img


报错原因是因为从另外一个页面跳转到当前页面,request请求少传了参数“start”。
api参考:
request.setAttribute("key",value) 设置和修改request对象中的值

jsp页面不能彼此互相跳转传值,可以把值放到session或cookie中,然后直接在另一个页面中取,或者通过接口取传值

你判断request.getParameter("start").getBytes("ISO-8859-1")是否取了null值,这里出错了,先别做转换
通过设置服务器解析编码的格式

request.setCharacterEncoding ("UTF -8");