[英]What is standard web.xml java header to get <jsp-config> tag working?
I've got a GlassFish 3.1.2 app server and I've started using JSP pages so I'm interested in configuring the encoding correctly for UTF-8. 我有一个GlassFish 3.1.2应用程序服务器,我已经开始使用JSP页面,所以我有兴趣为UTF-8正确配置编码。
My original working web.xml
file started with 我的原始工作web.xml
文件以
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
but then I added the following to it to force UTF-8 encoding 但后来我添加了以下内容以强制UTF-8编码
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
and my GlassFish 3.1.2 server log file reported 和我的GlassFish 3.1.2服务器日志文件报告
Element type <jsp-config> must be declared web.xml
In an attempt to fix the error, I changed the start of my web.xml
file to be 为了修复错误,我将web.xml
文件的开头更改为
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4" >
and now I'm getting a GlassFish server error 现在我收到一个GlassFish服务器错误
Invalid Deployment Descriptors in Deployment descriptor file WEB-INF/web.xml ...
One of '{"http://java.sun.com/xml/ns/j2ee":servlet-class,
"http://java.sun.com/xml/ns/j2ee":jsp-file}' is expected.
Is my syntax off? 我的语法是否关闭? How to get <jsp-config>
working with header in xml.web
file for version 2.3? 如何让<jsp-config>
在版本2.3的xml.web
文件中使用头文件?
UPDATE 1 更新1
If I start the web.xml
file as 如果我启动web.xml
文件为
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_3.xsd"
version="2.3">
<display-name>myApp</display-name>
<description>My Application</description>
<listener>
<listener-class>...</listener-class>
</listener>
<servlet>
<servlet-name>MessageBrokerServlet</servlet-name>
<display-name>MessageBrokerServlet</display-name>
<servlet-class>...</servlet-class>
<init-param>
<param-name>...</param-name>
<param-value>...</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>Reg</servlet-name>
<servlet-class>com.mydomain.servlet.Reg</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Reg</servlet-name>
<url-pattern>/reg</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
</web-app>
I see this error: 我看到这个错误:
[#|2014-11-06T13:03:59.779-0800|SEVERE|glassfish3.1.2|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=1;_ThreadName=Thread-2;|DPL8015:
Invalid Deployment Descriptors in Deployment descriptor file WEB-INF/web.xml in archive [myapp]. 存档[myapp]中部署描述符文件WEB-INF / web.xml中的无效部署描述符。 Line 7 Column 41 -- s4s-elt-character: Non-whitespace characters are not allowed in schema elements other than 'xs:appinfo' and 'xs:documentation'. 第7行第41列 - s4s-elt-character:除“xs:appinfo”和“xs:documentation”之外的架构元素中不允许使用非空白字符。 Saw 'var _U = "undefined"; 看到'var _U =“undefined”; var g_HttpRelativeWebRoot = "/ocom/";'.|#] var g_HttpRelativeWebRoot =“/ ocom /”;'。|#]
[#|2014-11-06T13:03:59.779-0800|SEVERE|glassfish3.1.2|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=1;_ThreadName=Thread-2;|DPL8005: Deployment Descriptor parsing failure : s4s-elt-character: Non-whitespace characters are not allowed in schema elements other than 'xs:appinfo' and 'xs:documentation'. [#| 2014-11-06T13:03:59.779-0800 |严重| glassfish3.1.2 | javax.enterprise.system.tools.deployment.org.glassfish.deployment.common | _ThreadID = 1; _ThreadName =线程2; | DPL8005:部署描述符解析失败:s4s-elt-character:除了'xs:appinfo'和'xs:documentation'之外的架构元素中不允许使用非空白字符。 Saw 'var _U = "undefined"; 看到'var _U =“undefined”; var g_HttpRelativeWebRoot = "/ocom/";'.|#] var g_HttpRelativeWebRoot =“/ ocom /”;'。|#]
UPDATE 2 更新2
Alternatively, I also have a glassfish-web.xml
file in WEB-INF
directory. 或者,我在WEB-INF
目录中也有一个glassfish-web.xml
文件。 If I revert the web.xml
file back to original and place the <jsp-config>
section in glassfish-web.xml
instead of web.xml
, the server starts fine. 如果我将web.xml
文件恢复为原始文件并将<jsp-config>
部分放在glassfish-web.xml
而不是web.xml
,则服务器启动正常。 Which file is <jsp-config>
supposed to go in, or does it matter? 哪个文件<jsp-config>
应该进入,或者它重要吗?
To configure JSP with UTF-8 you need to use, at the first line of the jsp: 要使用UTF-8配置JSP,您需要在jsp的第一行使用:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
You should use this but with your version: 您应该使用此版本,但使用您的版本:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
An example of my web.xml 我的web.xml的一个例子
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>base</display-name>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/spring-mvc-dispatcher.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/spring-database.xml,
/WEB-INF/spring/spring-security.xml
</param-value>
</context-param>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
For servlet 3.1 api level use: 对于servlet 3.1 api级别使用:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
metadata-complete="true">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.