问题标签 [servlet-4]

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.

0 投票
1 回答
871 浏览

spring-mvc - Spring Boot Servlet 4 支持

哪个版本的 Spring Boot 将(或确实)正式支持 Servlet 4 规范?在哪里可以看到文档随附的新功能?

谢谢你。

0 投票
3 回答
16689 浏览

servlets - 必须声明元素 web-app (Servlet 4.0)

我尝试使用 Servlet 4.0 命名空间。该应用程序运行良好,但 IDEA 检测到错误:“必须声明元素 web-app””

快照 (我不能直接发布图像。)

当我将版本更改为 3.1 时,它运行良好:

根据Java EE: XML Schemas for Java EE Deployment Descriptors# Using Java EE Schemas

所有 Java EE 7 和更新的部署描述符模式共享命名空间http://xmlns.jcp.org/xml/ns/javaee/。每个模式文档都包含一个版本属性,该属性包含规范的版本。例如,Servlet 规范的 XML 模式文档包含版本属性值“3.1”,与规范的特定版本以及模式文档本身有关。

version="4.0"支持?我使用 IntelliJ IDEA 2017.2.5 + javax.servlet-api 4.0 + Apache Tomcat v9.0.1。


更新:我找到了 web.xml(in apache-tomcat-9.0.1/webapps/examples/WEB-INF/web.xml) 的示例:

0 投票
2 回答
1526 浏览

java - 无法将项目方面动态 Web 模块的版本更改为 3.1

为什么maven在我的eclipse项目中坚持要把我的Dynamic Web Module改成3.1?我希望它保持 4.0。有没有办法告诉 maven 我想要 Servlet 规范 4.0?到目前为止,Maven 文档还没有为我提供答案。

这是我的pom的一部分:

Servlet 罐子:

Eclipse项目设置:

项目设置

m2e错误:

m2e 错误

我在 Java 10 和 tomcat 9 中使用 Eclipse 氧气。我尝试关闭并重新打开我的项目,进行小的更改,然后 Maven 更新我的项目,删除 maven 配置错误以查看它们是否在更新后返回(它们返回)和其他类似的试错类型的东西。到目前为止,没有任何效果。

0 投票
1 回答
154 浏览

java - 如何从连接池 tomcat 8 获取连接

我正在学习如何使用 Servlet api 并尝试开发我的第一个 Web 应用程序。而且我的 JDBC 连接有问题。我了解如何连接到我的数据库,但我想从连接池中获取连接。我不明白如何使用它。你能给我建议或链接到示例应用程序,看看它是如何工作的吗?

0 投票
1 回答
51 浏览

jakarta-ee - 如何使用 tomcat 提供静态内容?

我正在学习 j2ee 并尝试使用 servlet api 4 开发我的第一个 Web 应用程序。但是我在 css 文件或图像等静态内容方面遇到了一些问题。Tomcat 不会跳过对静态内容的请求。我该如何解决这个问题?这是我的项目结构结构

在这里我想包含我的css文件和图像的jsp文件

<link rel="shortcut icon" href="${pageContext.servletContext.contextPath}/static/images/logo.png" type="image/png"> <link rel="stylesheet" type="text/css" href="${pageContext.servletContext.contextPath}/static/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="${pageContext.servletContext.contextPath}/static/css/simple-sidebar.css">

但我在浏览器中有这样的错误: 错误列表

0 投票
1 回答
827 浏览

java - 该项目不适用于 servlet 4.0 和 jsf 2.3

我有一个在 intellij IDEA 中使用 CDI、JSF、BeanValidation、Servlet-api 的小型 Java EE 项目。我的服务器是 glassfish 5.0.0,我读到它实现了 servlet 4.0、cdi 2.0、jsf 2.3 和 bean 验证 2.0。

我有以下xml配置:

1.web.xml:

2.faces-config.xml:

3.beans.xml:

现在一切都很好,但是当我尝试将 servlet 3.1 更改为 servlet 4.0,将 jsf 2.2 更改为 jsf 2.3 时,我使用表达式语言的所有 jsf 页面都不起作用,例如<h:commandButton action='#{bean.doSomething}' />不触发事件

我做错了什么?对不起我的英语不好。

更新。

我将我的项目移动到 maven,重新更新了所有库,一切正常,所以我认为问题出在错误的配置或库中。

0 投票
0 回答
39 浏览

java - WebFilter:如何使用西里尔字符指定 urlPattern?

对于包含俄语文本的传入请求,我需要一个 WebFilter。过滤器匹配

https://application.com/deleted

但不是

https://application.ru/удалено

我也尝试将编码的字符串作为模式提供,但它不起作用。怎么做才对?

在保持网址“可读”的同时这可能吗?

提前致谢!

0 投票
1 回答
370 浏览

maven - 如何在没有 web.xml 的情况下使用 maven 制作最简单的 HelloWorld servlet

作为一个新手,我创建了一个 HelloWorld servlet:

然后我的pom.xml中有如下配置:

我从 servlet 规范文档中读到,其中告诉

如果 Web 应用程序不包含任何 Servlet、Filter 或 Listener 组件,或者使用注释来声明它们,则它不需要包含 web.xml。换句话说,仅包含静态文件或 JSP 页面的应用程序不需要存在 web.xml。

我确实用过@WebServlet,所以没有包含web.xml

完整的代码库在这里

问题:但是当我尝试使用带有命令的码头mvn jetty:run运行它时,我根本找不到我的 servlet。如何解决这个问题?

0 投票
1 回答
497 浏览

java - 为什么“ServletContext#setRequestCharacterEncoding”对“HttpServletRequest#getReader”没有影响?

我们可以设置默认字符编码以用于读取请求正文ServletContext#setRequestCharacterEncoding(从 Servlet 4.0 开始)。

我认为HttpServletRequest#getReader可以使用ServletContext#setRequestCharacterEncoding(*).

但是HttpServletRequest#getReader返回的阅读器似乎解码的字符不使用设置的编码ServletContext#setRequestCharacterEncoding

我的问题是:

  • 为什么ServletContext#setRequestCharacterEncoding对 没有影响HttpServletRequest#getReader(但对 有影响HttpServletRequest#getParameter)?
  • 有没有描述这种ServletContext#setRequestCharacterEncoding行为的规范HttpServletRequest#getReader

(我阅读了 Servlet 规范版本 4.0,但我找不到任何关于此类行为的规范。)

我创建了一个简单的战争应用程序并进行了测试ServletContext#setRequestCharacterEncoding

[环境]

  • Tomcat9.0.19(我没有更改任何默认配置)
  • JDK11
  • 视窗8.1

[索引.html]

[InitServletContextListener.java]

[SimpleServlet.java]

我没有任何 servlet 过滤器。以上三个都是这个war应用的组件。( GitHub )

案例1:当我提交带有参数'hello'的表单时,'hello'的值被成功解码如下。

案例2:当我点击'post'发送文本内容时,请求体无法成功解码如下。(尽管我确认请求正文是这样由 UTF-8 编码的E3 81 82:)

案例 3:当我也使用HttpServletRequest#setCharacterEncodingservlet 的“doPost”方法的第一行设置编码时,请求正文成功解码。

案例4:当我使用http.setRequestHeader('Content-Type', 'text/plain; charset=UTF-8');javascript时,请求正文成功解码。

案例5:我不调用req.getParameter("hello")时,请求体无法成功解码。

案例 6:当我不调用ServletContext#setRequestCharacterEncodingat 时InitServletContextListener.java,没有设置字符编码。

[笔记]

  • (*)我认为是因为:

    • HttpServletRequest#getReader(1)说 的 java doc

      “阅读器根据正文使用的字符编码翻译字符数据”。

    • HttpServletRequest#getCharacterEncoding(2)说 的 java doc

      “返回此请求正文中使用的字符编码的名称”。

    • (3) 的 java docHttpServletRequest#getCharacterEncoding也说

      “以下用于指定请求字符编码的方法按优先级降序排列:每个请求,每个 Web 应用程序(使用 ServletContext.setRequestCharacterEncoding,部署描述符)”。

  • ServletContext#setResponseCharacterEncoding工作正常。当我使用ServletContext#setResponseCharacterEncoding时,HttpServletResponse#getWriter返回的编写器通过它设置的字符编码对响应正文进行编码。

0 投票
1 回答
109 浏览

jakarta-ee - Java 8 和 Servlet 4 的 Maven 依赖项是什么?

我需要所有 jar servlet-api 的版本。jsp-api、el-api、jstl.等//在哪里以及如何找到这些信息?