【问题标题】:JSP - In Eclipse, getting several errors using MySQL backendJSP - 在 Eclipse 中,使用 MySQL 后端出现几个错误
【发布时间】:2017-05-23 12:37:44
【问题描述】:

尝试使用 MySQL 创建一个简单的登录。我遇到了各种错误,想知道你们是否可以提供帮助。我是 JSP 和编程的超级新手(DBA 行业)。我已经在线添加了错误,当我尝试在 Eclipse 中运行代码时出现错误 500。

    <%@ page import="java.sql.Date, java.sql.PreparedStatement, java.sql.ResultSet, java.sql.SQLException, java.sql.Statement, java.sql.Timestamp, java.text.SimpleDateFormat, 
java.util.ArrayList, java.util.Calendar, java.util.HashMap, java.util.List, java.util.Map, java.util.Map.Entry, java.sql.*" %>


<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Login</title>

</head>

<body>

<%! String userdbName;

String userdbPsw;

String dbUsertype;

%>

<%

Connection con= null; //Connection cannot be resolved to a type

PreparedStatement ps = null; //PreparedStatement cannot be resolved to a type

ResultSet rs = null; //ResultSet cannot be resolved to a type



String driverName = "com.mysql.jdbc.Driver";

String url = "jdbc:mysql://localhost:3306/record";

String user = "root";

String dbpsw = "root";



String sql = "select * from userdetail where name=? and password=? and usertype=?";



String name = request.getParameter("name");

String password = request.getParameter("password");

String usertype = request.getParameter("usertype");



if((!(name.equals(null) || name.equals("")) && !(password.equals(null) || 
password.equals(""))) && !usertype.equals("select"))

{

try{

Class.forName(driverName);
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, user, dbpsw); //DriverManager cannot be resolved (x2?)

ps = con.prepareStatement(sql);

ps.setString(1, name);

ps.setString(2, password);

ps.setString(3, usertype);

rs = ps.executeQuery();

if(rs.next())

{ 

userdbName = rs.getString("name");

userdbPsw = rs.getString("password");

dbUsertype = rs.getString("usertype");

if(name.equals(userdbName) && password.equals(userdbPsw) && usertype.equals(dbUsertype))

{

session.setAttribute("name",userdbName);

session.setAttribute("usertype", dbUsertype); 

response.sendRedirect("welcome.jsp"); 

} 

}

else

response.sendRedirect("error.jsp");

rs.close();

ps.close(); 

}

catch(SQLException sqe) //SQLException cannot be resolved to a type (x2)

{

out.println(sqe);

} 

}

else

{

%>

<center><p style="color:red">Error In Login</p></center>

<% 

getServletContext().getRequestDispatcher("/home.jsp").include(request, 
response);

}

%>

</body>

</html>

此代码返回以下错误:

HTTP 状态 500 – 内部服务器错误

键入异常报告

消息处理JSP页面/Login.jsp在行发生异常 56

描述 服务器遇到了一个意外情况 阻止它完成请求。

异常 org.apache.jasper.JasperException:发生异常 在第 56 行处理 JSP 页面 /Login.jsp

53: 54: 55: 56: if((!(name.equals(null) || name.equals("")) && !(password.equals(null) || 57: password.equals(""))) && !usertype.equals("select")) 58: 59: {

堆栈跟踪: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:584) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:481) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) javax.servlet.http.HttpServlet.service(HttpServlet.java:742) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

根本原因 java.lang.NullPointerException org.apache.jsp.Login_jsp._jspService(Login_jsp.java:192) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:742) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) javax.servlet.http.HttpServlet.service(HttpServlet.java:742) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

注意根本原因的完整堆栈跟踪在服务器中可用 日志。

Apache Tomcat/8.5.14

【问题讨论】:

    标签: java mysql eclipse jsp


    【解决方案1】:

    这是导入的问题,例如在 JSP 中导入 java 类 &lt;%@ page import="java.util.List" %&gt; 或多个导入使用

    <%@ page import="java.util.List,java.util.Date,....,java.util.ArrayList" %>
    

    希望这会有所帮助。

    【讨论】:

    • 仍然出现错误。我已经用我更改的内容和错误更新了代码。
    • 把if语句修改为这个 if((!(null==name || name.isEmpty()) && !(null==password || password.isEmpty())) && ! usertype.equals("select"))
    • 这行得通,但现在由于某种原因我得到 HTTP 状态 404 - 未找到类型状态报告消息 /Javadiscover/login.jsp 描述 源服务器没有找到目标资源的当前表示,或者是不愿意透露一个存在。 Apache Tomcat/8.5.14
    • 这里我到目前为止尝试过的解决方案右键单击项目-> 属性-> 项目构面-> 运行时-> 选中“Apache Tomcat v9.0”-> 应用-> 完成。服务器选项卡->右键单击“Tomcat v9.0...”->属性->切换位置->在“服务器位置”面板上选择“使用tomcat安装”。
    猜你喜欢
    • 2016-09-02
    • 2014-09-19
    • 2016-11-02
    • 1970-01-01
    • 2017-09-26
    • 2023-03-24
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多