java servlet简述

概述

servlet就相当于一个java小程序,其作用主要是为了接收并响应客户端的请求

入门

1、新建工程并新建个类

2、重写servlet的方法(重要的是service方法)

3、部署工程

  a.在web.xml文件中配置servlet

  b.在web.xml文件中对声明的servlet进行映射

4、发布应用并启动服务器

5、访问(利用映射的虚拟路径进行访问)

public class HelloServlet implements Servlet {

	@Override
	public void destroy() {
		// TODO Auto-generated method stub

	}

	@Override
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void init(ServletConfig arg0) throws ServletException {
		// TODO Auto-generated method stub

	}

	@Override
	public void service(ServletRequest arg0, ServletResponse arg1)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("hello");
	}

}


//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">
  
  <!-- 声明servlet开始 -->
 <servlet>
 	<servlet-name>hello</servlet-name> <!-- 指定servlet逻辑名称 -->
 	<servlet-class>cn.itcast_01.HelloServlet</servlet-class> <!-- 指定servlet限定名称 -->
 </servlet>
  <!-- 声明servlet结束 -->
  
  <!-- 映射开始 -->
  <servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/hello</url-pattern><!-- 指定映射虚拟名称 -->
  </servlet-mapping>
  <!-- 映射结束 -->
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 配置tomacat服务器

发布servlet项目

启动tomcat 访问默认localhost:8080/web context-root/hello(web.xml中配置的虚拟路径)这样就可以进行访问了

执行原理

localhost:8080/web context-root/hello   (根据这个路径来讲解)

1、输入地址以后会先在web.xml文件中去找 映射 然后匹配url-pattern的配置

2、匹配成功以后去匹配映射配置的逻辑名称

3、逻辑名称匹配成功以后  会去找相应的servlet-class(内部会创建一个servlet对象 最终会执行对象中的service方法)

4、servlet-class匹配成功以后就会执行我们新建类中的service方法最后 在控制台中输出hello(先调用init  后调用service方法)

生命周期

1、初始化 (当浏览器发送请求就会创建一个《只创建一次》servlet对象,并且只执行一次init)

2、活着     (每次请求一次执行一次service方法)

3、销毁(服务器正常关闭 执行destroy)

请求转发特点

1、一次请求一次响应(处在同一个请求中)

2、地址栏不会发生变化

3、只能转发到本应用的内部资源,不能转发到其他web应用

原理图:

重定向的特点

1、二次请求二次响应

2、地址栏会发生变化

3、可以重定向到本应用资源,也可以重定向到其他web应用

原理图:

一般web编程主要继承HttpServlet类就可以了 其原理图如下:

猜你喜欢

转载自www.cnblogs.com/nianzhilian/p/9145908.html