读书人

学习servlet札记

发布时间: 2012-09-20 09:36:50 作者: rapoo

学习servlet笔记

什么是SERVLET?
Servlet(java服务器小程序)是一个用java编写的程序,此程序在服务器上运行以处理客户端请求。是按照Servlet规范编写的java类。

Servlet API
Servlet框架由两个java包组成:
1、javax.servlet包中定义了所有的servlet类都必须实现的接口和类
2、javax.servlet.http包中定义了采用HTTP协议通信的HttpServlet类
Servlet框架的核心是:javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口

HTTP SERVLET基础知识
HttpServlet类提供一个抽象类以创建HTTP Servlet
public void doGet(HttpServletRequest req,HttpServletResponse res)
doGet()方法处理客户端作出的GET请求
public void doPost(HttpServletRequest req,HttpServletResponse res)
doPost()方法处理客户端作出的POST请求
有两个参数:HttpServletRequest和HttpServletResponse,这两个类实现了ServletRequest接口和ServletResponse接口
ServletRequest接口中封装了客户请求信息。如客户请求方式、参数名、参数值、客户端正在使用的协议,以及发出客户请求的远程主机信息等
ServletResponse接口为Servlet提供了返回相应结果的方法

JAVAX.SERVLET包的接口为:
ServletConfig接口:在初始化的过程中由Servlet容器使用
ServletContext接口:定义Servlet用于获取来自容器的信息的方法
ServletRequest接口:向服务器请求信息
ServletResponse接口:响应客户端请求


JAVAX.SERVLET包的类为:
ServletInputStream类:用于从客户端读取二进制数据
ServletOutputStream类:用于将二进制数据发送到客户端

?

?

?

JAVAX.SERVLET.HTTP包的接口为:
HttpServletRequest接口:提供HTTP请求信息
HttpServletResponse接口:提供HTTP响应

SERVLET实现:
实例化调用init方法:把配置信息放在ServletConfig对象中,调用init(ServletConfig config)
客户请求和响应调用service方法
释放内存、关闭Web服务器调用destroy方法

abstract GenericServlet类:
public abstract service(request,response)

HttpServlet类:
protected void service(request,response)
public void service(request,response)
protected void doGet(request,response)
protected void doPost(request,response)
我们自己编写的servlet要继承HttpServlet,一般要覆盖doPost或者doGet方法

SERVLET体系结构
Servlet--GenericServlet--HttpServlet--用户自定义的Servlet

servlet收到一个请求--调用public的service()方法--把参数分别转换给HttpServletRequest和HttpServletResponse--这个public的service()方法调用protected的service方法--根据HTTP请求方法的类型,protected的service()调用doXXX()方法之一

编写一个HelloServlet类:

package servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class HelloServlet extends HttpServlet {private static final String CONTENT_TYPE="text/html;charset=utf-8";public void init() throws ServletException{}public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException{res.setContentType(CONTENT_TYPE);PrintWriter out=res.getWriter();out.println("<html>");out.println("<head><title>helloServlet</title></head>");out.println("<body>");out.println("<h1>Hello Servlet!</h1>");out.println("</body>");out.println("</html>");}public void destroy(){}}

?

在web.xml中部署:

?

?

<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">  <display-name></display-name>  <servlet>  <servlet-name>helloServlet</servlet-name>  <servlet-class>servlet.HelloServlet</servlet-class>  </servlet>  <servlet-mapping>  <servlet-name>helloServlet</servlet-name>  <url-pattern>/helloServlet</url-pattern>  </servlet-mapping>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></web-app>

?

?

读书人网 >编程

热点推荐