关键词:
【概念】
Servlet通常被称为服务端小程序,是运行在服务端的程序,用于处理及相应客户端的请求。
Servlet是用java语言开发网页动态资源的技术。
【特点】
1.Servlet是个特殊的Java类,这个Java类必须继承HttpServlet类。
2.一个普通的java类实现了Servlet接口,也叫作Servlet程序。通常继承HttpServlet是为了创建一个基于Http协议的Servlet。
3.Servlet程序要部署到服务器(如Tomcat)运行。
【Servlet提供的响应客户端请求的方法】
1. doGet() 用于响应客户端的GET请求。
2. doPost() 用于响应客户端的POST请求。
3. doPut() 用于响应客户端的PUT请求。
4. doDelete() 用于响应客户端的DELETE请求
注:客户端的请求通常只有GET和POST两种,Servlet为了响应这两种请求,必须重写doGet()和doPost()方法。
【Servlet开发1(Servlet3.0之前)】
[ 第1步 ]
编写java类,继承HttpServlet 。重写doGet()和doPost()方法。
package com.Higgin.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FirstServlet extends HttpServlet { private static final long serialVersionUID = 1L; public FirstServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doGet方法执行---"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doPost方法执行---"); } }
[ 第2步 ](没有使用IDE的情况下)
把Servlet的class字节码拷贝到WEB-INF/classes目录下
[ 第3步 ]
在web.xml中配置对应的servlet
<?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"
id="WebApp_ID" version="3.0"> <display-name>HelloServlet</display-name> <servlet> <servlet-name>FirstServlet</servlet-name> <servlet-class>com.Higgin.servlet.FirstServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
【运行结果】
【对于web.xml中Servlet配置的注释】
1.由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把Servlet程序映射到一个URL地址上,这个工作是在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成,在servlet3.0之后,可以使用@WebServlet("....")代替。
2.<servlet>元素用于注册Servlet,它包含两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。
3.一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问的路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问名称。
<!-- 配置一个Servlet --> <servlet> <!-- Servlet内部名称,自定义 --> <servlet-name>FirstServlet</servlet-name> <!-- Servlet的 类全名 --> <servlet-class>com.Higgin.servlet.FirstServlet</servlet-class> </servlet> <!-- Servlet的 映射配置 --> <servlet-mapping> <!-- Servlet的内部名称,一定要和上面的保持一致 --> <servlet-name>FirstServlet</servlet-name> <!-- Servlet的映射路径(访问Servlet的名称) --> <url-pattern>/test</url-pattern> </servlet-mapping>
【Servlet开发2:利用Servlet3.0新特性@WebServlet注释】
最大不同:直接在对应的Servlet类名(如上面的FirstServlet类)上加上注释@WebServlet("/test"),无需在web.xml中进行配置就可以实现相同的效果。
package com.Higgin.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class FirstServlet */ @WebServlet("/test") //servlet3.0新特性 public class FirstServlet extends HttpServlet { private static final long serialVersionUID = 1L; public FirstServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doGet方法执行---"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doPost方法执行---"); } }
【Servlet的执行过程】
前提:TomCat服务器启动,首先加载webapps中的每个web应用的web.xml配置文件。
1.在浏览器输入对应的url, http://localhost:8080/HelloServlet/test
2.截取到URL的字符串,得到需要访问的资源名称: /test
3.在HelloServlet网站下的web.xml信息中搜索是否存在 /test匹配的 url-pattern。
4.匹配到对应的url-pattern之后,取出当前映射信息中的servlet-name的名称,然后在web.xml信息中搜索是否存在一个相同servlet-name名称的servlet配置信息。
5.找到对应的servlet配置信息之后,取出当前配置信息的servlet-class的内容,即字符串 com.Higgin.servlet.FirstServlet
6.创建FirstServlet对象,然后调用FirstServlet类中的方法。
7.Servlet就把内容返回给浏览器用户。
【关于http://localhost:8080/HelloServlet/test】
浏览器中输入:http://localhost:8080/HelloServlet/test
http :// http协议(1.本地hosts文件查找域名和ip映射 2.找不到,联网到DNS服务器找有名和ip映射器 )
8080 端口 (TomCat:8080)
/HelloServlet 站点下的web应用名称
/test 资源名称,截取到/test 字符串
1.在HelloServlet应用下的web.xml文件中查找是否存在匹配的url-pattern
2.使用Servlet的内部名称在web.xml文件中查找是否存在相同名称的Servlet配置
3.得到对应的servlet-class内容,字符串 com.Higgin.servlet.FirstServlet
通过反射构造HelloServlet对象,调用方法(doGet///),将内容返回输出到浏览器,看到效果。
【关于Servlet接口的实现类HttpServlet】
Servlet接口定义了两个默认实现类:HttpServlet和GenericServlet。
* HttpServlet指能够处理HTTP请求的Servlet,它在原有的Servlet接口上添加了一些与HTTP协议处理相关的方法,它比Servlet接口的功能更为强大。因此在编写Servlet时,通常应该继承这个HttpServlet类,避免直接去实现Servlet接口。
* HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如果为GET请求,则调用HttpServlet的doGet方法;如果为POST请求,则调用doPost()方法。因此,我们在编写Servlet时,通常只需要编写doGet()或doPost()方法,而不需要去复写service方法。
javaweb_servlet_servlet基础_servletconfig
Servlet基础——ServletConfig1.ServletConfigServletConfig封装了Servlet的相关配置信息。ServletConfig是一个接口,其具体实现是由服务器的厂商所实现。2.配置Servlet的初始化参数信息示例:<servlet> <servlet-name>Manager</servlet-name> <s 查看详情
javaweb_servlet_servlet基础_servlet概述以及helloworld
Servlet基础_Servlet概述以及helloworld1.Servlet概述(1).Servlet(ServerApplet)是JavaServlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web... 查看详情
javaweb_servlet篇_01(代码片段)
Servlet-01篇通过前段时间得JavaWeb基础学习后,对于之前学习总结的,做一下简单的梳理。本篇主要梳理相关Servlet的知识点。文章目录Servlet-01篇一、Servlet基础概念二、Servlet的生命周期三、Servlet重要函数四、手动实现简单... 查看详情
javaweb_servlet篇_01(代码片段)
Servlet-01篇通过前段时间得JavaWeb基础学习后,对于之前学习总结的,做一下简单的梳理。本篇主要梳理相关Servlet的知识点。文章目录Servlet-01篇一、Servlet基础概念二、Servlet的生命周期三、Servlet重要函数四、手动实现简单... 查看详情
servlet11
设置基础路径当前页面上的所有路径都自带基础路径为“前缀”,是绝对路径 查看详情
javaweb_servlet篇_01(代码片段)
Servlet-01篇通过前段时间得JavaWeb基础学习后,对于之前学习总结的,做一下简单的梳理。本篇主要梳理相关Servlet的知识点。文章目录Servlet-01篇一、Servlet基础概念二、Servlet的生命周期三、Servlet重要函数四、手动实现简单... 查看详情
暑假学习计划:day_1.jsp&servlet&tomcat环境搭建到基础的认识。
1.了解JSP和Servlet(百度了解即可)。2.了解B/S和C/S。分别是 浏览器/服务器 和 客户端/服务器。其中B/S被称为瘦模式(主流模式)。3.了解并下载Tomcat服务器:web应用服务器,轻量级。链接:http://pan.baidu.com/s/1nvcCNVF密码... 查看详情
servlet基础(下)
10.Servlet定义初始化参数必须使用web.xml中的init-param/para-name和para-value元素;11.ServletConfig对象的getInitParameter方法可以获取Servlet定义的初始化参数.12.容器创建了应用程序上下文对象(ServletContext),用于描述Servlet运行环境的信息,使得serv... 查看详情
jsp/servlet基础语法
相关学习资料http://my.oschina.net/chape/blog/170247http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp/web_xml.htmlhttp://blog.csdn.net/liaoxiaohua1981/article/details/6761053http://computer.c.blog.163.co 查看详情
2019-06-11_python基础语法
Python基础语法Python语言与Perl,C和Java等语言有许多相似之处。但是,也存在一些差异。在本章中我们将来学习Python的基础语法,让你快速学会Python编程。执行以上代码,会出现如下错误提醒:$pythontest.pyFile"test.py",line5ifTrue:^Indenta... 查看详情
servlet实现訪问量的统计小案例
今天学习了Servlet的基础知识,学习了一个统计訪问量的小案例,记录一下packagecn.selevet_01;importjava.io.IOException;importjava.io.InputStream;importjava.io.PrintWriter;importjavax.servlet.ServletContext;importjavax.servl 查看详情
servlet_2
packagecom.atguigu.servlet;importjava.io.IOException;importjavax.servlet.Servlet;importjavax.servlet.ServletConfig;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.s 查看详情
servlet_3
packagecom.atguigu.servlet;importjava.io.IOException;importjavax.servlet.Servlet;importjavax.servlet.ServletConfig;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.s 查看详情
servlet_1
packagecom.atguigu.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.Date;importjavax.servlet.Servlet;importjavax.servlet.ServletConfig;importjavax.servlet.ServletException;i 查看详情
servlet基础知识
目录!一、什么是servlet二、Tomcat容器等级三、手工编写第一个servlet四、servlet执行流程五、servlet生命周期六、Tomcat装载servlet的三种情况七、servlet与JSP内置对象的关系八、servlet获取表单数据九、servlet路径跳转 一、什么是serv... 查看详情
01_3_创建一个servlet
01_3_创建一个Servlet1.创建一个Servletimport java.io.IOException;import java.io.PrintWriter; import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import jav 查看详情
servlet_4
packagecom.atguigu.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjav 查看详情
servlet_03_部署描述符
二、参考文档1.Servlet3.0之部署描述符2.web.xml配置详解部署描述符文件 查看详情