tomcat7换成tomcat8.5存在的问题解决

一、tomcat7换成tomcat8.5后,启动项目后,访问主页面遇到了一个问题:org.apache.jasper.JasperException: /login/login.jsp (行.: [1], 列: [1]) 文.件[] 未找到
这个问题我也找过网上的其他博客,都没有解决了这个问题,然后查找web项目中跟tomcat有关的内容,最后找到了WEB-INF下面的web.xml文件,看这个文件很头大,不知道哪里错了,一开始觉得只是头部不一致,把头部改了就行;

(1)步骤1

1.7的web.xml配置文件的头部:
在这里插1.7的web.xml配置文件的头部:入图片描述
1.8的web.xml配置文件的头部:
tomcat7换成tomcat8.5存在的问题解决_第1张图片
代码块:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1"
  metadata-complete="true">

但是还是没有解决了这个问题,还是报同样的错误,页面无法正常访问。

(2)步骤二:

使用tomcat8空的web.xml,把之前1.7配置好的web.xml中的内容一点点的挪过来,然后一个一个的对比,查看1.8和1.7中配置参数存在的差异。
最终我发现,1.7中使用的几个配置参数在1.8中没找到,修改了这个后,再重新运行tomcat就可以正常访问了
tomcat7换成tomcat8.5存在的问题解决_第2张图片

二、tomcat运行的时候,会造成js乱码

修改tomcat底下的catalina.bat文件,在这个文件中添加:

set JAVA_OPTS=-Xms512m -Xms1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8

tomcat7换成tomcat8.5存在的问题解决_第3张图片

底下的内容是tomcat8的全配置信息

可以根据下面的配置信息来查找错误信息

<?xml version="1.0" encoding="UTF-8"?>
<!-- 整个配置文件的根标签 -->
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!-- 指定web站台中小图标和大图标的路径 -->
    <icon>
        <small-icon></small-icon>
        <large-icon></large-icon>
    </icon>

    <!-- 标注了该web项目的名字 -->
    <display-name>Test</display-name>

    <!-- 对应用做出描述 -->
    <description>Servlet web.xml v1.0</description>

    <!-- 这里配置的是整个项目的初始化参数; 设定web应用的环境参数(context) -->
    <context-param>
        <!-- 设定Context名称 -->
        <param-name>companyName</param-name>
        <!-- 设定Context名称的值 -->
        <param-value>FM</param-value>
    </context-param>
    <context-param>
        <param-name>authorName</param-name>
        <param-value>jeff</param-value>
    </context-param>

    <!-- 用来设定web应用的过滤器 -->
    <filter>
        <!-- 定义Filter的名称 -->
        <filter-name>Encoding</filter-name>
        <!-- 定义Filter的类名称 -->
        <filter-class>xyz.xmcs.Servlet.MyServletFilter</filter-class>
        <!-- 初始化参数 -->
        <init-param>
            <param-name>encoding</param-name>
            <param-value>GBK</param-value>
        </init-param>
    </filter>

    <!-- 用来和一个或对各Servlet或者JSP页面关联 -->
    <filter-mapping>
        <!-- 定义Filter的名称 -->
        <filter-name>Encoding</filter-name>
        <!-- Filter所对应的RUL -->
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- Listener元素用来定义Listener接口 -->
    <listener>
        <!-- 定义Listener的类名称 -->
        <listener-class>xyz.xmcs.Servlet.MyServletListener</listener-class>
    </listener>

    <!-- 定义了首页文件,也就是用户直接输入域名时跳转的页面(如http://localhost:8080/) -->
    <welcome-file-list>
        <welcome-file>form</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <!-- 用来声明一个 Servlet 的数据 -->
    <servlet>
        <!-- 指定 Servlet 的名称 -->
        <servlet-name>MyServlet</servlet-name>
        <!-- 指定 Servlet 的全限定内名称 -->
        <servlet-class>xyz.xmcs.Servlet.MyServlet</servlet-class>


        <!-- 指定web网站中某个JSP网页的完整路径 -->
        <!--<jsp-file>/index.jsp</jsp-file>-->

        <!-- 定义这个Servlet初始化参数,在servlet类中通过ServletConfig对象传入init函数,通过- getInitParamenter(String name)方法访问初始化参数 -->
        <init-param>
            <param-name>DRIVER</param-name>
            <param-value>com.mysql.cj.jdbc.Driver</param-value>
        </init-param>
        <init-param>
            <param-name>URL</param-name>
            <param-value>jdbc:mysql://localhost:3306/myDatabase
        </init-param>
        <init-param>
            <param-name>USERNAME</param-name>
            <param-value>root</param-value>
        </init-param>
        <init-param>
            <param-name>PASSWORD</param-name>
            <param-value>root</param-value>
        </init-param>

        <!-- 指定当Web应用启动时,装载Servlet的次序 -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- 定义servlet所对应的URL -->
    <servlet-mapping>
        <!-- 指定servlet的名称 -->
        <servlet-name>MyServlet</servlet-name>
        <!-- 指定servlet所对应的URL -->
        <url-pattern>/myservlet</url-pattern>
    </servlet-mapping>

    <!-- 定义这个web站台所有session的有效期限.单位为分钟 -->
    <session-config>
        <!-- 有效期限, 单位为秒 -->
        <session-timeout>30</session-timeout>
    </session-config>

    <!-- 定义某一个扩展名和某一MIME Type做对映. -->
    <mime-mapping>
        <!-- 扩展名称 -->
        <extension>doc</extension>
        <!-- MIME格式. -->
        <mime-type>application/vnd.ms-word</mime-type>
    </mime-mapping>

    <!-- 返回特定状态码时或者特定类型的异常被抛出时, 能够指定将要显示的页面 -->
    <error-page>
        <!-- 错误代码 -->
        <error-code>404</error-code>
        <!-- 对应的页面 -->
        <location>/404page.html</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/404page.html</location>
    </error-page>
    <error-page>
        <!-- 错误代码 -->
        <exception-type>java.lang.Exception</exception-type>
        <!-- 对应的页面 -->
        <location>/exception.jsp</location>
    </error-page>

    <!-- 主要用来设定JSP的相关配置 -->
    <jsp-config>
        <!-- 用来设定JSP网页用到的Tag Library路径 -->
        <!--<taglib>-->
            <!-- 定义TLD文件的URI,JSP网页的taglib指令可以经由这个URI存取到TLD文件 -->
            <!--<taglib-uri>Taglib</taglib-uri>-->
            <!-- LD文件对应Web站台的存放位置 -->
            <!--<taglib-location>/WEB-INF/</taglib-location>-->
        <!--</taglib>-->

        <jsp-property-group>
            <!-- 此设定的说明 -->
            <description>
                Special property group for JSP Configuration JSP example.
            </description>
            <!-- 此设定的名称 -->
            <display-name>JSPConfiguration</display-name>
            <!-- 设定值所影响的范围,如:/CH2 或者/*.jsp -->
            <url-pattern>/*</url-pattern>
            <!-- 若为true,表示不支持EL语法. -->
            <el-ignored>true</el-ignored>
            <!-- 设定JSP网页的编码 -->
            <page-encoding>GB2312</page-encoding>
            <!-- 若为true表示不支持<%scription%>语法. -->
            <scripting-invalid>true</scripting-invalid>
        </jsp-property-group>
    </jsp-config>

    <!-- 声明一个与资源相关的一个管理对象 -->
    <resource-env-ref>
        <!-- 资源的名称  -->
        <resource-env-ref-name>jdbc/mssql</resource-env-ref-name>
        <!-- 查找资源时返回的资源类名 -->
        <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
    </resource-env-ref>

    <!-- 声明一个资源工厂使用的外部资源 -->
    <resource-ref>
        <!-- 资源说明 -->
        <description>JNDI JDBC DataSource</description>
        <!-- 资源名称 -->
        <res-ref-name>jdbc/data</res-ref-name>
        <!-- 资源种类 -->
        <res-type>javax.sql.DataSource</res-type>
        <!-- 资源由Application或Container来许可 -->
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>

你可能感兴趣的:(前端学习笔记,tomcat)