首页 > 解决方案 > 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(未知来源)

标签: javajspweb-deployment

解决方案


推荐阅读