Servlet简介
1: Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中。Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户的通信采用“请求/响应”的模式;x
2:Servlet可完成如下功能:
-创建并返回基于客户请求的动态HTML页面;
-创建可嵌入到现有HTML 页面中的部分HTML 页面(HTML 片段);
-与其它服务器资源(如数据库或基于Java的应用程序)进行通信;
Servlet容器响应客户端请求访问特定的Servlet流程如下:
1.客户端发出要求访问特定的Servlet的请求;
2.Servlet容器接收到客户请求,对其解析;
3.Servlet容器创建一个ServletRequest对象,在ServletRequest对象中包含客户请求信息及其它关于客户的信息,如:请求头,请求正文,以及客户机的ip地址等;
4.Servlet容器创建一个ServletResponse对象;
5.Servlet容器调用客户所请求的Servlet的Service()服务方法,并把ServletRequest对象和ServletResponse对象作为参数传递组该服务方法;
6.Servlet从ServletRequest对象中获取客户的请求信息;
7.Servlet利用ServletResponse对象来生成响应结果;
8.Servlet容器把Servlet生成的响应结果发送给客户;
项目结构:
HelloServlet.java代码
package com.servlet.javaweb;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class HelloServlet implements Servlet{
@Override
public void destroy() {
System.out.println("destroy");
}
@Override
public ServletConfig getServletConfig() {
System.out.println("getServletConfig");
return null;
}
@Override
public String getServletInfo() {
System.out.println("getServletInfo");
return null;
}
@Override
public void init(ServletConfig arg0) throws ServletException {
System.out.println("init");
}
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("service");
}
public HelloServlet(){
System.out.println("Hello Servlet a aa");
}
}
WEB.XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<!-- Servlet注册的名字 -->
<servlet-name>helloServlet</servlet-name>
<!-- Servlet的全类名 -->
<servlet-class>com.servlet.javaweb.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<!-- 需要和一个servlet节点的servlet-name子节点的文本节点一致 -->
<servlet-name>helloServlet</servlet-name>
<!-- 映射具体的访问路径: /代表当前WEB应用的根目录 -->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>