代码如下
<%@page contentType="text/html" pageEncoding="UTF-8" import="java.sql.*"%>
<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页面。
你好,根据报错信息是这一行报错:
jsp页面不能彼此互相跳转传值,可以把值放到session或cookie中,然后直接在另一个页面中取,或者通过接口取传值
你判断request.getParameter("start").getBytes("ISO-8859-1")是否取了null值,这里出错了,先别做转换
通过设置服务器解析编码的格式
request.setCharacterEncoding ("UTF -8");