Servlet基础
今天在学习Servlet的时候遇到了一个问题:大概是这样java.lang.ClassNotFoundException: HelloServlet at org.apache.catalina.loader.WebappClassLoader.loadClass,google后在 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>
Servlet基础的更多相关文章
- JSP数据交互(二)和Servlet基础
01.Application原理与应用 01.application对象的作用域范围是整个应用服务,而它在应用中所承担的责任就类似于一个全局变量.只要服务启动,则application对象就会存在. ...
- Servlet基础(三) Servlet的多线程同步问题
Servlet基础(三) Servlet的多线程同步问题 Servlet/JSP技术和ASP.PHP等相比,由于其多线程运行而具有很高的执行效率. 由于Servlet/JSP默认是以多线程模式执行的, ...
- Servlet基础(二) Servlet的生命周期
Servlet基础(二) Servlet的生命周期 Servlet的生命周期可以分为三个阶段: 1.初始化阶段 2.响应客户请求阶段 3.终止阶段 Servlet的初始化阶段 在下列时刻Servlet ...
- Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解
Servlet基础(一) Servlet基础和关键的API介绍 Servlet简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servl ...
- JSP/Servlet基础语法
相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp ...
- Servlet基础简单总结(上)
Servlet基础一些简单总结(上): 1.Java Servlet是运行在Web服务器上的Java程序2.Java平台给Servlet开发者提供了强大的API/面向对象编程平台无关/强类型/垃圾回收 ...
- servlet总结:Servlet基础
Servlet基础 1.手工编写第一个Servlet ⑴继承HttpServlet ⑵重写doGet()或者doPost()方法 ⑶在web.xml中注册Servlet 2.使用eclipse编写第一 ...
- servlet基础(组成与生命周期)
servlet基础作用:servlet是运行在Web服务器或应用服务器上的程序:担当web浏览器或其他HTTP客户程序发出的请求与HTTP服务器上的数据库或应用程序之间的中间层.1.读取客户程序发送的 ...
- Unit01: Servlet基础 、 HTTP协议
Unit01: Servlet基础 . HTTP协议 在页面上输出当前时间 package web; import java.io.IOException; import java.io.PrintW ...
- Servlet基础教程:tutorialspoint-servlet
来自turorialspoint的Servlet基础教程(英文),官网:https://www.tutorialspoint.com/servlets/index.htm 这个教程在国内已经被翻译成中 ...
随机推荐
- [C++] Running time and Integer to String
std::string num2str(int64_t p_vint, int8_t p_radix) { char str[48] = { 0 }; int64_t temp = 0; int64_ ...
- hrbust 1481
/* 构造特定条件的68序列:给定目标串中6 8 68 86 这四种字串的个数a b p q ,输出所有满足条件的字符串中代表的数字最小的那个 // hrboj 1481 ______________ ...
- 【转载】Ansys中的阻尼
原文地址:http://www.cnblogs.com/ylhome/archive/2009/08/26/1554195.html ANSYS动力学分析中提供了各种的阻尼形式,这些阻尼在分析中是如何 ...
- Linear Algebra lecture3 note
Matrix multiplication(4 ways!) Inverse of A Gauss-Jordan / find inverse of A Matrix multiplication ...
- NOIp 2011 mayan游戏 搜索
题目描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个 7 行5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指在规定 ...
- osx下配置Cocos2d-x 3.x Android开发环境
配置前需要准备的 首先需要看一下官网文档 http://www.cocos.com/doc/article/index?type=cocos2d-x&url=/doc/cocos-docs-m ...
- 印刷电路板(PCB)的材料
以玻璃为基础材料的板材可以在高达150℃到250℃的温度下使用.可选的介质材料有: FR4,介电常数ε0为4.6 环氧材料,介电常数ε0为3.9: 聚酰亚胺,介电常数ε0为4.5. 另外,以聚四氟乙烯 ...
- Mysql(一)
一.Mysql简介 Mysql是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下.特点:其体积小.速度快.开源. 分为社区办和商业版,其社区版性能卓越. 二.Ubun ...
- Mac系统终端命令行不执行命令 总出现command not found解决方法
配置过安卓开发环境,改过bash_profile这个文件,最后不知怎么的只有cd命令能执行,我猜测可能修改bash_profile文件后没有保存 导致的 保存命令是: source .bas ...
- LeetCode----Tree
Path Sum II 思路:回溯 public List<List<Integer>> pathSum(TreeNode root, int sum) { List<L ...