servlet教程
来源:互联网 发布:绘画录屏软件 编辑:程序博客网 时间:2024/06/05 01:00
1.什么事servlet
Servlet 是在服务器上运行的小程序
2.servlet生命周期
(1)第一次发送servlet请求时,servlet容器创建servler对象;
(2)servlet对象创建成功后,会调用init()方法进行初始化;
(3)对每个客户端请求,Servlet容器都在不同的线程体内形成对应的request和response对象,
并通过Servlet的service()方法间接调用doPos()或doGet()方法;
(4)当容器决定移除Servlet时调用其destroy()方法,并释放Servlet实例对象;
注:servlet生命周期三个方法:init(),service(),destroy
init() 初始化servlet对象
service() 调用doGet()或者doPost()对请求做响应的处理
destroy() 关闭web容器时调用此方法释放内存
、
3,Servlet框架的两个java包
Servlet框架是由两个java包组成:javax.servlet和javax.servlet.http;
(1)javax.servlet包:包中定义了所有的servlet类都必须实现的接口和类(与Http协议无关的一般性servlet类);
(2)javax.servlet.http包:包中定义了采用Http协议通信的HttpServlet类(增加了与Http协议有关的功能)
(注:所有Servlet都必须实现javax.servlet.Servlet接口,但是通常我们都会从javax.servlet.GenericServlet或javax.servlet.http.HttpServlet择一来实现。如果写的Servlet代码和HTTP协议无关,那么必须继承GenericServlet类;若有关,就必须继承HttpServlet类。)
<1>介绍此包(javax.servlet.http)中的HttpServlet类中提供的doGet()和doPost()方法:
public voiddoGet(HttpservletRequest req,HttpServletResponse res):处理客户端做出的Get请求;
Publicvoid doPost(HttpservletRequest req,HttpServletResponse res):
处理客户端做出的Post请求;
(注:当请求到来时,service()方法决定请求的类型(GET、POST、HEAD、OPTIONS、DELETE、PUT、TRACE),并把请求分发给相应的处理方法(doGet()、doPost()、doHead()、doOptions()、doDelete()、doPut()、doTrace())每个do方法具有和第一个service()相同的形式。我们常用的就是doGet()和doPost()方法,为了响应特定类型的HTTP请求,我们必须重载相应的do方法。如果Servlet收到一个HTTP请求而你没有重载相应的do方法,它就返回一个说明此方法对本资源不可用的标准HTTP错误。
)
4,实例
创建一个servlet——HelloWordServlet.java:
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- @WebServlet(urlPatterns = {"/HelloWordServlet"})
- public class HelloWordServlet extends HttpServlet {
- protected void processRequest(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- //设定内容类型为Html网页Utf-8编码
- response.setContentType("text/html;charset=UTF-8");
- //输出页面
- PrintWriter out = response.getWriter();
- try {
- out.println("<!DOCTYPE html>");
- out.println("<html>");
- out.println("<head>");
- out.println("<title>Servlet HelloWordServlet</title>");
- out.println("</head>");
- out.println("<body>");
- out.println("大家好,我是李朋杰!" );
- out.println("</body>");
- out.println("</html>");
- } finally {
- out.close();
- }
- }
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- //调用processRequest()函数
- processRequest(request, response);
- }
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>HelloWordServlet</servlet-name>
- <!--所要调用的java类-->
- <servlet-class>HelloWordServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <!--servlet名字-->
- <servlet-name>HelloWordServlet</servlet-name>
- <!--url连接,在这里,我们设置的是“/HelloWordServlet”。这里的Servlet名字必须和上面的<servlet>标签中的<servlet-name>的值一致-->
- <!--当我们的页面中设定的连接和<url-pattern>中设定的值一致时,则会通过<servlet-name>找到对应Servlet类来运行。
- 这里,当页面的连接(a标签或form设定的action)是“/HelloWordServlet”时,则会通过Servlet的名字“HelloWordServlet”
- 来找到对应的Servlet类“HelloWordServlet”来运行-->
- <url-pattern>/HelloWordServlet</url-pattern>
- </servlet-mapping>
- <session-config>
- <session-timeout>
- 30
- </session-timeout>
- </session-config>
- </web-app>
5,总结:
(1)了解什么是Servlet;
(2)了解Servlet框架中的两个java包,及包中的接口和类的应用;
(3)Servlet的生命周期
(4)基本应用
- Servlet教程
- Servlet教程
- Servlet教程
- Servlet教程
- Servlet教程
- servlet教程
- Servlet教程
- Servlet教程
- Servlet教程
- servlet教程
- servlet教程
- Servlet与JSP教程
- Servlet和JSP教程
- 一个Servlet教程 经典
- servlet登陆教程
- Servlet与JSP教程
- Servlet简单教程
- Servlet简明教程
- java.lang.OutOfMemoryError: PermGen space及其解决方法
- webview用法
- iOS绘图之CALayer、遮罩、CAShapeLayer
- 小延迟大吞吐:LMAX架构
- python3-markdown 解析反引号代码块与代码高亮
- servlet教程
- linux下ORACLE数据库中创建新用户
- Markdown操作技巧
- 【SqlServer-函数】
- Linux安装qt creator作为c++ IDE
- okhttp,get,post,put,delete 请求
- Nginx 配置笔记
- JUC源码分析19-队列-PriorityBlockingQueue
- 与rxJava的偶遇