相关疑难解决方法(0)

谁能解释servlet映射?

我正在尝试使用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)

任何人都能解释一下吗?

java web.xml servlets spring-mvc java-ee

51
推荐指数
1
解决办法
8万
查看次数

在JSP中添加外部资源(CSS/JavaScript /图像等)

我在项目中添加了一个外部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)

jsp assets jstl el

22
推荐指数
1
解决办法
10万
查看次数

web.xml和/或过滤器返回welcome-file

我需要为特定功能配置我的Tomcat WAR,并且不确定它是否可以通过实现web.xml,或者我是否需要实现1+自定义Filter,或使用其他类型的hackery.

我的应用程序打包为myapp.war.因此,当它从本地Tomcat实例提供时,我可以通过访问它来访问它http://localhost:8080/myapp.

很简单,如果Tomcat收到以下请求,我有一个welcome-file(myapp.html)我希望服务:

  • 本地主机:8080/MYAPP
  • 本地主机:8080/MyApp的/
  • 本地主机:8080/MyApp的/#
  • 本地主机:8080/MyApp的/#<嗒嗒>

...在<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)

我怎么能做到这一点?

java tomcat web.xml servlets servlet-filters

7
推荐指数
1
解决办法
4661
查看次数

如何在Tomcat 6中设置根servlet?

对不起初学者的问题,但我想知道如何在Tomcat 6中设置root servlet?例如,我想访问我的servlet

localhost:8080, 不开

localhost:8080/myservlet
Run Code Online (Sandbox Code Playgroud)

谢谢!

java tomcat servlets tomcat6

6
推荐指数
1
解决办法
5275
查看次数

为一个servlet配置web.xml(Tomcat 5)以处理所有传入请求?

基本上我想要一个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)

结果相同.既没有工作......任何人都有任何建议吗?

java tomcat web.xml servlets

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×4

servlets ×4

tomcat ×3

web.xml ×3

assets ×1

el ×1

java-ee ×1

jsp ×1

jstl ×1

servlet-filters ×1

spring-mvc ×1

tomcat6 ×1