友好的Url映射问题-JavaSpring

友好的Url映射问题-JavaSpring,java,spring,spring-mvc,mapping,friendly-url,Java,Spring,Spring Mvc,Mapping,Friendly Url,我正在与web.xml上的错误作斗争,其中所有页面都以404的形式出现,可能有根路径,但我无法确定其设置位置等 这是我当前的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

我正在与web.xml上的错误作斗争,其中所有页面都以404的形式出现,可能有根路径,但我无法确定其设置位置等

这是我当前的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/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Spring3MVC</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>
                  org.springframework.web.servlet.DispatcherServlet
              </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/*</url-pattern>

  </servlet-mapping>
</web-app>
/*
 * User
*/
@RequestMapping(value={"/user/{id}"}, method=RequestMethod.GET)
public ModelAndView profileDisplay(
        HttpServletRequest request, 
        HttpServletResponse response,
        @RequestParam(value="id", required=false) String id
) throws UnknownHostException, MongoException {
    ServiceSerlvet.appendSesssion(request);
    //get search ALL users
    BasicDBObject searchQuery = new BasicDBObject();
        searchQuery.put("_id", new ObjectId(id));
    List<DBObject> searchResponse = PersonController.searchUsers(searchQuery);      

    //System.out.println("response from search user method: "+searchResponse);

        return new ModelAndView("user", "people", searchResponse);
}
<?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/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Spring3MVC</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>
                  org.springframework.web.servlet.DispatcherServlet
              </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <http auto-config='true'>
   <intercept-url pattern="/css/**" filters="none"  />
    <intercept-url pattern="/images/**" filters="none" />
    <intercept-url pattern="/js/**" filters="none" />
  </http>
</web-app>

Spring3MVC
index.jsp
春天
org.springframework.web.servlet.DispatcherServlet
1.
春天
/*

我的监听器控制器是这样的

<?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/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Spring3MVC</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>
                  org.springframework.web.servlet.DispatcherServlet
              </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/*</url-pattern>

  </servlet-mapping>
</web-app>
/*
 * User
*/
@RequestMapping(value={"/user/{id}"}, method=RequestMethod.GET)
public ModelAndView profileDisplay(
        HttpServletRequest request, 
        HttpServletResponse response,
        @RequestParam(value="id", required=false) String id
) throws UnknownHostException, MongoException {
    ServiceSerlvet.appendSesssion(request);
    //get search ALL users
    BasicDBObject searchQuery = new BasicDBObject();
        searchQuery.put("_id", new ObjectId(id));
    List<DBObject> searchResponse = PersonController.searchUsers(searchQuery);      

    //System.out.println("response from search user method: "+searchResponse);

        return new ModelAndView("user", "people", searchResponse);
}
<?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/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Spring3MVC</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>
                  org.springframework.web.servlet.DispatcherServlet
              </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <http auto-config='true'>
   <intercept-url pattern="/css/**" filters="none"  />
    <intercept-url pattern="/images/**" filters="none" />
    <intercept-url pattern="/js/**" filters="none" />
  </http>
</web-app>
/*
*使用者
*/
@RequestMapping(值={/user/{id}},方法=RequestMethod.GET)
公共模型和视图配置文件显示(
HttpServletRequest请求,
HttpServletResponse,
@RequestParam(value=“id”,required=false)字符串id
)抛出UnknownHostException,MongoException{
服务附件(请求);
//获取搜索所有用户
BasicDBObject searchQuery=新建BasicDBObject();
put(“_id”,新ObjectId(id));
List searchResponse=PersonController.searchUsers(searchQuery);
//System.out.println(“来自搜索用户方法的响应:“+searchResponse”);
返回新模型和视图(“用户”、“人员”、搜索响应);
}

这是正在出现的当前错误。为什么它不是映射,我该如何着手解决这个问题

INFO: Server startup in 5904 ms
01-Nov-2012 19:40:21 org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/springApp21] in DispatcherServlet with name 'spring'
01-Nov-2012 19:40:22 org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleNoSuchRequestHandlingMethod
WARNING: No matching handler method found for servlet request: path '/user', method 'GET', parameters map['id' -> array<String>['4fa6eddc0234964172522248']]
01-Nov-2012 19:40:24 org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleNoSuchRequestHandlingMethod
WARNING: No matching handler method found for servlet request: path '/user', method 'GET', parameters map['id' -> array<String>['4fa6eddc0234964172522248']]
INFO:5904毫秒后服务器启动
2012年11月1日19:40:21 org.springframework.web.servlet.DispatcherServlet noHandlerFound
警告:在名为“spring”的DispatcherServlet中找不到URI为[/springApp21]的HTTP请求的映射
2012年11月1日19:40:22 org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleNoSuchRequestHandlingMethod
警告:未找到servlet请求的匹配处理程序方法:路径“/user”、方法“GET”、参数映射['id'->数组['4fa6eddc0234964172522248']]
2012年11月1日19:40:24 org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleNoSuchRequestHandlingMethod
警告:未找到servlet请求的匹配处理程序方法:路径“/user”、方法“GET”、参数映射['id'->数组['4fa6eddc0234964172522248']]

我已经回答了你的一个问题,然后马上就回答了。我现在可以访问我的一个spring应用程序。这里有一个更好的配置

请注意对web.xml的更改,很抱歉,映射到/*会导致调度程序解析您的所有请求。从某种意义上说,创建循环时,初始映射将由调度程序转发给控制器,然后控制器将使用视图解析器映射请求应转发的位置。映射到/*会导致dispatcher处理视图解析器映射

更改为/会导致调度器处理所有未映射的URL,因此您的初始映射由调度器处理,它会将其发送到控制器,并且viewresolver创建的映射将映射到.jsp,从而导致调度器无法拾取该映射。我道歉

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/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Spring3MVC</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>
                  org.springframework.web.servlet.DispatcherServlet
              </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>

  </servlet-mapping>
</web-app>

Spring3MVC
index.jsp
春天
org.springframework.web.servlet.DispatcherServlet
1.
春天
/
spring config.xml(必须更改组件扫描)


控制器

@RequestMapping(value={"/user/{id}"}, method=RequestMethod.GET)
public ModelAndView profileDisplay(
        HttpServletRequest request, 
        HttpServletResponse response,
        @RequestParam(value="id", required=false) String id
) throws UnknownHostException, MongoException {
    ServiceSerlvet.appendSesssion(request);
    //get search ALL users
    BasicDBObject searchQuery = new BasicDBObject();
        searchQuery.put("_id", new ObjectId(id));
    List<DBObject> searchResponse = PersonController.searchUsers(searchQuery);      

    //System.out.println("response from search user method: "+searchResponse);

        //This should display "WEB-INF/views/user.jsp" you may need to adjust.
        return new ModelAndView("user", "people", searchResponse);
}
@RequestMapping(value={/user/{id}},method=RequestMethod.GET)
公共模型和视图配置文件显示(
HttpServletRequest请求,
HttpServletResponse,
@RequestParam(value=“id”,required=false)字符串id
)抛出UnknownHostException,MongoException{
服务附件(请求);
//获取搜索所有用户
BasicDBObject searchQuery=新建BasicDBObject();
put(“_id”,新ObjectId(id));
List searchResponse=PersonController.searchUsers(searchQuery);
//System.out.println(“来自搜索用户方法的响应:“+searchResponse”);
//这将显示“WEB-INF/views/user.jsp”,您可能需要进行调整。
返回新模型和视图(“用户”、“人员”、搜索响应);
}

感谢Kbm回到我身边。我已经修改了web.xml,通用映射已经解决。我遇到了你提到的css、js和图像文件也被传递的问题

我试图添加截取url,但有些东西仍然无法工作。http在web.xml中以红色突出显示。当我在eclipse中将鼠标悬停在它上面时,它表示

cvc复杂类型.2.4.a:发现以元素“http”开头的无效内容。“{”http:// java.sun.com/xml/ns/javaee“:description,”http://java.sun.com/xml/ns/javaee:显示名称,“http:// java.sun.com/xml/ns/javaee“:图标,”http://java.sun.com/xml/ns/javaee“:可分发”,http:// java.sun.com/xml/ns/javaee“:context param,”http://java.sun.com/xml/ns/javaee“:筛选器,”http:// java.sun.com/xml/ns/javaee“:过滤器映射,”http://java.sun.com/xml/ns/javaee“:侦听器,”http:// java.sun.com/xml/ns/javaee“:servlet,”http://java.sun.com/xml/ns/javaee“:servlet映射,”http:// java.sun.com/xml/ns/javaee“:会话配置,”http://java.sun.com/xml/ns/javaee“:mime映射, "http://java.sun.com/xml/ns/javaee:欢迎使用的文件列表http://java.sun.com/xml/ns/javaee“:错误- 第页,”http://java.sun.com/xml/ns/javaee“:jsp config,”http://java.sun.com/xml/ns/javaee“:安全- 约束,”http://java.sun.com/xml/ns/javaee:登录配置http://java.sun.com/xml/ns/ javaee“:安全角色,”http://java.sun.com/xml/ns/javaee:环境条目http://java.sun.com/xml/ns/ javaee“:ejb ref,”http://java.sun.com/xml/ns/javaee:ejb本地引用http://java.sun.com/xml/ns/ javaee“:服务引用,”http://java.sun.com/xml/ns/javaee“:资源引用,”http://java.sun.com/xml/ns/ javaee“:资源环境参考,”http://java.sun.com/xml/ns/javaee“:消息目的地引用,”http:// java.sun.com/xml/ns/javaee“:持久性上下文引用,”http://java.sun.co