为什么不使用service()而不是doPost()和doGet()?

时间:2019-05-04 18:24:16

标签: java jsp

我对Java非常陌生。我有一个运行良好的脚本,但我想了解其背后的逻辑。

如果用户键入他的用户名,我想输出相同的名称。

我正在使用

>>> import html
>>> html.unescape('&#66&#108&#97&#115&#116&#101&#114&#106&#97&#120&#120&#32')
'Blasterjaxx '

但是我从许多教程中看到

protected void service(HttpServletRequest req, HttpServletResponse resp)

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

我认为我了解protected void doGet(HttpServletRequest req, HttpServletResponse resp) doGet()之间的区别。两者都将由方法doPost()调用。那么,如果我可以简单地使用service(),为什么还要使用doGet()doPost()

我的整个代码如下:

service()

1 个答案:

答案 0 :(得分:2)

如果您覆盖service,则Servlet将处理所有请求方法(GETPOST,...)。这些请求方法具有不同的含义,并且预期以不同的方式运行,请参见HTTP request methods

因此,您的servlet将无法为其中的某些返回正确的响应,并且servlet的用户可能会感到困惑,例如为什么DELETE的行为方式与GET相同,而实际上并未修改源代码。

另外,这取决于您的servlet所做的事情,它可能会引入安全漏洞,例如,当您的servlet(也处理GET)修改数据库时。