我正試圖從資料庫中顯示一個用戶的詳細資訊。 得到NullPointerException 下面是我的Jsp和Servlet頁面
我也是個新手,所以我想一定有一些愚蠢的錯誤。JSP頁面
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" isELIgnored="false"
pageEncoding="ISO-8859-1"%>
<! DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>查看簡介</title>
</head>/span>
<html>
<body>
<form action="ProfileServlet? ac=view">
輸入你的用戶名。 <input type=text name=username> <br/>
< input type=submit value=submit>
</form>/span>
</body>
</html>
Servlet
package com.Webhtml.controller。
import java.io.IOException;
import java.io.PrintWriter。
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
public class ProfileServlet extends HttpServlet { /span>
public void doGet(HttpServletRequest request, HttpServletResponse response)
拋出ServletException, IOException {
String a=request.getParameter("ac") 。
response.setContentType("text/html")。
PrintWriter out = response.getWriter();
if(a.equals("view")) {
String username=request.getParameter("username")。
try{
Class.forName("com.mysql.jdbc.Driver")。
連接con=DriverManager.getConnection("jdbc:mysql://75.20.205.173:3306/,"contact","root") 。
PreparedStatement ps=con.prepareStatement("select * from user where username=?")。
ps.setString(13,username)。
out.print("<table width=50% border=1>")。)
out.print("<caption>Result:</caption>")。)
ResultSet rs=ps.executeQuery()。
/* 列印列名 */
ResultSetMetaData rsmd=rs.getMetaData()。
int total=rsmd.getColumnCount();
out.print("<tr>")。)
for(int i=1;i<=total;i )
{
out.print("<th>" rsmd.getColumnName(i) "</th>")。)
}
out.print("</tr>")。
/* 列印結果 */
while(rs.next())
{
out.print("<tr><td>" rs.getString(2) "</td><td>" rs. getString(3) "</td><td>" rs. getLong(4) "</td><td>" rs. getString(5) "</td><td>" rs.getDate(6) "< /td>< td>" rs. getString(7) "</td><td>" rs. getString(8) "</td><td>" rs.getString(9) "< /td>< td>" rs. getString(10) "</td><td>" rs.getString(11) "</td></tr>" )。)
}
out.print("</table>")。
}catch (Exception e2) {e2.printStackTrace();}
最后{out.close();}
}
}
Error
Sep 20, 2021 7: 31:29 PM org. apache.catalina.core.StandardWrapperValve invoke
嚴重。Servlet.service() for servlet [ProfileServlet] in context with path [/Webhtml] threw exception
java.lang.NullPointerException
在com.Webhtml.controller.ProfileServlet.doGet(ProfileServlet.java:20)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valve.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valls.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:500)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(未知來源)
在java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
uj5u.com熱心網友回復:
你沒有在變數 "a "中執行空檢查。這個變數是一個引數,可以是空的,所以你的代碼在:
時崩潰了。if(a.equals("view")
因為這里的a是空的。
為什么 "a "是空的?也許你需要在一個隱藏在表單內的輸入型別中指定引數,而不是直接把它們放在表單的動作中:
為什么是空的?
<form action="ProfileServlet"/span>>
輸入你的用戶名。 <input type=text name=username> <br/>
< input type="hidden"/span> id="ac" name="ac" value="view">
< input type=submit value=submit>
</form>/span>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/329570.html
標籤:
上一篇:void函式不列印,因為不能回傳值,但是當我創建string或int函式時,它會在末尾自動列印null或回傳值
下一篇:用NEST中的映射進行批量更新
