web Servlet 3.0 新特性之web模块化编程,web-fragment.xml编写及打jar包

时间:2023-03-08 17:22:01
web Servlet 3.0 新特性之web模块化编程,web-fragment.xml编写及打jar包

web Servlet 3.0 模块化

原本一个web应用的任何配置都需要在web.xml中进行,因此会使得web.xml变得很混乱,而且灵活性差,因此Servlet 3.0可以将每个Servlet、Filter、Listener打成jar包,然后放在WEB-INF\lib中;注意各自的模块都有各自的配置文件,这个配置文件的名称为  web-fragment.xml ;(注意:配置文件的名必须是这个)

制作一个Servlet模块的步骤:

1.编写Servlet,并编译;

2.将此编译class文件及所在包通过jar包命令打成jar包;

打jar包过程:以Eclipse开发工具为例:选中要打包的工程名鼠标点击右键->Export->Export..->java->JAR file->点击右下角的next->选择的具体文件如下图:web Servlet 3.0 新特性之web模块化编程,web-fragment.xml编写及打jar包

3.将此jar包用winrar打开,并将其中的META-INF中的manifest删除并添加 web-fragment.xml;

注:最后打包完成后jar里只有装.class文件的包和MATE-INF

4.将此jar包放入WEB-INF\lib中即可;

web-fragment.xml注意点:

1.根元素为<web-fragment>;

2.<name></name>表示模块名称;

3.<ordering></ordering>是此模块的加载顺序;

4.<before><others/></before>表示第一个加载;

5.<after><name>A</name></after>表示比A后面加载;

6.可以在里面部署listener、filter、servlet

当然可以不设置任何的模块加载顺序;

代码示例:

jar包里class文件的源代码:

package com.lym.servlet;



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("/OwnServlet")

public class OwnServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

       

    public OwnServlet() {

        super();

    }



    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        doPost(request, response);

    }



    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html;charset=utf-8");

        

        PrintWriter out = response.getWriter();

        out.print("servlet 3.0 新特性-模块化编程");

    }



}



web-fragment.xml文件:

<?xml version="1.0" encoding="UTF-8"?>

<web-fragment 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-fragment_3_0.xsd" version="3.0">

    <name>Own</name>

       <!--

       <listener>

              <listener-class>org.listener.FirstListener</listener-class>

       </listener>

       <ordering>

              <before>

                    <others/>

              </before>

       </ordering>

       -->

</web-fragment>

这样模块化Servlet就制作完成了。