美文网首页
17.8Servlet入门

17.8Servlet入门

作者: 孔垂云 | 来源:发表于2017-05-21 17:25 被阅读0次

一、 什么是Servlet?

Java Servlet 是运行在 Web 服务器或应用服务器上的程序;他是浏览器(HTTP客户端)请求和HTTP服务器上资源(访问数据库)之间的中间层。

二、什么是Servlet的运行环境?

Servlet容器是Java Servlet程序的运行环境,比如,常用的tomcat,同时它也是web服务器;

三、什么是Servlet的生命周期?

Servlet的创建到销毁的过程称为Servlet的生命周期;具体分为三个阶段:

  • Servlet初期化 init()
  • Servlet处理请求 service()
  • Servlet销毁 destroy()

四、创建一个Servlet示例程序

HellowordServlet.java

//@WebServlet(urlPatterns = {"/helloworldServet"})
public class HellowordServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public HellowordServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**初始化方法
     * @see #init(ServletConfig)
     */
    public void init(ServletConfig config) throws ServletException {
        // TODO Auto-generated method stub
        System.out.println("Servlet初期化");
    }

    /**
     * servlet销毁方法
     * @see #destroy()
     */
    public void destroy() {
        // TODO Auto-generated method stub
        System.out.println("Servlet销毁");
    }

    /**
     * get请求
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //2.重新定义doGet
        response.setContentType("text/html;charset=UTF-8");   //3.设置响应类型
        PrintWriter out = response.getWriter();   //4.取得响应输出对象
        String name = request.getParameter("name");   //5.取得请求参数
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println("<HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println("<BODY>");
        out.println("<h1>Hello!" + name + "</h1>");   //6.数据输出到前端
        out.print("This is ");
        out.print(this.getClass());
        out.println(", using the GET method");
        out.println("  </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }


    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

web.xml配置

 <servlet>
        <servlet-name>helloworldServet</servlet-name>
        <servlet-class>com.critc.servlet.HellowordServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>helloworldServet</servlet-name>
        <url-pattern>/helloworldServet</url-pattern>
    </servlet-mapping>

这里面配置一个servlet,指定名称和对应的class,再配置servlet-mapping,指定url映射的类型,这里设置为/helloworldServet,意思就是以http://localhost:8080/helloworldServet开头的请求都会指向这个servlet进行处理。

配置servlet有两种方式,在web3.0之前,一般都是通过配置web.xml来进行配置,就是上面说的这种,在web3.0之后,可以采用注解的方式,比如

@WebServlet(urlPatterns = {"/helloworldServet"})

这个注解写在HelloworldServet.java的定义上。这有一个限制,就是web.xml的最上方定义得是3.0级以上比如:

<?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">

这里面的版本version得是3.0以上

这个工程部署,启动,在浏览器地址栏输入:http://localhost:8080/helloworldServet?name=java
可以看到如下界面:

servlet启动

servlet的get请求,通过获取name参数,并输出字符串的值。

这里只是最简单的介绍了一下servlet的配置和使用,servlet非常强大,目前最流行的SpringMVC的基础也是servlet,所以有必要深入学习一下servlet的主要使用。

源码下载

本例子详细源码

相关文章

网友评论

      本文标题:17.8Servlet入门

      本文链接:https://www.haomeiwen.com/subject/etcvxxtx.html