java - 如何在 liferay 中创建顶级 servlet

标签 java servlets liferay liferay-6

我想在 liferay 中创建一个 servlet,它正在监听一个 URL,例如

http://localhost:8080/my-servlet

我试图将它添加到 portlet,但我有 URL

http://localhost:8080/my-portlet/my-servlet

我试图将我的 servlet 描述添加到 ext-web 的 web.xml 中,但没有成功。 有什么办法可以添加这样的 servlet 吗?

最佳答案

如果您想访问 Liferay 服务 API,您可以考虑使用 PortalDelegateServlet :将以下内容添加到您的 web.xml 中:

<servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>com.liferay.portal.kernel.servlet.PortalDelegateServlet</servlet-class>
    <init-param>
        <param-name>servlet-class</param-name>
        <param-value>org.example.MyServlet</param-value>
    </init-param>
    <init-param>
        <param-name>sub-context</param-name>
        <param-value>myservlet</param-value>
    </init-param>
</servlet>

将使您的服务可以通过

访问

http://example.org/delegate/myservlet

在您的 servlet 类中,您可以执行诸如提取登录用户和检查权限之类的操作:

package org.example;

public class MyServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    User user = PortalUtil.getUser(request);
    PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user);
    ...

关于java - 如何在 liferay 中创建顶级 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20950689/

相关文章:

java - 在 BlackBerry 上通过短信、电子邮件、推特、Facebook 分享

java - 按下按钮时 GUI 不会打开 (Java)

java - 在 Maven 扩展中,是否可以像我们为插件所做的那样在 pom.xml 中添加 <configuration> block ?

java - 如何在jsp或servlet中将 "http headers"从一台主机转发到另一台主机?

javascript - 在通过 AJAX 将数据发送到资源之前验证表单。 Liferay 7.3.5

java - Android 上的 Ionic cordova 构建失败?

java - Java Web App Servlet 中的 SQLite JDBC

java - JDBC 驱动程序应该包含在 WAR 中吗?

java - 前端和控制面板的不同 view.jsp

database - 使用 Liferay 向多对多表添加列