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

发布时间 2023-12-15 21:50:58作者: 20211111刘海涛

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

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

参考资料: