java - servlet [jsp] 的 Servlet.service() 在路径 [/Student_Portal_2.0] 的上下文中引发异常 [java.lang.NullPointerException],根本原因
问题描述
我试图上传个人资料图片并显示它,所以我观看了一些 youtube 教程,我用它编写了这段代码,但我遇到了问题“Servlet.service() for servlet [jsp] in context with path [/Student_Portal_2.0]引发异常 [java.lang.NullPointerException] 根本原因“这是代码
<%@page import="java.sql.*,java.text.*,javax.servlet.*,
java.security.MessageDigest ,java.security.NoSuchAlgorithmException
,java.io.File,java.io.PrintWriter,java.awt.List,
java.nio.file.Path,java.nio.file.Paths,javax.servlet.http.Part
,javax.servlet.annotation.MultipartConfig,java.io.IOException"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%response.setContentType("text/html;charset=UTF-8");%>
<%!
static javax.servlet.http.Part part;
%>
<%!
private String extractFileName(Part part)
{
String contetntDisp=part.getHeader("content-disposition");
String[] items=contetntDisp.split(";");
for(String s: items)
{
if(s.trim().startsWith("filename"))
{
return s.substring(s.indexOf("=")+2,s.length()-1);
}
}
return "";
}
%>
<%
String username=(String) session.getAttribute("nkey");
String f_name =request.getParameter("f_name");
String l_name =request.getParameter("l_name");
part =request.getPart("profile_link");
//String p_l=request.getParameter("profile_link");
String id_link =request.getParameter("id_link");
//int age =Integer.parseInt(request.getParameter("age"));
String age =request.getParameter("age");
String gender =request.getParameter("gender");
String address =request.getParameter("address");
//int pincode =Integer.parseInt(request.getParameter("pincode"));
String pincode =request.getParameter("pincode");
String qualification =request.getParameter("qualification");
String year =request.getParameter("year");
String college_name =request.getParameter("college_name");
String state =request.getParameter("state");
String country =request.getParameter("country");
%>
<%!
private static final String SAVE_DIR="Pictures";
%>
<%
PrintWriter outt=response.getWriter();
String savePath="C:/Users/thots/Desktop/My World/internsip/Student_Portal 2.0/WebContent"+File.separator+SAVE_DIR;
File fileSaveDir=new File(savePath);
String fileName=extractFileName(part);
part.write(savePath + File.separator + fileName);
String filePath=savePath+File.separator + fileName;
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Student_Portal 2.0","root","");
Statement st=con.createStatement();
int i=st.executeUpdate("insert into student_details values('"+username+"','"+f_name+"','"+l_name+"','"+filePath+"','"+id_link+"','"+age+"','"+gender+"','"+address+"','"+pincode+"','"+qualification+"','"+year+"','"+college_name+"','"+state+"','"+country+"')");
if(i>0)
{
response.sendRedirect("index.jsp");
Statement stt=con.createStatement();
String sql="update user_login set P_Status='1' where username='"+username+"'";
stt.executeUpdate(sql);
}
else
{
System.out.println("Failed");
}
}
catch (Exception e)
{
e.printStackTrace();
}
%>
很抱歉分享整个代码。我尝试了多种方法,但没有一个对我有用有人请帮助我谢谢。
这是完整的错误消息 2020 年 7 月 1 日下午 7:12:41 org.apache.catalina.core.StandardWrapperValve 调用 SEVERE: Servlet.service() for servlet [jsp] in context with path [/Student_Portal_2.0] throw exception [java.lang.NullPointerException] with root cause java.lang.NullPointerException at org.apache.jsp.add_005fstudent_005fdetails_jsp.extractFileName(add_005fstudent_005fdetails_jsp.java:38) at org.apache.jsp.add_005fstudent_005fdetails_jsp._jspService(add_005fstudent_005fdetails_jsp.java:203) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper. java:476) 在 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:741) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 在 org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve. java:96) 在 org.apache.catalina.core.StandardHostValve 的 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)。调用(StandardHostValve.java:139)在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)在 org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)在 org.apache .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) 在 org.apache.coyote.http11.Http11Processor.service(Http11Processor.java :408) 在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834) 在 org.apache.tomcat.util.net 的 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)。 NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415) 在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 在 java.util.concurrent.ThreadPoolExecutor。runWorker(Unknown Source) at 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(未知来源)
解决方案
推荐阅读
- python - Python: abstract property type validation
- apache-kafka - Mirrormaker2.0 vs 融合复制器
- python - How to add _ between group of digits in YAML using Python's PyYAML
- swift - 在 SwitfUI 中显示 UIImage 很暗 - Apple Watch
- azure-devops - How to download an image from Azure DevOps Services HTML Field using API
- javascript - 如何在 Shopify 中使用 UTM 活动值标记新订单
- swift - 将 .onReceive 闭包添加到 SwiftUI 列表 -> 奇怪的错误
- gensim - LdaMallet 中的主题建模
- python - 处理要预测的元组中的分类值
- python - 带有 SSL 证书的 Django 请求