我正在尝试使用servlet将blob格式的图片上传到数据库中,但是我在尝试制作@WebServlet注释时遇到了麻烦。
当我提交表单时,表示找不到资源。
studentdashboard.jsp
class JsonEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime):
return obj.isoformat()
elif isinstance(obj, ndb.Key):
return obj.urlsafe()
return json.JSONEncoder.default(self, obj)
class BaseRequestHandler(webapp2.RequestHandler):
def json_response(self, data, status=200):
self.response.headers['Content-Type'] = 'application/json'
self.response.status_int = status
self.response.write(json.dumps(data, cls=JsonEncoder))
class APIHandler(BaseRequestHandler):
def get_product(self):
product = Product.get(id=1)
if product:
jpro = product.to_dict()
self.json_response(jpro)
else:
self.json_response({'msg': 'product not found'}, status=404)
changedp.java
<form class="form-inline" action="changedp" method="post" enctype="multipart/form-data">
<div class="col-md-4">
<div class="form-group">
<input class="btn" type="file" name="dp" id="dp">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<input class="btn btn-primary" type="submit" value="Upload File">
</div>
</div>
</form>
答案 0 :(得分:0)
您可以将注释更改为
@WebServlet(name = "changedp", urlPatterns = {"/changedp"})
它应该有用。
还有短变种
@WebServlet("/changedp")
按照惯例,班级中每个内部词的第一个字母应该大写。
Servlet中的实例变量也不是线程安全的,所以在将来尝试避免使用它们。
表格行动:
<form id="form-inline" name="form-inline" action="${pageContext.request.contextPath}/changedp" method="post" enctype="multipart/form-data" accept-charset="utf-8">
或
<form id="form-inline" action="changedp" method="post" enctype="multipart/form-data">
尝试切换注释的顺序。
@MultipartConfig(maxFileSize = 16177215) // upload file's size up to 16MB
@WebServlet(name = "changedp", urlPatterns = {"/changedp"})
public class changedp extends HttpServlet {
同时检查您的网址。你是否正确输入http://localhost:8080/YourProjectName/changedp
请提供更多信息。