• 五、Maven-单一架构案例(业务功能:批复奏折,业务功能:登录检查,打包部署)



    第九节 业务功能:批复奏折

    1、本质

    提交表单,更新数据。

    2、WorkServlet 方法

    protected void feedBack(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
        // 获取表单提交的请求参数
        String memorialsId = request.getParameter("memorialsId");
        String feedbackContent = request.getParameter("feedbackContent");
    
        // 执行更新
        memorialsService.updateMemorialsFeedBack(memorialsId, feedbackContent);
    
        // 重定向回显示奏折列表页面
        response.sendRedirect(request.getContextPath() + "/work?method=showMemorialsDigestList");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3、MemorialsService 方法

    @Override
    public void updateMemorialsFeedBack(String memorialsId, String feedbackContent) {
        memorialsDao.updateMemorialsFeedBack(memorialsId, feedbackContent);
    }
    
    • 1
    • 2
    • 3
    • 4

    4、MemorialsDao 方法

    @Override
    public void updateMemorialsFeedBack(String memorialsId, String feedbackContent) {
    
        String feedbackTime = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
    
        String sql = "update t_memorials set memorials_status=2,feedback_content=?,feedback_time=? where memorials_id=?";
        
        update(sql, feedbackContent, feedbackTime, memorialsId);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    第十节 业务功能:登录检查

    1、流程图

    images

    2、创建 LoginFilter

    ①创建 Java 类

    images

    public class LoginFilter implements Filter {
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {}
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            // 1、获取 HttpSession 对象
            HttpServletRequest request = (HttpServletRequest) servletRequest;
    
            HttpSession session = request.getSession();
            
            // 2、尝试从 Session 域获取已登录的对象
            Object loginEmp = session.getAttribute(ImperialCourtConst.LOGIN_EMP_ATTR_NAME);
            
            // 3、判断 loginEmp 是否为空
            if (loginEmp != null) {
                
                // 4、若不为空则说明当前请求已登录,直接放行
                filterChain.doFilter(request, servletResponse);
                
                return ;
            }
            
            // 5、若为空说明尚未登录,则回到登录页面
            request.setAttribute("systemMessage", ImperialCourtConst.ACCESS_DENIED_MESSAGE);
            request.getRequestDispatcher("/").forward(request, servletResponse);
        }
    
        @Override
        public void destroy() {}
    }
    
    • 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

    ②注册

    images

    把 LoginFilter 放在 TransactionFilter 前面声明,原因是:如果登录检查失败不放行,直接跳转到页面,此时将不必执行 TransactionFilter 中的事务操作,可以节约性能。

    <filter>
        <filter-name>loginFilterfilter-name>
        <filter-class>com.atguigu.imperial.court.filter.LoginFilterfilter-class>
    filter>
    <filter-mapping>
        <filter-name>loginFilterfilter-name>
        <url-pattern>/workurl-pattern>
    filter-mapping>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    第十一节 打包部署

    1、适配部署环境

    MySQL 连接信息中,IP 地址部分需要改成 localhost。

    images

    url=jdbc:mysql://localhost:3306/db_imperial_court

    2、跳过测试打包

    mvn clean package -Dmaven.test.skip=true
    可以人为指定最终 war 包名称:

    
    
        
        demo-me
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3、部署执行

    ①上传 war 包

    [略]

    ②启动 Tomcat

    /opt/apache-tomcat-8.5.75/bin/startup.sh
    
    • 1

    ③访问测试

    images

  • 相关阅读:
    k8s基本概念
    美容行业小程序开发有哪些功能?
    CPS305 Lab 5
    Feign的超时时间如何设置,我研究了4种情况
    YOLOv3深度解析【未完待续】
    CSS-vmin&vmax单位
    Leetcode 9.11每日一题 630. 课程表 III
    Vim使用
    kubernetes学习记录之Service
    MySQL的explain详解
  • 原文地址:https://blog.csdn.net/m0_52896752/article/details/126260638