Servlet简介
2008-06-13 18:59
253 查看
一,什么是Servlet?
Servlet是用Java编写的服务器端程序模块,用以扩展WebServer的功能。Servlet被加载到Web服务器上,并在其中运行。Servlet使用HTTP服务器接收和响应客户机发出的请求。
二,Servlet能够执行哪些功能?
1,能够创建并返回整个HTMLWeb页面,根据客户请求的性质而具有动态内容。
2,能够创建HTMLWeb页面的动态部分,并嵌入到现有静态HTML页面中。
3,可以与服务器上的其他资源进行通信,包括数据库、其他Java应用程序、以及用其他语言编写的应用程序。
4,能够处理与多个Web客户机的连接,接收来自多个Web客户机的输入信息,并将结果广播到多个Web客户机。
5,能够打开对Web客户机上applet的个别连接,并保持连接处于打开状态,允许在这个单一连接上进行多种数据传递。这种效能使客户机和服务器能够容易地进行会话。
三,什么是Servlet组件
Servlet组件(即Servlet容器)实际是一个程序模块(Class文件),那么服务器在接收到客户发送的URL请求,就根据URL请求中的资源部分在服务器找到相应的Servlet组件资源然后装载到服务器并执行;这个过程是所有J2EE服务器都共有的标准过程。
四,Servlet的生命周期。
Servlet的生命周期由Servlet容器控制,由容器创建Servlet实例;
整个生命周期:
1,实例化:加载Servlet组件类,由容器创建Servlet实例;
2,初始化:执行init方法,初始化Servlet实例;
ServletConfig接口实现对象:向Servlet传递配置信息,包含Servlet初始化信息。以名-值对形式提供。Servlet使用ServletConfig接口与Servlet容器通信。通过getServletConfig方法获得当前ServletConfig接口实现对象。
3,服务:调用Servlet组件GenericServlet类的Service方法处理客户请求;
ServletRequest接口和ServletResponse接口的实现对象来处理请求和发送响应。
如果URL为GET请求则执行HttpServlet类的doGet方法;如果URL为POST请求则执行HttpServlet类的doPost方法;
4,释放:执行Destory方法释放Servlet实例资源;
五,Servlet体系结构和层次结构
1,Servlet体系结构
------请求--->------->------->
客户端HTTP服务器Servlet容器Servlet
<-----响应----<---------<-------
2,Servlet层次结构
Servlet是实现javax.servlet.Servlet接口的对象,大多数Servlet通过GenericServlet或HttpServlet进行扩展.ServletAPI由两个程序包组成
javax.servlet包
类:
ServletInputStream类:从客户端读取二进制数据;
ServletOutputStream类;向客户端发送二进制数据;
GenericServlet类:抽象类,定义了一个通用的,独立于底层协议的Servlet。
接口:
Servlet接口:管理Sevlet。定义实现Servlet的必须方法。一个Servlet必须实现Servlet接口或Servlet接口的扩展。
ServletConfig接口:Servlet初始化时,向Servlet传递配置信息。
ServletContext接口;Servlet上下文,使Servlet与其他的Servlet容器进行交互通信。
ServletRequest接口:向Servlet客户端提供请求信息
ServletResponse接口;Servlet向客户端提供响应信息。
javax.servlet.http包
类:
Cookie类
HttpServlet类:抽象类,继承自GenericServlet。应用于HTTP协议的请求和响应的Servlet。
接口:
HttpSession接口:
HttpAttributeListener接口:会话的属性监听接口;
HttpServletRequest接口;扩展ServletRequest接口,向Servlet客户端提供HTTP请求信息。
HttpServletResponse接口;扩展ServletResponse接口,Servlet向客户端提供HTTP响应信息。
总体可以分为:
Servlet类:实现具体协议的业务类,其目的是一个业务实现的WEB组件类;
Servlet接口:该接口独立于协议实现,其目的是为了定义服务器的组件标准;
GenericServlet抽象类:该类提供了一个独立于协议的实现,其目的是为了满足服务器;
HttpServlet:该类实现了HTTP协议,其目的是为了让客户程序扩展;
示例:登录处理,将表单提交给Servlet处理
LoginServlet.java
login.jsp
web.xml
Servlet是用Java编写的服务器端程序模块,用以扩展WebServer的功能。Servlet被加载到Web服务器上,并在其中运行。Servlet使用HTTP服务器接收和响应客户机发出的请求。
二,Servlet能够执行哪些功能?
1,能够创建并返回整个HTMLWeb页面,根据客户请求的性质而具有动态内容。
2,能够创建HTMLWeb页面的动态部分,并嵌入到现有静态HTML页面中。
3,可以与服务器上的其他资源进行通信,包括数据库、其他Java应用程序、以及用其他语言编写的应用程序。
4,能够处理与多个Web客户机的连接,接收来自多个Web客户机的输入信息,并将结果广播到多个Web客户机。
5,能够打开对Web客户机上applet的个别连接,并保持连接处于打开状态,允许在这个单一连接上进行多种数据传递。这种效能使客户机和服务器能够容易地进行会话。
三,什么是Servlet组件
Servlet组件(即Servlet容器)实际是一个程序模块(Class文件),那么服务器在接收到客户发送的URL请求,就根据URL请求中的资源部分在服务器找到相应的Servlet组件资源然后装载到服务器并执行;这个过程是所有J2EE服务器都共有的标准过程。
四,Servlet的生命周期。
Servlet的生命周期由Servlet容器控制,由容器创建Servlet实例;
整个生命周期:
1,实例化:加载Servlet组件类,由容器创建Servlet实例;
2,初始化:执行init方法,初始化Servlet实例;
ServletConfig接口实现对象:向Servlet传递配置信息,包含Servlet初始化信息。以名-值对形式提供。Servlet使用ServletConfig接口与Servlet容器通信。通过getServletConfig方法获得当前ServletConfig接口实现对象。
3,服务:调用Servlet组件GenericServlet类的Service方法处理客户请求;
ServletRequest接口和ServletResponse接口的实现对象来处理请求和发送响应。
如果URL为GET请求则执行HttpServlet类的doGet方法;如果URL为POST请求则执行HttpServlet类的doPost方法;
4,释放:执行Destory方法释放Servlet实例资源;
五,Servlet体系结构和层次结构
1,Servlet体系结构
------请求--->------->------->
客户端HTTP服务器Servlet容器Servlet
<-----响应----<---------<-------
2,Servlet层次结构
Servlet是实现javax.servlet.Servlet接口的对象,大多数Servlet通过GenericServlet或HttpServlet进行扩展.ServletAPI由两个程序包组成
javax.servlet包
类:
ServletInputStream类:从客户端读取二进制数据;
ServletOutputStream类;向客户端发送二进制数据;
GenericServlet类:抽象类,定义了一个通用的,独立于底层协议的Servlet。
接口:
Servlet接口:管理Sevlet。定义实现Servlet的必须方法。一个Servlet必须实现Servlet接口或Servlet接口的扩展。
ServletConfig接口:Servlet初始化时,向Servlet传递配置信息。
ServletContext接口;Servlet上下文,使Servlet与其他的Servlet容器进行交互通信。
ServletRequest接口:向Servlet客户端提供请求信息
ServletResponse接口;Servlet向客户端提供响应信息。
javax.servlet.http包
类:
Cookie类
HttpServlet类:抽象类,继承自GenericServlet。应用于HTTP协议的请求和响应的Servlet。
接口:
HttpSession接口:
HttpAttributeListener接口:会话的属性监听接口;
HttpServletRequest接口;扩展ServletRequest接口,向Servlet客户端提供HTTP请求信息。
HttpServletResponse接口;扩展ServletResponse接口,Servlet向客户端提供HTTP响应信息。
总体可以分为:
Servlet类:实现具体协议的业务类,其目的是一个业务实现的WEB组件类;
Servlet接口:该接口独立于协议实现,其目的是为了定义服务器的组件标准;
GenericServlet抽象类:该类提供了一个独立于协议的实现,其目的是为了满足服务器;
HttpServlet:该类实现了HTTP协议,其目的是为了让客户程序扩展;
示例:登录处理,将表单提交给Servlet处理
LoginServlet.java
packagecom.qu.servlet; importjava.io.IOException; importjava.io.PrintWriter; importjavax.servlet.ServletException; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; publicclassLoginServletextendsHttpServlet{ /** * */ privatestaticfinallongserialVersionUID=1L; publicLoginServlet(){ super(); } @Override publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;charset=gb2312"); request.setCharacterEncoding("gb2312"); StringuserName=request.getParameter("user"); StringuserPswd=request.getParameter("pswd"); PrintWriterout=response.getWriter(); out.println("<html>"); out.println("<head><title>Login</title></head>"); out.println("<body>"); if(this.checkLogin(userName,userPswd)){ out.println("用户名为:"+userName); out.println("欢迎您访问本网站!"); }else{ out.println("您的用户名或密码有误,请重新登录!"); } out.println("</body>"); out.println("</html>"); out.close(); } @Override publicvoiddoPost(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ this.doGet(req,resp); } publicbooleancheckLogin(StringuserName,StringuserPswd) { if(userName.equals("")||userName.length()>12||userName.length()<4){ returnfalse; } elseif(userPswd.equals("")||userPswd.length()>12||userPswd.length()<6){ returnfalse; }else{ returntrue; } } }
login.jsp
<%@pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">
<title>MyJSP'index.jsp'startingpage</title>
<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache">
<metahttp-equiv="expires"content="0">
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="Thisismypage">
<!--
<linkrel="stylesheet"type="text/css"href="styles.css">
-->
</head>
<body>
<formaction="login"method="post">
用户名:<inputtype="text"name="user"/><BR/>
密码:<inputtype="password"name="pswd"><BR/>
<inputtype="submit"value="提交"/><inputtype="reset"value="重置"/>
</form>
</body>
</html>
web.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<!--Servlet-->
<!--login-->
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.qu.servlet.LoginServlet</servlet-class>
</servlet>
<!--Servletmapping-->
<!--loginmapping-->
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
</web-app>
相关文章推荐
- HttpServletRequest对象简介_动力节点Java学院整理
- Servlet、servletConfig、ServletContext简介
- servlet之cookie简介_动力节点Java学院整理
- Servlet简介 以及servlet一些细节 servletconfig servletcontext 的几个应用
- Java Hour 48 Servlet 简介
- Servlet简介
- Servlet简介
- Servlet第三篇【request和response简介、response的常见应用】
- Servlet教程____Servlet简介和工作原理
- Servlet自学第7讲:Servlet简介
- 《Java Servlet编程》笔记(Servlet简介)
- [Java Servlet]Servlet简介
- Servlet简介
- Servlet中的监听器简介
- Servlet简介
- servlet的部分作用域和接口简介
- Servlet规范简介
- Response对象、HttpServletResponse简介、处理字节编码问题、实现动态文件下载
- Servlet技术简介与编写、编译Servlet程序
- Servlet技术简介与编写、编译Servlet程序