java - 源服务器未找到目标资源的当前表示或不愿透露存在的表示

标签 java spring

enter image description here

web.xml

    <?xml version="1.0" encoding="UTF-8"?>
     <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>springsecuritydemo</display-name>
<!--   <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list> -->
  <servlet>
    <description></description>
    <display-name>offers</display-name>
    <servlet-name>offers</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>offers</servlet-name>
    <url-pattern>/DispatcherServlet</url-pattern>
  </servlet-mapping>
</web-app>

offers-sevlet.xml

    <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
   xmlns:context = "http://www.springframework.org/schema/context"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xsi:schemaLocation = "http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-4.3.xsd
   http://www.springframework.org/schema/mvc
   http://www.springframework.org/schema/mvc/spring-mvc.xsd">

   <context:component-scan base-package="com.spring.security.web"></context:component-scan> 
   <mvc:annotation-driven></mvc:annotation-driven>

   <bean name="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsps/"></property>
    <property name="suffix" value=".jsp"></property>
   </bean>

</beans>

这里有什么问题吗?我无法访问 home.jsp。 我实际上正在观看 spring 3.0 中的教程,并且我已经完成了视频中显示的内容。谁能在这里指出我的错误?

最佳答案

问题出在 servlet 映射的 url 模式中。

 <url-pattern>/DispatcherServlet</url-pattern>

假设我们的 Controller 是

@Controller
public class HomeController {
    @RequestMapping("/home")
    public String home(){
        return "home";
    }
}

当我们在浏览器上点击某个 URL 时。调度程序 servlet 将尝试映射此 url。

我们的 serlvet 目前的 url 模式是 /Dispatcher 这意味着资源是从 {contextpath}/Dispatcher

但是当我们请求 http://localhost:8080/home 时,我们实际上是在向 / 请求资源,而这是不可用的。 所以要么我们需要通过执行

说调度程序 servlet 从 / 服务
<url-pattern>/</url-pattern>

我们通过执行 /Dispatcher/* 使其从/Dispatcher 服务

例如

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" 
version="3.1">
  <display-name>springsecuritydemo</display-name>

  <servlet>
    <description></description>
    <display-name>offers</display-name>
    <servlet-name>offers</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>offers</servlet-name>
    <url-pattern>/Dispatcher/*</url-pattern>
  </servlet-mapping>

</web-app>

并使用 http://localhost:8080/Dispatcher/home 请求它 或仅将 / 放入

之类的请求
http://localhost:8080/home

关于java - 源服务器未找到目标资源的当前表示或不愿透露存在的表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43931383/

相关文章:

java - 在表单之间导航时如何修复删除字段?

json - 将 JSON 发布到 REST API

java - 如何在运行时更改 JFormattedTextField 的格式?

java - Eclipse Java 编辑器模板...为什么没有类型变量?

java - 如何在 JPanel 对象上调用 getWidth

java - 如何检查其他类对某个类的依赖关系

java - 如何在 JPA 存储库中创建优先查询

spring - 在子上下文中覆盖父上下文中定义的 bean

java - 如果类名可用于导入,Intellij idea 不会给我创建类意图操作

java - 如何解码 JSONObject