当我尝试在Tomacat服务器上使用此代码将数据插入数据库时,它显示错误
<title>Insert Data</title>
<%@page import="com.oreilly.servlet.*,java.sql.*,java.lang.*,java.text.SimpleDateFormat,java.util.*,java.io.*,javax.servlet.*,javax.servlet.http.*" %>
<%@ page import="java.sql.*"%>
<%@ include file="connect.jsp" %>
<%@ page import="java.util.Date" %>
<%
ArrayList list = new ArrayList();
ServletContext context = getServletContext();
String dirName =context.getRealPath("Gallery\");
String paramname=null;
String file=null;
String a=null,b=null,c=null,d=null,image=null;
String ee[]=null;
String checkBok=" ";
int ff=0;
String bin = "";
String uname=null;
String pass=null;
String email=null;
String mno=null;
String dob=null;
String gender=null;
String addr=null;
String pincode=null;
String status="waiting",acc_status="Active";
FileInputStream fs=null;
File file1 = null;
try {
MultipartRequest multi = new MultipartRequest(request, dirName, 10 * 1024 * 1024); // 10MB
Enumeration params = multi.getParameterNames();
while (params.hasMoreElements())
{
paramname = (String) params.nextElement();
if(paramname.equalsIgnoreCase("userid"))
{
uname=multi.getParameter(paramname);
}
if(paramname.equalsIgnoreCase("pass"))
{
pass=multi.getParameter(paramname);
}
if(paramname.equalsIgnoreCase("email"))
{
email=multi.getParameter(paramname);
}
if(paramname.equalsIgnoreCase("mobile"))
{
mno=multi.getParameter(paramname);
}
if(paramname.equalsIgnoreCase("dob"))
{
dob=multi.getParameter(paramname);
}
if(paramname.equalsIgnoreCase("gender"))
{
gender=multi.getParameter(paramname);
}
if(paramname.equalsIgnoreCase("address"))
{
addr=multi.getParameter(paramname);
}
if(paramname.equalsIgnoreCase("pincode"))
{
pincode=multi.getParameter(paramname);
}
if(paramname.equalsIgnoreCase("pic"))
{
image=multi.getParameter(paramname);
}
}
int f = 0;
Enumeration files = multi.getFileNames();
while (files.hasMoreElements())
{
paramname = (String) files.nextElement();
if(paramname != null)
{
f = 1;
image = multi.getFilesystemName(paramname);
String fPath = context.getRealPath("Gallery\"+image);
file1 = new File(fPath);
fs = new FileInputStream(file1);
list.add(fs);
String ss=fPath;
FileInputStream fis = new FileInputStream(ss);
StringBuffer sb1=new StringBuffer();
int i = 0;
while ((i = fis.read()) != -1)
{
if (i != -1)
{
//System.out.println(i);
String hex = Integer.toHexString(i);
// session.put("hex",hex);
sb1.append(hex);
// sb1.append(",");
String binFragment = "";
int iHex;
for(int i1= 0; i1 < hex.length(); i1++)
{
iHex = Integer.parseInt(""+hex.charAt(i1),16);
binFragment = Integer.toBinaryString(iHex);
while(binFragment.length() < 4)
{
binFragment = "0" + binFragment;
}
bin += binFragment;
//System.out.print(bin);
}
}
}
}
}
FileInputStream fs1 = null;
//name=dirName+"\Gallery\"+image;
int lyke=0;
//String as="0";
//image = image.replace(".", "_b.");
String query1="select * from user where username='"+uname+"'";
Statement st1=connection.createStatement();
ResultSet rs1=st1.executeQuery(query1);
if ( rs1.next() )
{
String msg="User Already Registered";
application.setAttribute("msg",msg);
response.sendRedirect("u_register.jsp");
}
else
{
PreparedStatement ps=connection.prepareStatement("insert into user(username,password,email,mobile,dob,gender,address,pincode,status,image,acc_status) values(?,?,?,?,?,?,?,?,?,?,?)");
ps.setString(1,uname);
ps.setString(2,pass);
ps.setString(3,email);
ps.setString(4,mno);
ps.setString(5,dob);
ps.setString(6,gender);
ps.setString(7,addr);
ps.setString(8,pincode);
ps.setString(9,status);
ps.setBinaryStream(10, (InputStream)fs, (int)(file1.length()));
ps.setString(11,acc_status);
int x=ps.executeUpdate();
if(x>0)
{
response.sendRedirect("ur_clickpoints.jsp?uname="+uname+"");
}
}
}
catch (Exception e)
{
out.println(e.getMessage());
e.printStackTrace();
}
%>
这是错误
Type Exception Report
Message Unable to compile class for JSP:
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: [32] in the jsp file: [/geethu/u_insertdata.jsp]
MultipartRequest cannot be resolved to a type
29: File file1 = null;
30:
31: try {
32: MultipartRequest multi = new MultipartRequest(request, dirName, 10 * 1024 * 1024); // 10MB
33: Enumeration params = multi.getParameterNames();
34: while (params.hasMoreElements())
35: {
An error occurred at line: [32] in the jsp file: [/geethu/u_insertdata.jsp]
MultipartRequest cannot be resolved to a type
29: File file1 = null;
30:
31: try {
32: MultipartRequest multi = new MultipartRequest(request, dirName, 10 * 1024 * 1024); // 10MB
33: Enumeration params = multi.getParameterNames();
34: while (params.hasMoreElements())
35: {
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:213)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:461)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:392)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:362)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:346)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Note The full stack trace of the root cause is available in the server logs.
添加一个新的字符串变量作为 PATH,并在那里为您的dirName
分配正确的路径位置。
String PATH = "//Your Path here ";
将此 PATH 传递给多请求对象。
MultipartRequest multi = new MultipartRequest(request, PATH, 10 * 1024 * 1024);
试试这个,我认为这将有助于!!