问题标签 [servlet-container]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsp - 了解“网络交易”的全过程
我正在做一些研究以了解“网络事务”的漏洞图像:从客户端到服务器的请求,然后是从服务器到客户端的响应。
我所阅读的技术有:servlets container、servlet、JSP。
我在以下步骤中总结了我所理解的内容:
- 客户端发送 HTTP 请求
- HTTP 服务器接收它并将其传输到 servlet 容器
- servlet 容器为此 HTTP 请求创建两个对象:HttpServletRequest 和 HttpServletResponse
- 一个 servlet 实例化一个 Bean 并初始化它的属性:
SomeBean someBean = new SomeBean()
someBean.setProp("value")
- servlet 将请求中的 bean 作为属性存储:
request.setAttribute("bean", someBean)
servlet 将请求传输到 JSP 文件:
this.getServletContext().getRequestDispatcher( "/WEB-INF/JSPFile.jsp").forward( request, response );
JSPFile 使用 servlet 发送的信息:
package.SomeBean someBean = (package.SomeBean)
request.getAttribute("bean");
out.println( someBean.getProp());
JSPFile 由 servlet 容器转换为 servlet 并发送到客户端
问题:如果我错了,请纠正我,我想了解整个过程。
java - 会话对象的范围
1)
正如这里提到的,
HttpSession
对象必须在应用程序(或 servlet 上下文)级别限定范围,其中 context 是,
ServletContext context = request.getServletContext();
2)
HttpSession
对象是在每个浏览器会话中创建的,在 Tomcat 内存中。
-------------------------------------------------- ---------------
我无法将以上两点联系起来。
应用程序是不同 servlet 的集合。servlet 从每个浏览器的每个连接生成一个线程。每个 jsp/servlet 都指向浏览器指向的会话对象的一个版本。
每个浏览器创建的会话对象如何在 Web 应用程序级别限定范围?
java - ServletContainerInitializer 不工作
我正在编写一个程序来测试 ServletContainerInitializer。问题是 ServletContainerInitializer 本身工作正常,并且打印了 ServletContainerInitializer.onStartup 被称为“ssd”但是 ServletContext.addServlet 没有注册我的 servlet,因此没有调用 init 方法。请检查下面的日志
eclipse - 运行我的 servlet 页面时出现 HTTP 错误 404,意味着使用 JSP 和 servlet 从数据库下载 Long BLOB 文件
这是我的 JSP 页面,它显示一个表格并重定向到 servlet 的 url。单击“保存”按钮时收到的错误是“HTTP 状态 404-未找到”。PS。我还制作了另一个jsp,它是使用doPost上传文件的servlet,它工作得很好,但只有项目的这一部分已经困扰了我近一个星期了!
我的 servlet 页面,
控制台显示以下内容,但我仍然必须通过它找到任何错误。
下面给出了新错误 HTTP Status 500 Internal Server Error 的堆栈跟踪,但首先我提到了运行代码时 chrome 中给出的堆栈跟踪部分
cdi - 无法在 servlet 容器中使用带有 jsf 2.3 的 bean
不久前我开始测试 JSF 2.3。但我无法让最重要的功能之一发挥作用。ManagedBeans 的使用。我尝试了很多,使用不同的 servlet 容器(Tomcat 8&9,Jetty 9.2)。但没有任何帮助。希望有人能看到我在资源上的失败。这令人沮丧。我进行了调试,但从未到达过 bean。primefaces 组件工作正常(primefaces 库不是原因)。但我从来没有得到 bean 数据。PS。我正在使用 myfaces,但使用 mojarra 我遇到了同样的问题。
我的豆子:
我的配置bean:
我的小脸:
我的 web.xml:
我的 build.gradle:
豆类.xml:
面孔-config.xml:
rest - 使用 Postman 在 Rest API 中找不到 ServletContainer 类的 HTTP 500 错误
我对使用 Restful Web 服务非常陌生。我正在尝试使用 Tutorialspoint UserManagement 示例中的 Postman 从 Eclipse 运行一个简单的 Restful API。
我已经使用 Eclipse 创建了一个 WAR 文件,并将 war 文件部署到 servlet 容器中,根据我从以下链接说明中找到的将 war 文件部署到 tomcat中的内容,您将 war 文件复制粘贴到 apache tomcat 中的 webapp 文件夹中8.0.49 文件夹将以下链接粘贴到您的网络浏览器或 Postman http://localhost:8080/RestAPI_UserManagement/rest/UserService/user中。
但不断得到一个
Postman 中的 HTTP 500 错误,
在 Eclipse 控制台中,我收到以下错误
我在我的项目文件夹中编写了以下代码(POJO 类、Rest API 和实现 Rest API 的业务逻辑)。这里是实现 Rest API 和 web.xml 的业务登录。
用户服务.java
web.xml
这是我的项目的文件结构。我已将所有 Jersey 库下载到我项目的 /Webcontent/WEB-INF/lib 路径中。
这是我的 catalina.out tomcat 日志。
基于这个我的 catalina.out tomcat 日志,它说缺少一些变量。但我不确定那是什么,以及如何设置它。请帮忙...
java - Tomcat 服务器架构 - Web 容器 vs. Servlet 容器 vs. Servlet 引擎 vs. JSP 引擎
在关闭或否决这个问题之前,请阅读它。
我在互联网上进行了相当大的研究,并浏览了来自 O'Reilly、Apress、PACKT 的 5 本流行书籍,包括两者——关于 Servlet API 的书籍和关于 Tomcat 服务器的书籍。我在这里也找不到任何有价值的东西。
对我来说,重点是在我的脑海中明确定义Tomcat 架构在一个较低的级别和 Servlet Container 的共存。我使用 Java 已经快十年了,所以,我不是在研究基础知识,而是在这里研究一些架构点。Servlet Engine
我正在寻找、Servlet Container
、Web Container
、JSP Container
和组件之间的清晰定义和区别Catalina
。Jasper
我可以找到一些资源,但老实说,它们是直截了当的,并且在某种程度上并不普遍,不同的文章、讲座和书籍对Tomcat 架构的定义不同。
一位讲师说,Tomcat 实例是一个 Web 服务器,它包含分层组织的不同容器组件 - 从 Web Container 开始,Web Container 又包含 Servlet 和 JSP 容器(分别为 Catalina 和 Jasper);
Apress 的 Apache Tomcat 7 定义了 Tomcat 架构,如下所示:
名牌大学的一些讲师表示,Web Container
指Servlet Container
的完全一样,只是同义词;
另一所非常受欢迎的大学的另一位讲师表示,这Web Container
是一个根元素,它包含子组件Servlet Container/Engine
和JSP Container/Engine
.
我可以继续使用来自不同来源的繁琐和矛盾的定义。我只想对 Tomcat 架构有一个非常清晰的了解,那里有哪些组件,哪些术语是同义词(如果有的话)以及它们如何'是从建筑的角度出发的。
也许有什么好书或参考资料?...任何有价值的答案将不胜感激。我真的在为此挖掘,但仍然找不到任何东西。
jakarta-ee - 得到错误 WFLYCTL0013: Operation ("deploy") failed because the class org.glassfish.jersey.servlet.ServletContainer can not be found
我希望有人可以帮助我解决我的问题。
目前我正在尝试在 Wildfly 16 服务器上部署 Java EE 项目。但是,部署中止并显示以下错误消息:
据我所知,我没有相应的依赖。或者如果我想在 wildfly 上部署我的 web 服务,我是否必须选择另一个 jaxb 实现?
我是否必须更改默认配置(domain.xml,...)中的任何内容?或者还有什么可以用来解决这个问题?
spring-boot - aws serverless spring boot 设置失败
这是我下面的设置,
每次当我尝试使用命令从本地控制台调用我的 lambda -“无服务器调用本地 -f hello”时,我都会遇到异常,
Ĵ
在行 - “handler = SpringBootLambdaContainerHandler.getAwsProxyHandler(Application.class);”
请帮我解决这个问题,我尝试了各种使用 aws lambda 进行引导设置的方法,但每次都失败了。请帮助我解决此问题或以任何其他方式帮助我进行设置。谢谢。
java - 使用 CDI 和 Jax-RS 启动独立 Jetty 服务器时出错
我试图让以下项目在独立的 Jetty 实例中运行:
https
://github.com/stilkov/jetty-weld-jersey-sample
运行提到的 Maven 目标 jetty:run 按预期工作。
我正在使用 Jetty_9_4_28_v20200408(提到的项目使用不同的版本 - 我测试了更新 pom.xml 中提到的 Jetty 版本,我仍然能够运行 jetty:run)。我修改了 pom.xml 以反映独立服务器所需的更改:
但是,这会导致启动时出现以下错误(从 IntelliJ 启动 Jetty):
如果我开始激活更多的 Jetty 模块,我可能会遇到不同的错误,但我的直觉认为这可能不是必需的。
注意:在日志中,我介绍了 $PROJECT_DIR 用于匿名化。