• Java构建Web项目


    对无底线服务型的系统,业务代码和界面代码脚本化是及其重要的。一是脚本化能确保部署本地就是再用的代码,不存在为每个项目管理代码的问题。然后脚本化不需要人为编译和投放程序库。极大的简化维护难度和成本。能不能脚本化直接决定了能否全面铺开运维,和运维的成本。本次测试实现一套业务脚本化的Java的WEB结构。

    脚本化的实现点就在下图统一路由入口,基于前几篇的反射调用jar包,反射实现接口多态,根据请求路径后面部分动态反射得到接口实现类执行后台。
    在这里插入图片描述

    1.创建一个普通项目
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.将这个项目转换为jsp项目

    在这里插入图片描述

    在这里插入图片描述

    目录变成这样
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    设置好了颜色会变
    在这里插入图片描述

    设置jar包存放地址
    在这里插入图片描述

    3.设置tomcat服务器
    先到网上下载tomcat下载地址
    和ideal放一起方便找
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    刚才配的是模板,再按模板添加启动项
    在这里插入图片描述
    选tomcat后ok
    在这里插入图片描述

    这样项目就配完了
    在这里插入图片描述

    4.在src下右键创建Servlet文件
    在这里插入图片描述

    代码

    import java.io.*;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import java.util.Map;
    
    
    @javax.servlet.annotation.WebServlet(name = "Index")
    public class Index extends javax.servlet.http.HttpServlet {
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html");
            request.setCharacterEncoding("UTF-8");
            // 测试字符流输出中文
            //将数据以utf-8的方式编码后发出去,tomcat默认的也是以utf-8的方式发出,所以下面方法里面的utf-8省略也行
            response.setCharacterEncoding("UTF-8");
            //指定浏览器用什么编码解析服务器发出的数据
            response.setHeader("Content-Type", "text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            out.println("\n");
            out.println("");
            out.println("  首页");
            out.println("  ");
            out.print("这是zlz在servlet输出的串");
            out.print("
    后台类名:"
    +this.getClass()); out.print("
    请求路径:"
    +request.getRequestURI()); out.print("
    通过上面路径动态反射执行请求,通过监控代码文件变化动态编译业务java的jar包供反射使用"
    ); out.println(" "); out.println(""); out.flush(); out.close(); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); request.setCharacterEncoding("UTF-8"); //将数据以utf-8的方式编码后发出去,tomcat默认的也是以utf-8的方式发出,所以下面方法里面的utf-8省略也行 response.setCharacterEncoding("UTF-8"); //指定浏览器用什么编码解析服务器发出的数据 response.setHeader("Content-Type", "text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("\n"); out.println(""); out.println(" 首页"); out.println(" "); out.print("这是zlz在servlet输出的串"); out.print("
    后台类名:"
    +this.getClass()); out.print("
    请求路径:"
    +request.getRequestURI()); out.print("
    通过上面路径动态反射执行请求,通过监控代码文件变化动态编译业务java的jar包供反射使用"
    ); out.println(" "); out.println(""); out.flush(); out.close(); } }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

    同时可以在WEB-INF下添加一个jsp文件试
    在这里插入图片描述

    同时可以投入一些现成的纯前端界面,前后端分离主要用这种

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <servlet>
            <servlet-name>JspWeb</servlet-name>
            <servlet-class>Index</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>JspWeb</servlet-name>
            <url-pattern>/Index/*
        
        
            aspx
            text/html
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    这样所有以Index开头的路由就会转发到Index的servlet里面,servlet再按后面路径反射实现jar包提供服务,实现jar包再用监控文件变化用cmd编译。

    然后编译输出
    在这里插入图片描述

    输出完了运行
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    测试
    在这里插入图片描述

    servlet和Index路由
    在这里插入图片描述

    常规纯前端界面
    在这里插入图片描述

    前端用JS调用统一开头的servlet路由,统一servlet类负责按URL反射执行jar包,负责检查代码是否比jar包新执行编译,一套业务脚本化的WEB框架雏形试验完成

  • 相关阅读:
    洛谷 P4408 [NOI2003] 逃学的小孩(树的直径)
    uni-app问题记录
    操作系统:中断和异常
    Apipost一大波新功能来袭!连接数据库、TCP协议、MySQL DDL数据导入
    git服务器宕机后,怎么用本地仓库重新建立gitlab服务器(包括所有历史版本)
    CH08_搬迁特性
    前 3 名突然变了,揭秘 7 月编程语言最新排行榜
    PMP 11.27 考试倒计时12天!冲刺啦!
    git基本概念和原理:工作区--暂存库--本地仓库--远端git仓库之间的交互
    [WesternCTF2018]shrine SSTI 绕过黑名单
  • 原文地址:https://blog.csdn.net/zhanglianzhu_91/article/details/133911340