doGet方法和doPost方法
博客专区 > jemoii 的博客 > 博客详情
doGet方法和doPost方法
jemoii 发表于3年前
doGet方法和doPost方法
  • 发表于 3年前
  • 阅读 31
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: Head First Servlets & JSP(中文第2版) 第8章学习时的注意事项 本文没有给出确切的解答,对于错误的解释仅作为进一步学习的参考

书中从第366页开始进入EL(JSP表达式语言)的学习,引入EL是为了解决利用<jsp: getProperty>只能访问bean属性的性质,而不能访问属性的性质的性质。


366页底部的Servlet代码补全后为:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class TestBean extends HttpServlet{
    //书上的Servlet代码
    public void doPost(HttpServletRequest request, HttpServletResponse response)
		                            throws IOException, ServletException{
	//后续章节仅有此部分	                            
        foo.Person p = new foo.Person();
        p.setName("Evan");
    
        foo.Dog dog = new foo.Dog();
        dog.setName("Spike");
        p.setDog(dog);
    
        request.setAttribute("person", p);
        //后续章节仅有此部分
        
        RequestDispatcher view = request.getRequestDispatcher("result.jsp");
        view.forward(request. response);
    }
    //书上的Servlet代码
}

368页上方的JSP代码为:

<html><body>

<!--后续章节仅有此部分-->
Dog's name is: ${person.dog.name}

</body><//html>

在后续章节对EL的剖析中,书中采用Servlet代码+JSP代码+浏览器页面显示的方式对EL进行介绍。给出的Servlet代码和JSP代码不再是完整代码,将给出的示例代码代入使用时,浏览器显示405错误: HTTP method GET is not supported by this URL。


查询得到的错误原因为:

1、没有重写父类HttpServlet中的doGet或doPost方法

2、父类HttpServlet中的doGet或doPost方法覆盖了重写的doGet或doPost方法。

对应的解决方法分别为:

1、重写父类HttpServlet中的doGet或doPost方法;

2、删除super.doGet(request, response)或super.doPost(request, response);

而上述代码重写了doPost方法,也没有使用super语句,仍然出现405错误。最后尝试用doGet方法替换doPost方法,页面显示正确结果。


可能的原因:采用直接在浏览器中输入http://localhost:8088/testJSP1/Tester.do来查看显示结果时,URL的提交方式,应使用doGet方法来处理。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 18
码字总数 3346
×
jemoii
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: