创建一个servlet

servlet:

  它是web应用程序的核心类,可以直接处理和相应用户请求,又或者将处理工作委托给应用中的其他部分的类。

  让servlet继承HttpServlet的原因是:

    1.HttpServlet继承了javax.servlet.GenericServlet,并实现了只接收Http请求的service()方法。

    2.HttpServlet提供了每种http请求的空实现

    3.当用户以http的方法提交请求时,我们可以在HttpServlet的基础上,根据请求的类型,把处理工作放入重写的相应方法中。假如用户以post的方法提交表单数据,那么可以重写HttpServlet中的doPost()方法,然后编写处理逻辑。

  servlet的生命周期:

    1.初始化状态:调用init()方法

      时间:第一种情况:当servlet构建完成后,并在第一个请求到达之前

         第二种情况:若servlet被设置在web应用部署和启动时自动启动,那么它的init()方法也会被调用;这种设置有两种实现方式,一是在部署描述文件/WEB-INF/web.xml中为该servlet添加一项说明<load-on-startup>level</load-on-startup>,level表示启动顺序的优先级;二是在servlet类中使用注解,在注解中添加一项说明 loadOnStartup = level;

    2.处理请求:调用service()方法,或者根据请求类型分别调用相关的doXXX()

      时间:用户的请求到达

    3.销毁:调用destory()方法

      时间:当servlet不再接收请求后,立即调用;通常发生在web应用被停用或卸载或web容器关闭

例子:创建一个简单的servelt,在用户以get的方式发出请求时,在用户的浏览器中显示“Hello World”

 package cn.example;

 import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class HelloServlet extends HttpServlet{ /*
* 处理Http中的Get请求
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取字符输出流
PrintWriter writer = resp.getWriter();
// 向字符输出流中输入一段文字
writer.write("Hello, world"); } /*
* 初始化方法,当servlet构建完成后,在第一个请求到达之前调用
* 在调用init()时,servlet中的所有属性都已经设置完成,并提供了对ServletConfig和javax.servlet.ServletContext对象的访问
*/
@Override
public void init() throws ServletException {
// 向终端输入一段文字,表示该方法被调用
System.out.println("Servlet " + this.getServletName() + " has started");
} /*
* 销毁方法,当Servlet不再接收请求之后立即调用,这种情况通常发生在Web应用被停止或者卸载,或者web容器关闭。
*/
@Override
public void destroy() {
// 向终端输入一段文字,表示该方法被调用
System.out.println("Servlet " + this.getServletName() + " has stopped");
}
}

编写完servlet后,需要告诉web容器如何部署应用程序中的servlet,有两种方式:

  1.在web.xml中部署

  2.使用注解

在web.xml中部署servlet:

<?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"> <!--
web.xml文件将指示web容器如何部署应用程序
-->
<!-- 应用程序在服务器中显示的名字 -->
<display-name>Hello-World</display-name> <!-- 声明servlet,包括servlet的名字,在哪里可以定位到该servlet -->
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>cn.example.HelloServlet</servlet-class>
</servlet> <!--
该servlet应该对哪些请求URL做出相应
所有访问应用程序相对URL/greeting,URL/salutation,URL/wazzup的请求都可以被helloServlet处理,在这里的请求URL可以有多个
-->
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/greeting</url-pattern>
<url-pattern>/salutation</url-pattern>
<url-pattern>/wazzup</url-pattern>
</servlet-mapping> </web-app>

完成这两项工作之后,就可以运行servlet

上一篇:【总结】关于YUV-RGB格式转换的一些个人理解


下一篇:YUV420、YUV422、RGB24转换