我正在尝试使用SpringMVC编写Web应用程序.通常情况下,我只是将一些伪造的文件扩展名映射到Spring的前端控制器并幸福地生活,但这次我要使用类似REST的URL,没有文件扩展名.
将我的上下文路径下的所有内容映射到前端控制器(让我们称之为" app ")意味着我也应该处理静态文件,这是我不想做的事情(为什么要重新发明另一个呢?),所以某些与tomcat默认的组合servlet(让我们称之为" tomcat ")似乎是要走的路.
我有工作做的事情
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tomcat</servlet-name>
<url-pattern>*.ext</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
并为我的静态内容的每个文件扩展名重复后者.我只是想知道为什么以下设置,对我来说等同于上面的设置,不起作用.
<!-- failed attempt #1 -->
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tomcat</servlet-name>
<url-pattern>*.ext</url-pattern>
</servlet-mapping>
<!-- failed attempt #2 -->
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tomcat</servlet-name>
<url-pattern>/some-static-content-folder/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
任何人都能解释一下吗?
我在项目中添加了一个外部CSS样式表,并放在Eclipse项目的WEB-CONTENTS文件夹中.当我在Tomcat上部署它时,没有应用样式表.当我在Chrome中调试并打开它时,它给了我404 file not found错误.为什么这样以及如何解决?
这是代码:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>joined now </title>
<link href="globalCSS.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div>this is at the top</div>
<c:import url="header.jsp" />
<c:import url="navigationBar.jsp" />
<c:import url="leftpane.jsp" />
<c:import url="mainContent.jsp" />
<c:import url="rightpane.jsp" />
<c:import url="footer.jsp" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我需要为特定功能配置我的Tomcat WAR,并且不确定它是否可以通过实现web.xml,或者我是否需要实现1+自定义Filter,或使用其他类型的hackery.
我的应用程序打包为myapp.war.因此,当它从本地Tomcat实例提供时,我可以通过访问它来访问它http://localhost:8080/myapp.
很简单,如果Tomcat收到以下请求,我有一个welcome-file(myapp.html)我希望服务:
...在<blah>井号(#)之后的任何字符串/正则表达式中.
因此,如果用户前往http://localhost:8080/myapp,则返回myapp.html.如果用户去http://localhost:8080/myapp/#fjrifjri,那猜猜是什么?服回来myapp.html.
但是,如果用户去,比方说,http://localhost:8080/myapp/fizz那么我想要正常的web.xml servlet-mapping逻辑,我希望Tomcat服务于任何servlet映射到的/fizz等等.
目前我web.xml看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee">
<welcome-file-list>
<welcome-file>myapp.html</welcome-file>
</welcome-file-list>
</web-app>
Run Code Online (Sandbox Code Playgroud)
我怎么能做到这一点?
对不起初学者的问题,但我想知道如何在Tomcat 6中设置root servlet?例如,我想访问我的servlet
localhost:8080, 不开
localhost:8080/myservlet
Run Code Online (Sandbox Code Playgroud)
谢谢!
基本上我想要一个servlet来处理所有传入的请求,而不管路径如何.我在共享托管环境中可以访问配置我自己的web.xml文件.
我在web.xml中配置了以下内容,但它不适用于Tomcat 5:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
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">
<display-name>Redirect</display-name>
<servlet>
<display-name>Redirect</display-name>
<servlet-name>Redirect</servlet-name>
<servlet-class>com.Redirect</servlet-class>
<init-param>
<param-name>host</param-name>
<param-value>www.myredirectdomain.com</param-value>
</init-param>
<init-param>
<param-name>redirect-type</param-name>
<param-value>301</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Redirect</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
以上工作适用于以路径中的目录开头的任何内容,例如:
www.mydomain.com/anypath1/anypath2...
www.mydomain.com/anypath1
Run Code Online (Sandbox Code Playgroud)
但是,不起作用:
www.mydomain.com/ or
www.mydomain.com
Run Code Online (Sandbox Code Playgroud)
我还尝试了以下servlet映射:
<servlet-mapping>
<servlet-name>Redirect</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
结果相同.既没有工作......任何人都有任何建议吗?