关于对Servlet学习(一)

        servlet是运行在服务器上的一个小程序,用来处理服务器请求的。通常浏览器发送访问请求,服务器接收请求,并对浏览器的请求作出相应的处理,而servlet就是对请求作出处理的组件。

简单过程

1、当发送http://localhost:8080/hello 并发起 HTTP GET请求时,Tomcat 接收到请求,并根据配置的 URL 模式(通常在 web.xml 文件或通过注解定义)来确定请求应该被哪个 Servlet 处理。如下:

<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
      <servlet-name>HelloServlet</servlet-name>
      <url-pattern>/hello</url-pattern>
</servlet-mapping>

所以/hello对应HelloServlet,因此需要一个HelloServlet实列化类。

2、定义HelloServlet并继承HttpServlet,重写doget方法(发送的是get请求),使用 PrintWriterServletOutputStream 将响应内容写入 HTTP 响应对象。

public class HelloServlet extends HttpServlet{
    public void doGet(HttpServletRequest request, HttpServletResponse response){
  response.getWriter().println("<h1>Hello Servlet</h1>");
  response.getWriter().println(new Date().toLocaleString());
    }   
}

        上述的response.getWriter()对象就是PrintWriter,PrintWriter 对象本身并不直接发送数据给客户端,当你使用 PrintWriter 对象调用 printprintln 或其他输出方法时,数据实际上是被写入到 Servlet 响应的输出流中的。 ​

        数据首先被写入 Servlet 容器的内部缓冲区,暂存输出数据,接着可能需要设置必要的HTTP响应头,最后使用 flush() 方法,或者啥也不干也会自动发送出去。

补充:get与post

        get :是form默认的提交方式 如果通过一个超链访问某个地址,是get方式 如果在地址栏直接输入某个地址,是get方式 提交数据会在浏览器显示出来 不可以用于提交二进制数据,比如上传文件。

         post 必须在form上通过 method="post" 显示指定 提交数据不会在浏览器显示出来 可以用于提交二进制数据,比如上传文件。

关于生命周期(了解看看)-------Servlet是个接口

  1. 加载Servlet。当Tomcat第一次访问Servlet的时候,Tomcat会负责创建Servlet的实例

  2. 初始化。当Servlet被实例化后,Tomcat会调用init()方法初始化这个对象

  3. 处理服务。当浏览器访问Servlet的时候,Servlet 会调用service()方法处理请求

  4. 销毁。当Tomcat关闭时或者检测到Servlet要从Tomcat删除的时候会自动调用destroy()方法,让该实例释放掉所占的资源。一个Servlet如果长时间不被使用的话,也会被Tomcat自动销毁

  5. 卸载。当Servlet调用完destroy()方法后,等待垃圾回收。如果有需要再次使用这个Servlet,会重新调用init()方法进行初始化操作

由于是接口,需要重写5个方法 init【初始化】

destroy【销毁】

service【服务】

ServletConfig【Servlet配置】

getServletInfo【Servlet信息】

 

继承HttpServlet编写Servlet程序

重写doGet()和doPost()方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值