HTTP状态 404 - 未找到+HTTP状态 500 - 内部服务器错误双重bug加成

项目场景:

项目场景:jsp连接数据库更新,update代码


问题描述

提示:这里描述项目中遇到的问题:

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@page import="java.sql.*" %>
<%request.setCharacterEncoding("utf-8");%>
<% String id=request.getParameter("stuid");%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
  <%! ResultSet rs;%>
    <%
        String dbName = "studb";
        String userName = "root";
        String userPasswd = "root";
        String url = "jdbc:mysql://localhost/" + dbName + "?user=" + userName + "&password=" + userPasswd;
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection(url);

        String sql = "DELETE from student where number=?";
        PreparedStatement preparedStatement= conn.prepareStatement(sql);

        preparedStatement.setString(1,id);//可以将第一个参数设置为变量id的值。这里的数字1表示参数的位置
        int  result= preparedStatement.executeUpdate();
        if(result>0)
            out.print("  <script type='text/javascript'>alert('修改成功'); </script> ");
        else
            out.print("  <script type='text/javascript'>alert('修改失败'); </script> ");

        sql = "select * from student ";
        rs = preparedStatement.executeQuery(sql);

    %>

</head>
<body>
<table border="1">
    <th colspan="4" style=" font-size: x-large; alignment: center"> 学生信息表</th>
    <tr style=" text-align: center">
        <td>学号</td>
        <td>姓名</td>
        <td>出生日期</td>
        <td>所在班级</td>
    </tr>
  <% while (rs.next()) {  %>
    <tr style=" text-align: center">
        <td><%= rs.getString(1)  %></td>
        <td><%= rs.getString(2) %> </td>
        <td><%= rs.getString("birthday")%></td>
        <td><%= rs.getString("stuclass")%></td>
    </tr>
    <%  }  %>
    <%
        rs.close();
        preparedStatement.close();
        conn.close();
    %>
</table>
</body>
</html>

原因分析:

代码是没有问题的,我发现是没有运行Tomcat,Tomcat是开发和调试JSP程序的首选。 Tomcat的作用是负责接收和反馈外部请求的连接器Connector和负责处理请求的容器Container。其中连接器和容器相辅相成,一起构成了基本的web服务Service。每个Tomcat服务器可以管理多个Service。


解决方案:

先运行tomcat,但是出现了500错误

 发现批量添加中的代码,因为重复性操作导致了数据库数据重合

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@page import="java.sql.Connection" %>
    <%@page import="java.sql.DriverManager" %>
    <%@page import="java.sql.PreparedStatement" %>
    <%@page import="java.sql.ResultSet" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>批量添加</title>
<%! ResultSet rs;%>
    <%
        String dbName = "studb";
        String userName = "root";
        String userPasswd = "root";
        String url = "jdbc:mysql://localhost/" + dbName + "?user=" + userName + "&password=" + userPasswd;
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection(url);
        String[] numbers=new String[]{"07","08","09","10"};
        String[] names=new String[]{"多多","皮皮","珠珠","凯凯"};
        String[] birthdays=new String[]{"2002-02-02","2002-09-20","2002-12-12","2002-08-10"};
        String[] stuclass=new String[]{"333","331","332","333"};
        String sql = "INSERT into student VALUES( ?,?,?,?)";
        PreparedStatement preparedStatement= conn.prepareStatement(sql);
        for (int i = 0; i <4 ; i++) {

            preparedStatement.setString(1,numbers[i]);
            preparedStatement.setString(2,names[i]);
            preparedStatement.setString(3,birthdays[i]);
            preparedStatement.setString(4,stuclass[i]);//调用了setString()方法来将第四个占位符
            preparedStatement.addBatch();  //调用preparedStatement.addBatch()方法
        }

        int[] result= preparedStatement.executeBatch();
        if(result.length>0)
        	System.out.print("<script type='text/javascript'>alert('导入信息成功');</script>");
        else
        	System.out.print("<script type='text/javascript'>alert('导入信息失败');</script>");
        sql="select*from student";
        rs=preparedStatement.executeQuery(sql);
        %>
</head>
<body>
<table border="1">
    <th colspan="4" style=" font-size: x-large; alignment: center"> 学生信息表</th>
    <tr style=" text-align: center">
        <td>学号</td>
        <td>姓名</td>
        <td>出生日期</td>
        <td>所在班级</td>
    </tr>


  <% while (rs.next()) {  %>
    <tr style=" text-align: center">
        <td><%= rs.getString(1)  %></td>
        <td><%= rs.getString(2) %> </td>
        <td><%= rs.getString("birthday")%></td>
        <td><%= rs.getString("stuclass")%></td>
    </tr>
    <%  }  %>
    <%
        rs.close();
        preparedStatement.close();
        conn.close();
    %>


</table>
</body>
</html>

 解决方法:删除数据库重复数据或者添加不重复的数据

最后就可以拿到数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值