从浏览器调用Servlet非生命周期方法

时间:2011-01-31 10:53:41

标签: java servlets


    我想知道是否可以直接从浏览器调用servlet的非生命周期方法 例如,如果我有像 -

这样的示例代码
public CheckServlet extends HttpServlet {
     public void foo(HttpServletRequest req, HttpServletResponse res) {
         // do something
     }
}

web.xml -

<servlet>
    <display-name>CheckServlet</display-name>
    <servlet-name>CheckServlet</servlet-name>
    <servlet-class>defpkg.CheckServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>CheckServlet</servlet-name>
    <url-pattern>/CheckServlet</url-pattern>
</servlet-mapping>

浏览器网址 -

http://localhost:8080/MyApp/CheckServlet

现在,如果我必须从浏览器拨打foo(),是否可以,如果可以,如何?

亲切的问候。

4 个答案:

答案 0 :(得分:1)

不,这是不可能的!如果可能的话,这将是一个很大的安全漏洞,因为您的webapp用户可能会调用任何方法!

但是你的servlet可能会调用它想要的生命周期方法。

答案 1 :(得分:0)

servlet规范(2.5)仅支持以下内容;

  • doGet
  • doPost
  • doPut
  • doDelete
  • doHead
  • doOptions
  • doTrace

答案 2 :(得分:0)

不,但您可以通过GET或POST传递一些参数,第一个是您要执行的操作的名称,其他的将是要传入的参数。在Servlet端您可以将不同的操作映射到不同的方法,并简单地传入请求参数。

答案 3 :(得分:0)

是的,如果web-app是servlet 2.5,浏览器可以调用,新的servlet规范支持自定义方法,意味着servlet可以有doFoo()方法,浏览器可以像任何正常的GET,POST那样用foo方法调用Http方法。