学习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>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值