servlet和手动创建servlet,断点调试
1. 什么是Servlet
Servlet是一种用Java语言编写的Web应用组件
Servlet主要用于动态网页输出,扩展了Web服务器的功能
Servlet由Servlet容器进行管理
2. Servlet的优点
可移植性高:可在不同的操作系统平台和不同应用服务器平台下移植
功能强大:Servlet可以使用JavaAPI核心的所有功能包括Web访问、图像处理、多线程、JDBC等
模块化:每一个Servlet可以执行一个特定的任务,并且可以将它们并在一起工作,Serlvet之间是可以通信的
高效持久:Serlvet一旦载入,就驻留在而在中,用线程的方式加快了响应的速度.
3. Servlet的缺点
和传统的CGI方式相同,Java Servlet也是利用输出HTML语句来实现动态网页的,如果用它来开发整个网站,动态部分和静态页面的整合过程将变得无法想象。这就是SUN还要推出JSP的原因
实际开发上将servlet和jsp联合使用,开发效率是最高的
4. servlet的注册和运行
Servlet程序必须通过Servlet容器来启动运行,并且储存目录有特殊要求,通常需要存储在<WEB应用程序目录>\WEB-INF\classes\目录中。
Servlet程序必须在WEB应用程序的web.xml文件中进行注册和映射其访问路径,才可以被Servlet引擎加载和被外界访问。
一个<servlet>元素用于注册一个Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。
一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径.
下面是一个实例:
5. 手动创建servlet
new->web project->itcast0912Servlet01->finish
右键点击src->new ->package->cn.itcast.web->finish
右键点击cn.itcast.web->new->class->HelloWorldServlet->finish
之后生成代码如下:

可以发现代码仅仅是简单的一个类声明,下面是手动给此类实现servlet功能。由于要手动实现servlet功能,因此这个类要实现servlet接口,如下图所示:

根据myeclipse的特点,可以自动对新类中实现的接口方法进行补全,如下:

方法都已实现,其中填充的内容先不用管,到此手动创建servlet完毕,剩下的是进行配置。
打开web.xml对servlet进行注册,内容如下:

关于相关内容的意义,在第4步已经说明,下面在做一次详细说明:

下面就可以进行发布,并启动tomcat了,之后在地址栏中输入http://localhost:8080/itcast0912Servlet01/,就可以在myeclipse控制台看到有信息输出了
6. myeclipse使用断点调试
现在想要设置断点的地方的左边栏双击,出现一个断点调试符。然后点击
windows->show view->server
或者windows->show view->other->输入server,点击之后下面会出现:

当右键点击tomcat 6.x时,会有可选项,有run mode,还有一个是debug mode,如果使用调试模式的话,就点击debug mode就可以开启了。
重新对项目进行发布,并启动调试模式,在地址栏中进行访问,发现myeclipse图标闪烁,点击后发现出现如下界面:

可以看到程序停留在了有颜色的那一行,说明调试成功了,之后可以观察某个变量的情况,方法如下,如:
右键点击其中的一个变量arg0->watch,之后会在第一个窗口的右侧显示另一个窗口,里面就是arg0变量的信息,如下:

发现arg0是standardWrapperFacade类型,在tomcat源码中查找发现如下代码
public final class StandardWrapperFacade
implements ServletConfig {
....
说明是Servletconfig 参数,并且是tomcat自己已经实现了调用时的初始化。
之后如果想要看另一个断点,可以点击这个按钮:

就可以进行下一步的调试了。
servlet和手动创建servlet,断点调试的更多相关文章
- servlet基本原理(手动创建动态资源+工具开发动态资源)
一.手动开发动态资源 1 静态资源和动态资源的区别 静态资源: 当用户多次访问这个资源,资源的源代码永远不会改变的资源. 动态资源:当用户多次访问这个资源,资源的源代码可能会发送改变. <scr ...
- 手动创建servlet
1 tomcat/webapps/目录下创建web应用mail. 目录结构如下 tomcat/webapps | mail | WEB-INF | | ...
- [原创]java WEB学习笔记04:Servlet 简介及第一个Servlet程序(配置注册servlet,生命周期)
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- IDEA实用教程(九)—— 创建Servlet
4. 创建Servlet 1) 第一步 2) 第二步 3) 第三步 4) 第四步 由于新创建的Web项目, 没有Tomcat环境, 所以创建的Servlet会发生导包错误,如下图所示 : 因此我们需要 ...
- Servlet三种创建方式
直接实现 Servlet 接口不太方便,所以 Servlet 又内置了两个 Servlet 接口的实现类(抽象类),分别为 GenericServlet 和 HttpServlet,因此,创建 Ser ...
- eclipse软件创建servlet
网上找了好多资料,eclipse创建servlet后,发到tomcat下发布,不能编译,生产class文件. 很多回答的都是一知半解,太气人了,看书.把资料找了一天,才发现是没有servlet-api ...
- [常见问题]解决创建servlet 找不到webservlet包.
今天在创建一个springmvc项目的时候发现 使用的HttpServletRequest不起作用, 提示需要映入 jar文件, 于是便有了今天的这个问题: 百度了下才发现 项目需要导入Runtime ...
- 使用Servlet和jdbc创建用户登录验证
首先创建一个用户表,用来保存用户名 密码,并插入几条数据 mysql> desc user;+----------+-------------+------+-----+---------+-- ...
- Maven创建servlet项目演示(三)
上一节用Maven新建了web项目成功后,本文演示在此基础上应用servlet. 从对tomcat服务器进行配置可的过程中可以知道,tomcat作为servlet容器运行,负责处理客户请求,把请求传送 ...
随机推荐
- BZOJ 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏
Description Farmer John 想让她的奶牛准备郡级跳跃比赛,贝茜和她的伙伴们正在练习跨栏.她们很累,所以她们想消耗最少的能量来跨栏. 显然,对于一头奶牛跳过几个矮栏是很容易的,但是高 ...
- 听同事讲 Bayesian statistics: Part 2 - Bayesian inference
听同事讲 Bayesian statistics: Part 2 - Bayesian inference 摘要:每天坐地铁上班是一件很辛苦的事,需要早起不说,如果早上开会又赶上地铁晚点,更是让人火烧 ...
- Android-x86虚拟机安装配置全攻略
转自Android-x86虚拟机安装配置全攻略 注:这里安装从简,具体请参考虚拟机Vmware安装运行安卓4.0详细教程 Android-x86虚拟机安装配置网上有很多,但是全部说明白的确不多,希望这 ...
- NODE.JS玩玩
按一个网页的来,最好最后能到EXPRESS.JS. http://www.nodebeginner.org/index-zh-cn.html 这样就能对比DJANGO,看看两者的WEB框架,加深认识. ...
- [wikioi]最优布线问题
http://wikioi.com/problem/1231/ Kruskal+并查集.comp函数里面如果用const引用的话,可以减少copy.并查集find的时候是递归找父亲的根.无他. #in ...
- Python自然语言处理学习笔记(69)
http://www.cnblogs.com/yuxc/archive/2012/02/09/2344474.html Chapter8 Analyzing Sentence Structure ...
- Python urllib2写爬虫时候每次request open以后一定要关闭
最近用python urllib2写一个爬虫工具,碰到运行一会程序后就会出现scoket connection peer reset错误.经过多次试验发现原来是在每次request open以后没有及 ...
- C#的装箱和拆箱
1:装箱 其实就是将一个值类型的转换成一个引用类型,或者把值类型转换成一个被该值类型那个应用的接口类型,这个过程会使用堆栈.被装箱的值是作为一个复制赋给对象的. int intValue = 100 ...
- 【转】Android中intent传递对象和Bundle的用法
原文网址:http://blog.csdn.net/lixiang0522/article/details/8642202 android中的组件间传递的对象一般实现Parcelable接口,当然也可 ...
- 贪心(模拟费用流):NOIP2011 观光公交
[问题描述] 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第0 分钟出现在1号景点,随后依次前往2. ...
