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 这个教程在国内已经被翻译成中 ...
随机推荐
- 几种Position属性的用法
几种Position常见的属性就是一下几种: 1.static:默认值.没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明). 2.re ...
- some simple recursive lisp programs
1. Write a procedure count-list to count the number of elements in a list (defun count-list (numbers ...
- 什么是html技术
HTML(Hyper Text Mark-up Language )即超文本标记语言,是 WWW 的描述语言,由 Tim Berners-lee提出.设计 HTML 语言的目的是为了能把存放在一台电脑 ...
- spring logback 配置
<appender name="DubboInfo" class="ch.qos.logback.core.rolling.RollingFileAppender& ...
- Todo List
Contest 11.13 2016ACM/ICPC亚洲区青岛站(5/13, solved 7/13) Training 11.06 2016年中国大学生程序设计竞赛(合肥)(solved 6/10) ...
- 入门级 mongodb
谢谢 转载的.. (1)下载mongodb window版本:http://www.mongodb.org/dr/downloads.mongodb.org/win32/mongodb-win32 ...
- 3数字cn域名延续数字域名火爆行情! 珍品域名 593.cn 出售
近日, 域名投资者小维放出珍藏多年的珍品域名593.cn, 据悉该域名将参加易名中国举办的数字域名专场拍卖活动,将以1元标价起拍. 域名593.cn,数字“593”谐音“我就上.吾就上.我就商 ...
- halcon运行版设置
- 如何解决CDR x8安装时显示“已停止工作”
相信很多朋友在安装cdr X8时会遇到这样一种情况,能装上去,但不能运行,弹出提示说CorelDRAW X8(64-bit)已停止工作.同样的X8安装包,在不同的电脑上测试有的没有问题,有的则会出现以 ...
- mybaits中插入到mysql数据库自动返回id主键
在做电商项目时,做到添加商品时,添加商品涉及到图片表和最小销售单元表,这两个表有商品的id,添加图片和最小销售单元,要先返回产品的id.具体做法如下 <insert id="addPr ...