Spring MVC 指向主机名
Spring MVC point to host name
我正在根据自己的知识建立一个 Spring MVC 项目,但遇到了一些困难。我有一个欢迎文件和一个网络服务设置,它们工作得很好。但是,我不想 localhost:8080/ZFGC/ 点击欢迎文件,而是 localhost:8080/ 点击它。从那里,我希望能够以类似的方式调用我的 Web 服务,即没有 ZFGC/.我一直无法找到真正正确解释这一点的教程。有没有大佬解惑一下?
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>zfgc</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>zfgc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>zfgc</servlet-name>
<url-pattern>/welcome.jsp</url-pattern>
<url-pattern>/welcome.html</url-pattern>
<url-pattern>/index.htm</url-pattern>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ZFGC</groupId>
<artifactId>ZFGC</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>ZFGC</name>
<description>Zelda Fan Game Central</description>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
zfgc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<context:component-scan base-package="com.zfgc.forum.controller" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
要使用您的应用程序 http://localhost:8080,您唯一需要做的就是将您的 Web 应用程序部署为应用程序服务器中的 ROOT 应用程序。
基本上就是将 WAR 文件命名为 ROOT.war
在 Maven 中,您可以使用以下方法轻松完成此操作:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>ROOT</warName>
<outputDirectory>war</outputDirectory>
</configuration>
</plugin>
</plugins>
由于您是 运行 eclipse 中的应用程序(通过 tomcat),它只是一步配置。
按照步骤操作。 (一定要先停止tomcat再做)
1) 在 eclipse 中显示的项目列表中,您将找到一个文件夹 "Servers"。
2) 展开 服务器 -> Tomcat v8.0
3) 您将看到配置文件列表。打开server.xml
4) 滚动到底部。你会看到这样一行,
<Context docBase="ZFGC" path="/ZFGC" reloadable="true" source="org.eclipse.jst.jee.server:ZFGC"/>
5) 现在只需将该行更改为此
<Context docBase="ZFGC" path="/" reloadable="true" source="org.eclipse.jst.jee.server:ZFGC"/>
并保存更改。
准确地说,path="/ZFGC"
改为path="/"
。而已。现在启动您的 tomcat,您可以在 http://localhost:8080.
中访问您的应用程序
我正在根据自己的知识建立一个 Spring MVC 项目,但遇到了一些困难。我有一个欢迎文件和一个网络服务设置,它们工作得很好。但是,我不想 localhost:8080/ZFGC/ 点击欢迎文件,而是 localhost:8080/ 点击它。从那里,我希望能够以类似的方式调用我的 Web 服务,即没有 ZFGC/.我一直无法找到真正正确解释这一点的教程。有没有大佬解惑一下?
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>zfgc</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>zfgc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>zfgc</servlet-name>
<url-pattern>/welcome.jsp</url-pattern>
<url-pattern>/welcome.html</url-pattern>
<url-pattern>/index.htm</url-pattern>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ZFGC</groupId>
<artifactId>ZFGC</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>ZFGC</name>
<description>Zelda Fan Game Central</description>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
zfgc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<context:component-scan base-package="com.zfgc.forum.controller" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
要使用您的应用程序 http://localhost:8080,您唯一需要做的就是将您的 Web 应用程序部署为应用程序服务器中的 ROOT 应用程序。
基本上就是将 WAR 文件命名为 ROOT.war
在 Maven 中,您可以使用以下方法轻松完成此操作:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>ROOT</warName>
<outputDirectory>war</outputDirectory>
</configuration>
</plugin>
</plugins>
由于您是 运行 eclipse 中的应用程序(通过 tomcat),它只是一步配置。
按照步骤操作。 (一定要先停止tomcat再做)
1) 在 eclipse 中显示的项目列表中,您将找到一个文件夹 "Servers"。
2) 展开 服务器 -> Tomcat v8.0
3) 您将看到配置文件列表。打开server.xml
4) 滚动到底部。你会看到这样一行,
<Context docBase="ZFGC" path="/ZFGC" reloadable="true" source="org.eclipse.jst.jee.server:ZFGC"/>
5) 现在只需将该行更改为此
<Context docBase="ZFGC" path="/" reloadable="true" source="org.eclipse.jst.jee.server:ZFGC"/>
并保存更改。
准确地说,path="/ZFGC"
改为path="/"
。而已。现在启动您的 tomcat,您可以在 http://localhost:8080.