我想知道是否可以直接从浏览器调用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()
,是否可以,如果可以,如何?
亲切的问候。
答案 0 :(得分:1)
不,这是不可能的!如果可能的话,这将是一个很大的安全漏洞,因为您的webapp用户可能会调用任何方法!
但是你的servlet可能会调用它想要的生命周期方法。
答案 1 :(得分:0)
servlet规范(2.5)仅支持以下内容;
答案 2 :(得分:0)
不,但您可以通过GET或POST传递一些参数,第一个是您要执行的操作的名称,其他的将是要传入的参数。在Servlet端您可以将不同的操作映射到不同的方法,并简单地传入请求参数。
答案 3 :(得分:0)
是的,如果web-app是servlet 2.5,浏览器可以调用,新的servlet规范支持自定义方法,意味着servlet可以有doFoo()方法,浏览器可以像任何正常的GET,POST那样用foo方法调用Http方法。