我想知道是否有可能直接从浏览器中调用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(),是否可以?如果可以,怎么办?

亲切的问候。

最佳答案

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

但是您的servlet可能会在其生命周期方法中调用它想要的东西。

09-12 22:41