老师,这个地方,改成doPost,405错误,说这个方法不被URL所支持,是有什么规定???

老师,这个地方,改成doPost,405错误,说这个方法不被URL所支持,是有什么规定???

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

1、同学的意思是同学用get方法提交的,只是把Servlet中的方法名doGet改成了doPost么?

还是表单改成了post提交并且把代码写到doPost方法呢?

2、同学是用的eclipse的内置浏览器或者ie浏览器么?如果是,换成其他浏览器试试谷歌或者火狐等。

3、

如果还是没有解决,请同学贴一下你的代码,老师测试一下试试。

注意不要贴在回复里,会失去代码的格式。可以在回答里贴一下。祝学习愉快。


  • WindBelll 提问者 #1
    老师,代码在上方呢,我只是把老师对employeeServlet的doGet换成doPost了,chromes上测试不行,405错误,改成doGet就行,
    2018-12-18 17:40:35
  • 好帮手慕阿莹 回复 提问者 WindBelll #2
    同学是不是在浏览器端直接输入访问地址的呢?浏览器输入/emp是通过get方法提交的,get方法提交的要用doGet方法接收。同理,如果用表单提交,method属性写的是get就会访问doGet方法,如果写的post就是访问doPost方法。 如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2018-12-18 18:12:57
提问者 WindBelll 2018-12-18 17:37:41


package com.cl.employee;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class EmpServlet
 */
@WebServlet("/emp")
public class EmpServlet extends HttpServlet {
 private static final long serialVersionUID = 1L;
      
    /**
     * @see HttpServlet#HttpServlet()
     */
    public EmpServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

 /**
  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub
  //采用doPost怎么会不允许,什么原因
  request.setCharacterEncoding("UTF-8");
  //使用全局对象ServletContext,让后进行数据初始化操作
  ServletContext context=request.getServletContext();
  if(context.getAttribute("employee")==null) {
   List list=new ArrayList();
   list.add(new Employee(2212,"张小小","开发部","web前端工程师",20000f));
   context.setAttribute("employee", list);
  }  
  request.getRequestDispatcher("/employee.jsp").forward(request,response);
 }
}


chrismorgen 2018-12-18 11:58:35

你好同学,如果你前端请求是用get方式提交的话,你需要用doGet方法来接收,当用doPost方法来接收时,就会出现报错,如何使用doPost或者doGet方法,同学可以参考一下这个被采纳的问答,http://class.imooc.com/course/qadetail/67933,如果有什么不理解的地方,可以继续提问,祝学习愉快~

  • 提问者 WindBelll #1
    老师,我还没购买那个java数据库实战的课程,无法看到,不过上面employeeServlet是进行初始化操作的,并不是进行员工的增加,所以不是很明白
    2018-12-18 12:15:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10205    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师