zoukankan      html  css  js  c++  java
  • 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-INFlib中;注意各自的模块都有各自的配置文件,这个配置文件的名称为  web-fragment.xml ;(注意:配置文件的名必须是这个)

    制作一个Servlet模块的步骤:

    1.编写Servlet,并编译;

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

    打jar包过程:以Eclipse开发工具为例:选中要打包的工程名鼠标点击右键->Export->Export..->java->JAR file->点击右下角的next->选择的具体文件如下图:

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

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

    4.将此jar包放入WEB-INFlib中即可;

    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就制作完成了。



  • 相关阅读:
    machine learning(11) -- classification: advanced optimization 去求cost function最小值的方法
    machine learning(10) -- classification:logistic regression cost function 和 使用 gradient descent to minimize cost function
    machine learning(9) -- classification:Decision boundary
    machine learning(8) -- classification
    day 23 对象的名称空间 类,对象属性和方法 封装 接口提供
    day 22 面向对象 类与对象 名称空间操作
    day 21 内存管理,正则
    day 14 三元运算符,列表字典推导式,递归,匿名函数,内置函数(排序,映射,过滤,合并)
    day 17 项目开发常用模块
    前端之jQuery
  • 原文地址:https://www.cnblogs.com/liuyanmin/p/5146559.html
Copyright © 2011-2022 走看看