web.xml spring springMVC

本文详细介绍了 Taotao Manager 的部署配置过程,包括 web 应用的结构设置、Spring 容器的加载、SpringMVC 前端控制器的配置以及乱码问题的解决方法。

<?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="taotao" version="2.5">
    <display-name>taotao-manager</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>

    <!-- 加载spring容器 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/applicationContext-*.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- springmvc的前端控制器 -->
    <servlet>
        <servlet-name>taotao-manager</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>taotao-manager</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!-- 配置加载url的请求方式,会拦截所有资源的请求,包括静态资源的请求,需要在springmvc.xml中添加静态资源的映射 -->
    <!-- 解决post乱码 -->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

### 处理 web.xmlspringmvc - config 配置文件错误 #### 1. url - pattern 配置 在 web.xml 中配置 DispatcherServlet 时,`url - pattern` 的配置很关键。`<url - pattern>/</url - pattern>` 不会匹配到 `.jsp`,即 `.jsp` 不会进入 Spring 的 DispatcherServlet 类;而 `<url - pattern>/*</url - pattern>` 会匹配 `.jsp`,会出现返回 jsp 视图时再次进入 Spring 的 DispatcherServlet 类,导致找不到对应的 controller 所以报 404 错。所以通常建议使用 `<url - pattern>/</url - pattern>` [^1]。 ```xml <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ``` #### 2. 检查配置文件路径 确保在 web.xml 中正确配置了 SpringMVC 的配置文件路径。例如: ```xml <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/springmvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> ``` #### 3. 检查 springmvc - config 配置 在 springmvc - config.xml 中,要确保正确配置了控制器扫描、视图解析器等。 ```xml <context:component-scan base-package="com.example.controller"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> ``` ### 处理 Tomcat 部署问题 #### 1. 检查项目部署路径 确保项目正确部署到 Tomcat 的 `webapps` 目录下,并且上下文路径配置正确。可以在 Tomcat 的 `server.xml` 中进行配置,例如: ```xml <Context path="/yourApp" docBase="yourApp" reloadable="true"/> ``` #### 2. 检查 Tomcat 端口 确保 Tomcat 使用的端口没有被其他应用占用,并且在访问时使用的端口号正确。默认情况下,Tomcat 使用 8080 端口。 #### 3. 检查项目依赖 确保项目的依赖都正确部署到 Tomcat 中。可以通过 Maven 或 Gradle 等构建工具来管理依赖,确保所有依赖都被正确打包到项目中。 #### 4. 检查 Tomcat 日志 查看 Tomcat 的日志文件(如 `catalina.out` 或 `localhost.log`),从中查找是否有关于部署失败或请求处理错误的信息,根据日志信息进行相应的处理。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值