首页 > 其他分享 >电子公文传输系统----个人贡献

电子公文传输系统----个人贡献

时间:2023-12-15 21:56:01浏览次数:25  
标签:公文 java moehu 接口 ---- 传输 json new public

506ilou团队的电子公文传输系统----个人贡献

目录


课程:《Unix/Linux系统编程》
班级:2111
姓名:刘海涛
学号:20211111
教师:娄嘉鹏
实验日期:2023年12月15日

在506ilou团队中的个人贡献

一. 简述我完成的工作

1.实验前期构建用户场景,并完成需求分析

   团队作业(二)——需求分析(cnblogs.com/506506yyds/p/17795891.html)

2.参与修改完善需求规格说明书

需求规格说明书
  https://github.com/qiyulin2003/506ilou/blob/main/需求规格说明书.pdf
  

3.在确定分工、描述设计阶段

进行项目的后端架构设计:

  • 要与需求规格说明书中的界面原型设计相对应。

     确定团队分工:
    
  • 利用象限法确定各个核心需求的优先级,依据需求优先级确定团队Alpha 版本需要实现的功能,在博客中叙述并给出相应的WBS图。

团队作业(三):确定分工
团队作业(四)描述设计

4.在实验过程中完成后端模块化功能的实现

后端开发即“服务器端”开发,主要涉及软件系统“后端”的东西。比如,用于托管网站和 App 数据的服务器、放置在后端服务器与浏览器及 App 之间的中间件,它们都属于后端。简单地说,那些你在屏幕上看不到但又被用来为前端提供支持的东西就是后端。

网站的后端涉及搭建服务器、保存和获取数据,以及用于连接前端的接口。如果说前端开发者关心的是网站外观,那么后端开发者关心的是如何通过代码、API 和数据库集成来提升网站的速度、性能和响应性。

(1)前端通过接口调用后台返回的数据

jsp页面向服务器发起了一个ajax请求,请求的地址是"servlet/JJJJ",请求成功后执行回调函数,这个data就是这个url返回的数据,一般是一个json格式的字符串,它的根本还是一个字符串。所以前端拿到这个字符串之后,要将它转化为json(数组)对象,然后访问这个对象的键/值,从而进行页面数据渲染

<head> <title>test page</title> </head> <body>
this is my jsp

<br>

<div id="json"></div>
</body>

(2)后台接口

//JJJJ.java

public void doGet(HttpServletRequest request, HttpServletResponse response)

        throws ServletException, IOException {

    request.setCharacterEncoding("UTF-8");

    response.setCharacterEncoding("UTF-8");

    response.setHeader("contentType", "text/html; charset=utf-8");

    PrintWriter out = response.getWriter(); 

    String jsonstr = "[{\"name\": \"eco\", \"age\": \"21\"}]";

    out.print(jsonstr);

    out.flush();

    out.close();

}

servlet,定义了一个json格式的字符串jsonstr,前端对这个servlet发起http请求后,它就返回给前端一个json字符串。这个手写的json字符串,注意了里面的冒号要用转义字符“\”。

3.后台servlet内数据转换

//java对象转化为json字符串

User user = new User("", ""); //java对象

JSONObject json = JSONObject.fromObject(user); //转为json对象

String jsonstr = json.toString(); //转为json字符串

//java对象列表转化为json字符串

User user1 = new User("", "");

User user2 = new User("", "");

List list = new ArrayList(); //数组列表,并添加两个user对象

list.add(user1);

list.add(user2);

JSONArray array = JSONArray.fromObject(list); //java对象列表转化为json对象数组

String jsonstr = array.toString(); //json对象数组转化为json字符串

(一)在网上检索资料
现在网上有许多java-web工程的框架,我们可以在此基础上实现电子公文传输的相关功能,这样会比较好上手一些。所以首先是要搜集资料,在自己的idea里面进行调通。
另外我们借鉴别人的项目,最基本的还是要对整个项目体系有清晰的认识:

哪些是前端,哪些是后端?怎么分工?首先就要理清各个项目文件夹的作用。

(二)学习java接口
什么是接口?

一个Java 接口(interface)是一些方法特征的集合,这些方法特征来自于具体方法,这些方法符合它们一般来自于一些在系统中不断出现的方法。一个接口只有方法的特征,而没有方法的实现,因此这些方法在不同的地方被实现时,可以具有完全不同的行为。在Java语言中,Java接口还可以定义public的变量。

接口把方法的特征和方法的实现分割开来。这种分割,体现在接口常常代表一个角色(role),它包装与该角色相关的操作和属性,而实现这个接口的类便扮演这个角色的演员(类)。一个角色(接口)可以由不同的演员(类)来演,而不同的演员(类)之间除了扮演一个共同的角色(接口)之外,并不要求有任何其他的共同之处。

接口的用法

定义与实现

public interface Test{
public static final int num; //成员常量具有固定的修饰符:public static final
public abstract void method; //成员函数具有固定的修饰符:public abstract
}

public class Testimpl implements Test{
// 实现接口中的所有方法
.....
}
接口的特性

接口不是类,尤其不用使用new运算符实例一个接口。
不能构造接口的对象,却能声明接口的变量。(出现在回调设计模式中,体现了Java的多态特性)

/*
*功能:到达指定的时间发出通告
*/
public interface ActionListener{
void actionPerformed(ActionEvent event);
}

class TimePrinter implements ActionListener{
//此处ActionEvent参数提供了事件的相关信息
public void actionPerformed(ActionEvent event){
Date now = new Data();
System.out.println("At the tone, the time is" + now);
Toolkit.getDefaultToolkit().beep();
}
}
//然后构造这个类的一个对象,并将它传递给Timer构造器。
ActionListener listener = new TimePrinter();
Timer t = new Timer(10000, listener);
接口中不能包含实例域或静态方法。
接口与接口之间可以是继承关系,而且可以实现多继承。

public interface Moveable{
void move(double x, double y);
}

public interface Powered extends Moveable{
double milesPerGallon();
}
对于自己在学习接口时所存在的疑惑
接口为何不能用继承代替呢?

回答:

Java中不支持多继承,也就是不能存在一个子类继承多个父类的情况,当然你会问这是为什么呢.因为这会造成子类中某些方法或者变量的不确定性。

为了弥补1中采用单继承所带来的不足,Java出现了接口这个概念,接口可以很好的避免这个问题的出现。

Java中通过多实现接口的方式去解决类之间无法多继承的问题。

(三)促进组内学习,解决其它同学所遇到的问题
首先大家需要在自己的电脑上调通代码,并且为了不出现兼容性问题,大家要统一jdk、tomcat等的版本。同时我积极解决大家的问题,比如一些关于idea调试和设置的问题:

二. 我们小组总共的代码行数,我贡献的代码行数,相关代码链接

个人贡献代码数为320行左右,以下为项目代码。

其中,我编写了src文件夹下main/java/com/moehu/back/interceptor里AuthenticationInterceptor.java、GlobalExceptionError.java和src/main/java/com/moehu/back/dao文件里的代码。

https://github.com/qiyulin2003/506ilou/tree/main/moehu-backend/moehu-backend/src/main/java/com/moehu/back/dao

https://github.com/qiyulin2003/506ilou/tree/main/moehu-backend/moehu-backend/src/main/java/com/moehu/back/interceptor

三. 我们小组总共的文档数,我贡献的文档数,相关链接

小组总共文档数:13
贡献的文档数:2
文档链接:
项目冲刺D5
项目冲刺D7

希望本篇博客对您了解电子公文系统有所帮助,并在实际使用中发挥作用。如果你对这个主题有更多的兴趣,可以进一步深入学习相关的文档和资料。
以上为个人对电子公文系统的贡献。

参考资料:

标签:公文,java,moehu,接口,----,传输,json,new,public
From: https://www.cnblogs.com/hongfenglou/p/17904233.html

相关文章

  • ATM坤坤机装饰器版
    【一】需求#ATM:提款姬#defsave_data(file_path,)#user_pwd_dict={}#文本:dream-521#dream,521#user_info.txt:每一个人的信息就是一行#dream_flow.txt:#print(time.localtime())#注册:存储到文件中用户名-登录密码-年龄-银行卡号(1314)-......
  • 2023.12.15——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.c#明日计划:学习......
  • 记一次外网突破的案例
     1、供应链在经历了多年的攻防对抗之后,大量目标单位逐渐认识到安全防护的重要性。因此,他们已采取措施尽可能收敛资产暴露面,并加倍部署各种安全设备。但安全防护注重全面性,具有明显的短板效应,一处出现短板,整个防护体系就可能瞬间崩溃。而目标单位的供应链往往是这些薄弱点的集中......
  • c++: 迭代器失效
    一、序列式容器序列式容器(如vector,deque)的迭代器删除正确的做法如下:1//在这里想把等于2的元素都删除2for(autoit=q.begin();it!=q.end();)3{4if(*it==2)5{6it=q.erase(it);//这里会返回指向下一个元素的迭代器,因此不需要再自加了7......
  • 【Linux】调试常见的应用程序奔溃“Segmentation fault (core dumped)”
    https://blog.csdn.net/hello_nofail/article/details/129994481?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170264661316800227454508%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=170264661316800227454508&......
  • 12.15
    最后20分钟写个闲话今天没啥,调一道题调了一晚上......
  • 第六章 二叉树part01
    第六章二叉树**part01**  递归遍历 144.二叉树的前序遍历 Code:/***Definitionforabinarytreenode.*structTreeNode{*  intval;*  TreeNode*left;*  TreeNode*right;*  TreeNode():val(0),left(nullptr),right(nullpt......
  • 05-定时器
    05-定时器背景资料51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。前面介绍的独立按键、led灯都属于外设。定时器的作用用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作替代长时间的Delay,提高CPU的运行效率和处理速度...S......
  • 【Power Shell】启动时自动配置http代理
    背景有时候我们经常需要在WindowsTerminal,powershell内使用http代理来拉去GitHub代码、软件包等等,每次都需要手动配置很麻烦。其实我们可以使用.ps1脚本来启动。https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_scripts?view=pow......
  • 题解 CF1887E【Good Colorings】
    萌萌交互题。对网格图进行二分图建模,左部\(n\)个点表示每一行,右部\(n\)个点表示每一列。若格子\((i,j)\)被染成\(c\)色,就连接\((L_i,R_j,c)\)的边。由抽屉原理易证,在初始局面中至少有一个各边颜色均不同的偶环。获胜条件相当于存在一个各边颜色均不同的四元环。讨论......