引言:
Servlet技术是掌握WEB开发的核心点,也是进行服务器与用户需求、响应的关键。掌握Servlet其实十分简单,只要掌握其常用API即可。初期的JSP开发,都是以用Servlet处理需求和响应的,后期这一部分会换成Struts框架。
一、Servlet总论
1、servlet简介
servlet 是在服务器上运行的小程序。这个词是在 Java applet 的环境中创造的。虽然后者已很少被使用,但 servlet 却发展的很好。
服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(Common Gateway Interface,CGI)应用程序完成的。然而,在服务器上运行 Java,这种程序可使用 Java 编程语言实现。在通信量大的服务器上,Javaservlet 的优点在于它们的执行速度更快于 CGI 程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。
2、servlet实现过程
Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。这个过程为:
1) 客户端发送请求至服务器端;
2) 服务器将请求信息发送至 Servlet;
3) Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
4) 服务器将响应返回给客户端。
Servlet 看起来像是通常的 Java 程序。Servlet 导入特定的属于 Java Servlet API 的包。因为是对象字节码,可动态地从网络加载,可以说 Servlet 对 Server 就如同 Applet对 Client 一样,但是,由于 Servlet 运行于服务器中,它们并不需要一个图形用户界面。从这个角度讲,Servlet 也被称为 FacelessObject。
一个 servlet 就是 Java 编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然 servlet 可以对任何类型的请求产生响应,但通常只用来扩展 Web 服务器的应用程序。
3、Servlet生命周期
所谓的生命周期,就是:怎么来的,怎么去的,在来去之间调用了什么方法。
(1)客户端请求该 servlet
(2)加载 servlet 类到内存
(3)实例化、初始化该 servlet
(4)init() 初始化参数
(5)service()(doGet() 或者 doPost())
(6)destroy()
二、写一个简单Servlet
要编写一个web资源,只需要实现两个步骤:
A)编写一个java类,实现servlet接口
B)把开发好的java类部署到web服务器中
然而,在实际开发中,实现Servlet接口要实现其所有方法,十分麻烦
不如直接继承HttpServlet类或GenericServlet类。
三、实际开发中创建一个servlet
New - Serlvet:创建的Servlet实现了HttpServlet类,并且自动在web.xml文件中写入了Servlet的配置信息。
注意:由于在对Servlet进行重命名时,配置文件不会随着更新,如果忘记改配置文件,则会使得路径映射时出错。
因此在为Servlet取名时一定要慎重。
一个Servlet
web.xml配置文件中Servlet配置项
四、Servlet中常用API
1、Servlet接口
常用方法:
Init();—servlet生命周期开始时调用初始化方法
Destroy();—servlet生命周期结束时调用的销毁方法
Service();—处理请求的方法
getServletConfig();—得到ServletConfig对象
2、ServletConfig接口
服务器一旦启动,servlet就已经被加载了,一旦有请求访问,servlet就创建了实例对象,因此如果在服务器运行过程中需要改变servlet中的某些参数,就必须先关闭服务器。这就导致有些参数不适合在servlet中写死,比如charset\jdbc url...
Servlet配置信息相关的接口,虽说是接口,但是可以创建他的实例对象。引入javax.servlet.ServletConfig,就可以创建ServletConfig的实例对象,从而得到在配置文件中配置的初始化信息。
首先,可以通过<init-param></init-param>来配置一个初始化参数
然后可以通过servletconfig对象得到这个配置的参数
这样在浏览器中访问这个Servlet,就会看到输出的信息
常用方法:
(1)public String getInitParameter(String name);
传入属性名,根据属性名返回属性值
(2)public Enumeration getInitParameterNames();
返回一个string列表对象(枚举),包含全部的初始化属性名
(3)public ServletContext getServletContext();
可以通过ServletConfig得到ServletContext对象
3、ServletContext接口
servletContext实际上也是一个对象,它是代表当前web应用的对象。服务器一旦启动,就会创建ServletContext实例对象,有几个web应用,就创建几个。
servletContext对象的常用功能如下:
(1)实现servlet间的数据共享,制作聊天室
(2)能实现servlet的转发
(3)能通过配置得到初始化参数
(4)servletContext对象其实就是context域对象,域:代表一定范围,可以存东西。
ServletContext的常用方法
//(1)向Context域中存、取、删对象
public void setAttribute(String name, Object o);
public Object getAttribute(String name);
public void removeAttribute(String name);
public Enumeration getAttributeNames();
//(2)得到别的web应用的方法
public ServletContext getContext(String uripath);
//(3)得到某一资源的绝对路径
public String getRealPath(String path);
//(4)得到资源,当作URL对象来返回
public URL getResource(String uripath);
//(5)得到资源,当作流来返回
public InputStream getResourceAsStream(String uripath);
//(6)得到转发对象
public RequestDispatcher getRequestDispatcher(String uripath);
//(7)得到web应用的配置信息
public String getInitParameter(String name);
例子如下:
(1)获得初始化参数:
这种方式的好处在于可以不用每个servlet都配置初始化参数
(2)实现Servlet转发:
什么叫转发呢?你找我借钱,我说我没有,我帮你去找他(1次请求)
重定向呢?你找我借钱,我说我没有,你自己去找他(2次请求)
Servlet不适合做输出,servlet处理完请求以后,要转发给jsp做显示
(3)利用ServletContext读取资源文件(.properties:数据是没有关系的)
A)非传统方式:用得较多,但无法获得资源名称
B)传统方式:用的不多,但是可以获得资源名称,文件下载只能用它
C)非Servlet读取资源文件:只能通过类装载器读
根据mvc设计思想,servlet不能操作数据库,而应该dao操作数据库,但是dao里面得不到ServletContext(不能把它通过属性传过去,否则会耦合)
由于每个方法(增删改查)都需要读资源文件,而资源文件其实只读一次就够了,多以可以把它放在静态代码块中(注意:这种方式读文件,文件不能太大)
未完待续
- 大小: 52.4 KB
- 大小: 34.4 KB
- 大小: 10 KB
- 大小: 44.8 KB
- 大小: 12.5 KB
- 大小: 20.7 KB
- 大小: 10.6 KB
- 大小: 57.4 KB
- 大小: 71.3 KB
- 大小: 42.3 KB
- 大小: 31.6 KB
分享到:
相关推荐
转账系统设计——Servlet技术JavaBean技术Jsp技术
JSP源码——jsp+servlet+javaBean实现MVC_jspmvc.zip
JSP源码——音乐网站(JSP+SERVLET).zip
《Java Web开发基础——从Servlet到JSP》源代码v1.0
库存商品管理(jsp)——试题讲解源码及资料,本试题使用Jsp+Servlet+Mysql+JDBC等技术实现库存商品管理,资料齐全
Java在Web应用程序开发方面的巨大潜力已日趋明显,其具有多线程执行,内存管理,面向对象性和强大的...本书首先介绍Servlet API,JSP API基础知识,接着讲解如何进行对话跟踪盒调试,以及XML盒使用企业JavaBeans……
JSP源码——教务管理系统(jsp+servlet+mysql).zip
用JSP+JavaBean+Servlet开发的数据库应用实例——CD管理系统,有完整的工程源码,并且利用它演示在Servlet中连接和使用MySQL数据库。
JSP源码——博客系统网站(JSP+SERVLET+MYSQL).zip
JSP实例开发源码——jsp+servlet+javaBean实现MVC.zip
JSP源码——ERP管理系统(jsp+servlet).zip
学习JSP 学习JSP(JBuilder版)——用Servlet实现页面间通信(Session对象)
JSP源码——共创在线考试系统(JSP+SERVLET).zip
JSP源码——教材订购系统(jsp+servlet+mysql).zip
含数据库文件(oracle),项目简洁不复杂,符合简单的课程设计要求,对于学习jsp和servlet大有益处,积分较高,但绝对干货!
JSP毕业设计——学生成绩管理系统(mysql),内涵结构框架,jsp页面代码,操作过程说明,mysql数据库构建源码。
JSP源码——网上购物系统(JavaBean+Servlet+jsp).zip
JSP源码——酒店订单管理系统(Jsp+servlet+mysql).zip