我正在使用struts2。我试图将图像的路径存储到数据库中并将图像存储在服务器中,然后想要在jsp页面中检索这些图像数据。我需要指导。但我得到一个错误
java.lang.NullPointerException
我创建了3个班级。注册(bean类)registrationService(jdbc代码)registrationaction
注册.java
public class Registration{
private String first_name;
private String last_name;
private String gender;
private String email_id;
private String password;
private String dob;
private String father_name;
private String mother_name;
private String contact;
private String mobile;
private String address;
private String city;
private String country;
private String graduation;
private String graduate_school_mark;
private String graduation_year;
private String inter_school;
private String inter_school_mark;
private String inter_year;
private String high_school;
private String high_school_mark;
private String high_school_year;
private String role;
private String salary;
private File fphoto;
private File fresume;
private String pre_company;
// getter和setter
RegistrationService.java
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.apache.struts2.ServletActionContext;
public class RegistrationService {
public boolean filledRegistration(Registration registration) throws SQLException, ClassNotFoundException, FileNotFoundException, IOException{
Class.forName("com.mysql.jdbc.Driver");
Connection con= DriverManager.getConnection("jdbc:mysql://localhost:3306/erp","root","ali$");
String sql = "insert into registration(first_name,last_name,password,gender,email_id,dob,"
+ "father_name,mother_name,contact,mobile,address,city,country,graduation,"
+ "graduation_marks,graduation_year,inter,inter_marks,inter_year,high_school,"
+ "high_marks,high_year,role,salary,resume,photo,pre_comp) value(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement p= con.prepareStatement(sql);
p.setString(1,registration.getFirst_name());
p.setString(2,registration.getLast_name());
p.setString(3,registration.getPassword());
p.setString(4,registration.getGender());
p.setString(5,registration.getEmail_id());
p.setString(6,registration.getDob());
p.setString(7,registration.getFather_name());
p.setString(8,registration.getMother_name());
p.setString(9,registration.getContact());
p.setString(10,registration.getMobile());
p.setString(11,registration.getAddress());
p.setString(12,registration.getCity());
p.setString(13,registration.getCountry());
p.setString(14,registration.getGraduation());
p.setString(15,registration.getGraduate_school_mark());
p.setString(16,registration.getGraduation_year());
p.setString(17,registration.getInter_school());
p.setString(18,registration.getInter_school_mark());
p.setString(19,registration.getInter_year());
p.setString(20,registration.getHigh_school());
p.setString(21,registration.getHigh_school_mark());
p.setString(22,registration.getHigh_school_year());
p.setString(23,registration.getRole());
p.setString(24,registration.getSalary());
FileInputStream fis1 = new FileInputStream(registration.getFphoto());
p.setBinaryStream(25,fis1);
FileInputStream fis=new FileInputStream(registration.getFphoto());
p.setBinaryStream(26, fis);
p.setString(27,registration.getPre_company());
String s= ServletActionContext.getRequest().getRealPath("");
System.out.println(s);
int temp= s.lastIndexOf("\\");
String s1= s.substring(0, temp);
// System.out.println("---------->"+s1);
int temp1 = s1.lastIndexOf("\\");
String s2= s1.substring(0, temp1);
FileOutputStream fos=new FileOutputStream(s2+"\\web\\Images\\image"+registration.getEmail_id()+".jpg");
byte buffer[]=new byte[1024];
int read=0;
while((read=fis.read(buffer, 0, 1024))!=-1){
fos.write(buffer);
}
fis.close();
fos.close();
int i= p.executeUpdate();
if(i>0){
return true;
}
return false;
}
}
RegistrationAction.java
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import java.io.IOException;
import java.sql.SQLException;
public class RegistrationAction extends ActionSupport implements ModelDriven{
Registration registration=new Registration();
public Registration getRegistration() {
return registration;
}
public void setRegistration(Registration registration) {
this.registration = registration;
}
@Override
public String execute() throws ClassNotFoundException, SQLException, IOException{
RegistrationService rs= new RegistrationService();
if( rs.filledRegistration(registration)){
return "registered";
} else {
}
return "failed";
}
@Override
public Object getModel() {
return registration;
}
}
welcome.jsp
<%@taglib uri="/struts-tags" prefix="s"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<s:property value="user.email"/>
<s:property value="user."/>
<h1>Welcome</h1>
<s:property value="user.user_name"/>
<s:form action="logoutAction">
<s:submit value="logout"/>
<%
String s=(String)request.getContextPath();
String path=s+"/Images/"+user.email+".jpg";
%>
<img src="<%=path%>" width="200" height="200" />
</s:form>
</body>
</html>
玻璃鱼服务器
Severe: Exception occurred during processing request: null
java.lang.NullPointerException
at java.io.FileInputStream.<init>(FileInputStream.java:130)
at package_registration.RegistrationService.filledRegistration(RegistrationService.java:53)
at package_registration.RegistrationAction.execute(RegistrationAction.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289)
满足您要求的正确设计是:-
1)将图像路径存储到数据库。
2)将图像存储在服务器中,并使用路径访问这些图像。
现在,您的Registration类的fphoto应该为String类型。因为您要存储图像路径,而不是将实际图像存储在db中。
获得文件路径后,创建一个File对象,并将其传递给FileOutputStream,该文件可用于在jsp上显示图像。
问题内容: 您好,我在较早之前发布了此内容,并获得了一些帮助,但仍然没有有效的解决方案。由于最后的问与答,我确定我的“保存到数据库”代码以及“检索到图片”代码有问题。即使我手动将图片保存在数据库中,它也不会恢复。这是我从网络上的3或4个示例中修补而成的代码。理想情况下,如果有人拥有一些已知的良好代码,并且可以指导我这样做,那将是最好的。 ![在此处输入图片描述] [1] ‘*使用以下代码检索到图片
问题内容: 如何在MySQL中插入图像,然后使用PHP检索图像? 我在这两个领域的经验都很有限,我可以使用一些代码让我着手解决这个问题。 问题答案: 首先,您创建一个MySQL表来存储图像,例如: 然后,您可以将图像写入数据库,如下所示: 您可以使用以下方法在网页中显示数据库中的图像:
问题内容: 嗨,我已经成功地将jTable链接到JDBC数据库。但是,我在检索它们时遇到了麻烦。我希望在重新启动程序时出现保存的数据,但是它不起作用。 这是我保存文档的代码! 有什么方法可以检索JDBC数据库中的数据并通过Jtable显示它?我很抱歉提出这样一个简单的问题,但是我是Java新手,我非常需要帮助! 非常感谢! 用于加载数据的代码… 顺便说一句,我的jtable是一个3列的表,其中包含
我想从数据库中检索名称。但我总是收到错误: 数据库Java语言 它不断返回错误 android.database.CursorIndexOutOfBoundsException:请求索引-1,大小为1,字符串名称=helper.getProductNameT(cur); 有人知道我的编码哪里出错了吗?
互联网日安! 我正在尝试从mysql数据库检索并显示一个图像到一个图像视图(android)中。图像是blob类型。我有以下php代码从MySQL获取图像。 下面是使用JSON的android代码。 提前感谢您的帮助!
最近,我一直试图在Java中缩放像素数组(INT[])。我使用。setrgb()将我所有的像素数据添加到BufferedImage中。然后,BufferedImage提供了一个名为.getScaledInstance()的函数。这对我来说应该很有效,但我遇到了一个问题。.getScaledInstance()返回图像,而不是BufferedImage。对于Image对象,我不能使用.getrgb(
问题内容: 我正在尝试以android应用程序的形式创建一个小型课程聚合程序。 我的课程全部存储在Firebase实时数据库中,该数据库可从firebase控制台查看,并且一切正常。 问题是我已经编写了一个Java方法来连接到DB,从DB检索数据,将数据转换为Custom Java对象,将其附加到另一个Custom Java对象,然后将该对象保存到ArrayList中。 与数据库的连接已成功建立,
我尝试用php建立一个上传图片系统。经过测试,系统回声“图像已上传”,但在数据库中没有显示。这是我的密码 upload.php get.php 我点击了提交按钮,没有选择任何文件,这2行警告显示出来 警告:file_get_contents():upload.php第14行中的文件名不能为空。 line14是这个$Image=addslash(file_get_contents($_FILES['