servlet:
(1)是web服务器扩展机制,独立于平台的java类(公共网关接口),用户可以调用web服务器上的公共网关接口的实现类XXX_servlet来获得一些想要的数据或服务
(2)在servlet规范中定义了web应用程序的目录层次结构
-web应用程序的根目录
-WEB-INF
-classes
-lib
-index.jsp
(3)将servlet.java文件开发好之后,进行编译,生成.class文件,将其放置web应用程序的目录结构中的-WEB-INF下的classes文件夹内
(4)完事具备,只欠东风,我们需要将开发好的servlet部署起来,而这个工作是web.xml内完成的,即web应用程序的配置和部署是通过web.xml来完成的,web.xml被称为是web应用程序的部署描述符
(5)web.xml文件包含的配置和部署信息
1.ServletContext的初始化信息
2.Session的配置
3.Servlet/JSP的定义和映射
4.应用程序生命周期监听器类
5.过滤器定义和映射
6.MIME类型映射
7.欢迎文件列表
8.错误页面
9.语言环境和编码映射
10.声明式安全配置
11.JSP配置
<servlet>
//servlet的名字,在同一个web应用程序中,名字必须是唯一的
<servlet-name>MahmutServlet</servlet-name>
//完整限定类名(若有包名,同时要给出包名)
<servlet-class>com.mahmutjan.webservice.MahmutServlet</servlet-class>
</servlet>
//servlet-mapping元素用于在Servlet和URL之间定义一个映射
<servlet-mapping>
//需要和对应的servlet节点中的servlet-name中的名字一致,因为配置的映射就是为该对应节点的servlet配置的
<servlet-name>MahmutServlet</servlet-name>
//指定对应于Servlet的URL路径,该路径是相对于web应用程序上下文根的路径,访问的时候就是要和这个值进行比较,若一致,则找到他的相邻节点servlet-name中配置的与servlet名相匹配的servlet-class,进而找到servlet类去接收请求,并作出响应,
<url-pattern>/mahmutjan</url-pattern>
</servlet-mapping>
(6)我们所编写的servlet主要应用于http协议的请求和响应,因此为了我们快速开发基于http的servlet,sun公司为我们在javax.servlet.http中写好了httpservlet,用于创建适合web站点的servlet
(7)req.getRemoteAddr():客户端ip
req.getLocalAddr():服务器端ip