zoukankan      html  css  js  c++  java
  • Servlet基础

      今天在学习Servlet的时候遇到了一个问题:大概是这样java.lang.ClassNotFoundException: HelloServlet at org.apache.catalina.loader.WebappClassLoader.loadClassgoogle后在 http://stackoverflow.com/questions/10380782/java-lang-classnotfoundexception-helloservlet-at-org-apache-catalina-loader-web 找到了答案。 其实就是把编译好的class放到应用的classes文件夹下的时总是提示找不到class.

      文件的目录结构是这样的:

    原来我是把编译好的class文件直接放到classes目录下的,没有加打包的目录,后来添加了/classes/com/tsinghua,tomcat就可以找到对应的类,这个bug大概花费了2小时的时间,从此我对包的认识更深刻了。

      部分web.xml内容如下:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!--
     Licensed to the Apache Software Foundation (ASF) under one or more
      contributor license agreements.  See the NOTICE file distributed with
      this work for additional information regarding copyright ownership.
      The ASF licenses this file to You under the Apache License, Version 2.0
      (the "License"); you may not use this file except in compliance with
      the License.  You may obtain a copy of the License at
    
          http://www.apache.org/licenses/LICENSE-2.0
    
      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
    -->
    <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">
    
      <display-name>Welcome to Tomcat</display-name>
      <description>
         Welcome to Tomcat
      </description>
      <!--jspc servlet mappings start-->
      
      <servlet>
          <!--给你的servlet取名,名字任意-->
        <servlet-name>hello</servlet-name>
        <!--指明servlet路径(包名+类名)-->
        <servlet-class>com.tsinghua.Hello</servlet-class>
      </servlet>
      <servlet-mapping>
      <!--给你的servlet取名,名字任意-->
        <servlet-name>hello</servlet-name>
        <!--在浏览器中输入的访问该servlet的url-->
        <url-pattern>/hello</url-pattern>
      </servlet-mapping>
    
      <servlet>
          <!--给你的servlet取名,名字任意-->
        <servlet-name>helloGen</servlet-name>
        <!--指明servlet路径(包名+类名)-->
        <servlet-class>com.tsinghua.HelloGen</servlet-class>
      </servlet>
      <servlet-mapping>
      <!--给你的servlet取名,名字任意-->
        <servlet-name>helloGen</servlet-name>
        <!--在浏览器中输入的访问该servlet的url-->
        <url-pattern>/helloGen</url-pattern>
      </servlet-mapping>
    
      <servlet>
          <!--给你的servlet取名,名字任意-->
        <servlet-name>helloHttp</servlet-name>
        <!--指明servlet路径(包名+类名)-->
        <servlet-class>com.tsinghua.HelloHttp</servlet-class>
      </servlet>
      <servlet-mapping>
      <!--给你的servlet取名,名字任意-->
        <servlet-name>helloHttp</servlet-name>
        <!--在浏览器中输入的访问该servlet的url-->
        <url-pattern>/helloHttp</url-pattern>
      </servlet-mapping>
    
      <servlet>
          <!--给你的servlet取名,名字任意-->
        <servlet-name>login</servlet-name>
        <!--指明servlet路径(包名+类名)-->
        <servlet-class>com.tsinghua.Login</servlet-class>
      </servlet>
      <servlet-mapping>
      <!--给你的servlet取名,名字任意-->
        <servlet-name>login</servlet-name>
        <!--在浏览器中输入的访问该servlet的url-->
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
      <servlet>
          <!--给你的servlet取名,名字任意-->
        <servlet-name>login</servlet-name>
        <!--指明servlet路径(包名+类名)-->
        <servlet-class>com.tsinghua.Login</servlet-class>
      </servlet>
      <servlet-mapping>
      <!--给你的servlet取名,名字任意-->
        <servlet-name>login</servlet-name>
        <!--在浏览器中输入的访问该servlet的url-->
        <url-pattern>/login</url-pattern>
      </servlet-mapping>
    
      <servlet>
          <!--给你的servlet取名,名字任意-->
        <servlet-name>verify</servlet-name>
        <!--指明servlet路径(包名+类名)-->
        <servlet-class>com.tsinghua.Verify</servlet-class>
      </servlet>
      <servlet-mapping>
      <!--给你的servlet取名,名字任意-->
        <servlet-name>verify</servlet-name>
        <!--在浏览器中输入的访问该servlet的url-->
        <url-pattern>/verify</url-pattern>
      </servlet-mapping>
    
      <servlet>
          <!--给你的servlet取名,名字任意-->
        <servlet-name>welcome</servlet-name>
        <!--指明servlet路径(包名+类名)-->
        <servlet-class>com.tsinghua.Welcome</servlet-class>
      </servlet>
      <servlet-mapping>
      <!--给你的servlet取名,名字任意-->
        <servlet-name>welcome</servlet-name>
        <!--在浏览器中输入的访问该servlet的url-->
        <url-pattern>/welcome</url-pattern>
      </servlet-mapping>
    
    </web-app>
  • 相关阅读:
    Linux的常用目录学习笔记
    htm,html,xhtml,xml,xsl,dhtml,shtm和shtml的区分
    js中迭代元素特性与DOM中的DocumentFragment类型 笔记
    查找算法--线性结构的查找方法
    有关rand(),srand()产生随机数学习总结
    nodejs版本管理工具nvm使用说明
    解决微信端公众号网页获取短信验证码ajax重复调用两次的问题
    判断安卓苹果ipad,iphone,微信
    css的对号错号,也就是勾和叉
    flex的一些方法注释或者叫flex笔记
  • 原文地址:https://www.cnblogs.com/suddoo/p/6034100.html
Copyright © 2011-2022 走看看