一.Servlet

1.Servlet的定义

  • Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
  • 狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
  • 最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

Servlet是作用在服务器端java应用程序,也是运行在tomcat容器中的java类。

2.Servlet的作用

  • 在程序启动之后 ,用来获取浏览器发送请求及请求数据,调用java程序获取数据,将数据返回给浏览器。

3.Servlet的生命周期

生命周期用法时间
实例化使用构造方法来实例化在servlet被加载的时候被实例化
初始化使用init方法在被调用时初始化
执行service方法当浏览器发送请求,servlet被调用的时候执行
销毁destory方法销毁当服务器关闭的时候销毁

4.Servlet 的工作流程

在这里插入图片描述

  • 浏览器发送请求--------tomcat容器--------自动加载web.xml配置文件--------实例化、初始化servlet--------调用servlet处理请求 --------调用数据库获取数据--------将数据响应给浏览器--------服务器关闭servlet销毁。

5.如何创建servlet

创建方式三种:

  • 实现servlet接口
  • 继承GenericServlet 类
  • 继承HttpServlet 类(常用的)

二.第一个javaweb程序 Hello world

  • 通过前端发送的请求,在控制台输出一个hellowold ,在页面在显示一个Hello world

1. 给eclipse添加tomcat 进行配置

在这里插入图片描述

2.基本步骤:

  • 创建动态web项目(创建xml文件)
  • 加载tomcat容器
  • 编写前端页面
  • 创建servlet
  • 编写web.xml配置文件
  • 启动项目,浏览器访问

2.1创建动态web项目(创建xml文件)

在这里插入图片描述
在这里插入图片描述

  • 如果忘记勾选,可以点击File----JavaEE Tools-----Generate Deployment Descriptor Stub
  • web.xml
    在这里插入图片描述

2.2 加载tomcat容器,编写前端页面

在这里插入图片描述

2.3创建servlet

package com.nebula.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.net.httpserver.HttpServer;
//是servlet和genericServlet的子类,同时实现了Serializable
public class HelloServlet extends HttpServlet{

	private static final long serialVersionUID = 6924982805230638229L;
	//无参数构造方法
	public HelloServlet() {
		super();
		System.out.println("实例化servlet");
	}
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("get请求处理");
		System.out.println("hello world!!!");
		resp.getWriter().write("hello world!!!");
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("post请求处理");
	}
	@Override
	public void destroy() {
		System.out.println("servlet销毁");
	}
	@Override
	public void init() throws ServletException {
		System.out.println("servlet初始化");
	}

	
	
	
}

2.4配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>HelloServlet</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <!-- 配置servlet -->
  <servlet>
  		<servlet-name>helloServlet</servlet-name>
  		<servlet-class>com.nebula.servlet.HelloServlet</servlet-class>
  	
  </servlet>
  
  <servlet-mapping>
  
  		<servlet-name>helloServlet</servlet-name>
  		<url-pattern>/helloServlet</url-pattern>
  
  </servlet-mapping>
</web-app>

三.第一个servlet程序运行代码介绍

1. javaweb,servlet程序的工作流程

程序启动-------tomcat服务器-------web.xml配置(xml文件解析)--------创建servlet-----------------执行doget,dopost----------响应数据

2.web.xml配置文件的内容

  • <?xml version="1.0" encoding="UTF-8"?> xml文件的编码和版本
  • 所有的配置信息都必须写到web-app标签中
  • <display-name>HelloServlet</display-name>当前项目的名字,可有可无
  • 默认的首页面 http://localhost:8080/项目名称/默认页面(默认页面也可以不要)
    在这里插入图片描述
  • web.xml的全局变量
    在这里插入图片描述
  • 过滤器和监听器的配置
    在这里插入图片描述
  • servlet的配置,使用反射机制获取servlet类(url-pattern:访问路径)
    在这里插入图片描述
  • 一个servlet一般用来处理一种请求,两个也可以。
  • 在配置servlet中,可以配置多个servlet,但servlet-name不能相同
    在这里插入图片描述
  • 配置servlet的局部变量,加载时机(加载时机时数字越小,加载越早)
  • 服务器启动加载web.xml文件的时候实例化servlet。
    在这里插入图片描述

四.前端页面如何访问servlet的

  • 程序启动-------tomcat服务器-------web.xml配置(xml文件解析)--------创建servlet-----------------执行doget,dopost----------响应数据

1.前端页面

  • 可以使用a标签、img、form表单来发送请求。 在HTML中,a标签的href,form的action中的/表示的是ip:port,不写默认的是ip:port/项目名字。

  • 也可以使用浏览器的url中直接输入访问路径(http://localhost:8080/helloservlet/helloservlet),它会去找tomcat应用服务器,应用服务器根据请求url路径,去匹配servlet-mapping的url-pattern
    在这里插入图片描述
    在这里插入图片描述

  • 根据请求方式来用doget或者dopost来进行处理。

  • a,img,form的默认请求方式都是get请求,都会使用doget方式进行处理。可以使用form的post
    在这里插入图片描述

  • web程序,如果修改了静态页面,不需要重新启动服务器就可以使用。修改servlet代码,需要重新启动,eclipse会自动帮助我们重新启动tomcat。

  • PrintWriter writer = resp.getWriter();writer.write("hello world!!!");resp.getWriter().write("hello world!!!");相同
    在这里插入图片描述

2.servlet调用Java程序将数据库的数据显示到页面中

  • 只需要在servlet中编写数据库操作代码,java怎么写,servlet就怎么写;或者在servlet中引用数据操作类。
  • 响应数据:httpservletresponse对象
  • 响应一个新的页面,以io流的形式,将响应的文本内容给到浏览器。
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐