在jsp中制作WebServlet注释时遇到问题

时间:2017-03-08 02:49:56

标签: java html jsp

我正在尝试使用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>

1 个答案:

答案 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

请提供更多信息。