Servlet学习笔记01——什么是servlet?
1.什么是Servlet?
sun公司制订的一种用来扩展web服务器功能的组件规范。
(1)扩展web服务器功能
早期的web服务器(apache web server,iis)
只能处理静态资源的请求(即需要事先将html文件
写好并添加到服务器上),不能够处理动态资源的
请求(即需要计算,生成html)。所以,需要扩展
这些web服务器的功能。
(了解)
早期使用CGI程序来扩展。
CGI(Common Gateway Interface):
通用网关接口,可以使用c,perl等来开发符合
CGI接口规范的程序。CGI程序开发繁琐,不好
移值,所以用得比较少了。
(2)组件规范
1)什么是组件?
符合规范,具有部分功能,并且需要部署到相应的
容器里面才能运行的软件模块。
Servlet就是一个符合Servlet规范的组件,需要部署
到Servlet容器里面才能运行。
2)什么是容器?
符合规范,提供组件的运行环境的程序。
Servlet容器(比如Tomcat 雄猫)也是要符合
相应的Servlet规范。
Servlet容器提供Servlet组件的运行环境(提供
网络相关的服务)。
(了解)
a.tomcat也是一个简单的web服务器(其实,
大部分的Servlet容器同时也是一个简单的web
服务器)。
b.对于大型的web应用,最好要安装一个专业的
web服务器(比如apache web server),由这些
服务器来抗压(并发请求量很大),另外,将
静态资源(html)存放到这些web服务器上面,
Servlet容器只负责计算。
2.如何写一个Servlet?
step1.写一个java类,实现Servlet接口或者
继承HttpServlet抽象类。
step2.编译。
step3.打包(即将Servlet变成一个组件)
要创建一个具有如下结构的文件夹:
appname (应用名,可以自定义)
WEB-INF (固定写法)
classes(固定写法,存放 .class文件)
lib(可以没有,存放 .jar文件)
web.xml(固定写法,部署描述文件)
step4.部署
将step3创建好的整个文件夹拷贝到容器指定的位置。
注:
可以将step3创建好的整个文件夹使用jar
命令压缩成.war文件,然后再拷贝。
step5.启动容器,访问Servlet。
打开浏览器,输入
http://ip:port/appname/url-pattern。
注:
ip,port:容器所在的机器的ip地址,容器所
监听的端口号(tomcat默认的端口是
8080)。
url-pattern:在web.xml中定义。
3. Servlet运行过程
比如,在浏览器地址栏输入
http://ip:port/day01/hello?username=Giving
hello Giving
4. 常见问题及解决方式
(1)404
a. 404是一个状态码,表示服务器找不到对应的资源。
b. 产生的原因:
b1.请求路径写错。
b2.没有部署成功。
(2)500
a. 500也是一个状态码,表示服务器运行出错。
b. 产生的原因:
b1.配置文件写错。
b2.源代码出错。
比如没有继承HttpServlet。
代码不严谨,比如对用户的输入的数据
没有做检查就做强制转换。
(3)405
a.405也是一个状态码,表示服务器找不到处理方法。
b.产生的原因:
a.service方法不合法:
Servlet学习笔记01——什么是servlet?的更多相关文章
- Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期
servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...
- Java Servlet学习笔记(四)Servlet客户端Http请求
Servlet 客户端 HTTP 请求 当浏览器请求网页时,它会向 Web 服务器发送特定信息,这些信息不能被直接读取,因为这些信息是作为 HTTP 请求的头的一部分进行传输的.您可以查看 HTTP ...
- # jsp及servlet学习笔记
目录 jsp及servlet学习笔记 JSP(Java Server Page Java服务端网页) 指令和动作: servlet(小服务程序) jsp及servlet学习笔记 JSP(Java Se ...
- Servlet学习笔记(四)
目录 Servlet学习笔记(四) 一.会话技术Cookie.session 1. 什么是会话技术? 2. 会话技术有什么用? 3. Cookie 3.1 什么是Cookie? 3.2 使用Cooki ...
- Servlet学习笔记(三)
目录 Servlet学习笔记(三) 一.HTTP协议 1.请求:客户端发送欸服务器端的数据 2.响应:服务器端发送给客户端的数据 3.响应状态码 二.Response对象 1.Response设置响应 ...
- Servlet学习笔记(二)
目录 Servlet学习笔记(二) Request对象 1.request和response对象: 2.request对象继承体系结构: 3.什么是HttpServletRequest ? 4.Htt ...
- 软件测试之loadrunner学习笔记-01事务
loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...
- C++ GUI Qt4学习笔记01
C++ GUI Qt4学习笔记01 qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概 ...
- SaToken学习笔记-01
SaToken学习笔记-01 SaToken版本为1.18 如果有排版方面的错误,请查看:传送门 springboot集成 根据官网步骤maven导入依赖 <dependency> < ...
随机推荐
- .NET面试题1
1. const和readonly有什么区别? const关键字用来声明编译时常量,readonly用来声明运行时常量.都可以标识一个常量,主要有以下区别: 1.初始化位置不同.const必须在声明的 ...
- C# 压缩 解压 复制文件夹,文件的操作
命名空间:namespace System.IO.Compression 压缩: //目标文件夹 string fileDirPath = "/Downloads/试题" + us ...
- Win2D 官方文章系列翻译 - 调整控件分辨率
本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-choosing-control-resolution/ 本文旨在讲解如何配置 Win2D XAML 控件使用 ...
- [Java][Liferay] 如何从Javascript的function中获取language property的值
问题描述 在Portlet中,Javascript中通过Liferay.Language.get("key")的方式是拿不到自己添加的property的值,原因是Liferay.L ...
- mysql关键字执行顺序
from on join where group by having select distinct union order by 昨天去58面试,之前的java基础和数据结构算法之类的都还可以,最后 ...
- linux 封禁ip
可以直接服务配置nginx.conf 添加 deny+IP 例如: 封禁单个IP deny 106.5.76.83; #封整个段即从123.0.0.1到123.255.255.254的命令deny 1 ...
- WorkFlow 的 Xaml 中找不到引用类型
原来还是需要两步走. 1. 在refernece里面应用project或dll. 2. 在xaml的命名空间里面手动添加.
- 分布式系统ID生成方案汇总
在分布式系统中,需要对大量的数据.消息.请求等进行唯一的标识,例如分布式数据库的ID需要满足唯一且多数据库同步,在单一系统中,使用数据库自增主键可以满足需求,但是在分布式系统中就需要一个能够生成全局唯 ...
- Python基础学习之语句和语法
语句和语法 python语句中有一些基本规则和特殊字符: 井号键“#”表示之后的字符为python注释: 三引号(‘‘‘ ’’’)可以多行注释 换行“\n”是标准的行分隔符(通常一个语句一行): 反斜 ...
- 类似LIS+贪心(ZOJ1025)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=25 解题报告: #include <cstdio> #in ...