资料
  • 资料
  • 专题
[完结9章]操作系统入门与实践-参透技术本质
推荐星级:
类别: 软件/EDA/IP
时间:2024-01-09
大小:2.77KB
阅读数:683
上传用户:学习菜鸟小弟弟
查看他发布的资源
下载次数
33
所需E币
0
ebi
新用户注册即送 300 E币
更多E币赚取方法,请查看
close
资料介绍
在现如今的信息化时代,相信各位读者对于“操作系统”这四个字并不陌生。例如我们常常使用的Windows、安卓、IOS、MacOS以及Linux等,都属于操作系统。操作系统,是现如今信息化时代中不可或缺的一种软件。

Linux操作系统是一种开源的、基于Unix的操作系统。它最初由芬兰计算机科学家Linus Torvalds在1991年开发,并得到了全球范围内广泛的应用和支持。

Linux操作系统具有稳定性、安全性、可靠性和灵活性等特点,广泛应用于服务器领域,也被许多个人用户选择作为他们的主要操作系统。Linux提供了丰富的命令行工具和图形界面,支持各种编程语言和软件开发环境,是一个非常强大而且自由开放的操作系统。

操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合,操作系统是计算机系统中最基本的系统软件。

操作系统(Operating System,OS):是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。操作系统需要处理管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

下面我们进行代码实战,让大家更深入的理解操作系统的本质:
<div class="site-content__wrapper">
    <main class="site-content"
        :class="{ 'site-content--tabs': $route.meta.isTab }">
        <el-tabs v-if="$route.meta.isTab"
            v-model="siteContent.mainTabsActiveName" :closable="true"
            @tab-click="selectedTabHandle"
            @tab-remove="removeTabHandle">
            <el-tab-pane v-for="item in siteContent.mainTabs"
                :label="item.title" :name="item.name">
                <el-card :body-style="siteContent.siteContentViewHeight">
                    <router-view :key="router.currentRoute.value.query.random" />
                </el-card>
            </el-tab-pane>
        </el-tabs>
        <el-card v-else :body-style="siteContent.siteContentViewHeight">
            <router-view :key="router.currentRoute.value.query.random" />
        </el-card>
    </main>
</div>
在框架页面的模型层中,定义removeTabHandle()封装函数。
function removeTabHandle(tabName) {
    //让mainTabs数组剔除要关闭的Tab
    siteContent.mainTabs = siteContent.mainTabs.filter(item => item.name !== tabName);
    //如果还存在剩余的Tab,就切换到最后的Tab上面
    if (siteContent.mainTabs.length >= 1) {
        //获取mainTabs数组最后一个元素
        let tab = siteContent.mainTabs[siteContent.mainTabs.length - 1];
        //选中这个Tab控件
        siteContent.mainTabsActiveName = tab.name;
        //内容区切换引用的页面
        router.push({ name: tab.name });
    } else {
        siteContent.mainTabsActiveName = '';
        router.push({ name: 'MisHome' });
    }
}
这个注解会拦截Web方法的请求,让SaToken验证客户端提交的Token令牌。如果令牌合法就允许调用Web方法,反之就拒绝HTTP请求,返回401状态码。
@RestController
@RequestMapping("/mis/user")
public class UserController {
    ……
    
    @GetMapping("/searchUserSummary")
    @SaCheckLogin
    public R searchUserSummary() {
        ……
    }
}
在user.vue页面中,添加<el-dialog>标签,它可以实现弹窗的效果。
<select id="searchUsernameById" parameterType="int" resultType="String">
    SELECT username
    FROM tb_user
    WHERE id = #{userId}
</select>

<update id="updatePassword" parameterType="Map">
    UPDATE tb_user
    SET password = #{newPassword}
    WHERE id = #{userId}
      AND password = #{password}
</update>
在com.example.his.api.mis.service.impl包UserServiceImpl.java类中,实现抽象方法。
@Service
public class UserServiceImpl implements UserService {
    ……
    @Override
    public int updatePassword(Map param) {
        int userId = MapUtil.getInt(param, "userId");
        String username = userDao.searchUsernameById(userId);

        MD5 md5 = MD5.create();
        String password = MapUtil.getStr(param, "password");
        String temp = md5.digestHex(username);
        String tempStart = StrUtil.subWithLength(temp, 0, 6);
        String tempEnd = StrUtil.subSuf(temp, temp.length() - 3);
        password = md5.digestHex(tempStart + password + tempEnd).toUpperCase();
        param.replace("password", password);

        String newPassword = MapUtil.getStr(param, "newPassword");
        newPassword = md5.digestHex(tempStart + newPassword + tempEnd).toUpperCase();
        param.replace("newPassword", newPassword);

        int rows = userDao.updatePassword(param);
        return rows;
    }
}
在com.example.his.api.mis.controller包UserController.java类中,声明Web方法。
@RestController
@RequestMapping("/mis/user")
public class UserController {
    ……
    @PostMapping("/updatePassword")
    @SaCheckLogin
    public R updatePassword(@Valid @RequestBody UpdatePasswordForm form) {
        int userId = StpUtil.getLoginIdAsInt();
        HashMap param = new HashMap() {{
            put("userId", userId);
            put("password", form.getPassword());
            put("newPassword", form.getNewPassword());
        }};
        int rows = userService.updatePassword(param);
        return R.ok().put("rows", rows);
    }
}

版权说明:本资料由用户提供并上传,仅用于学习交流;若内容存在侵权,请进行举报,或 联系我们 删除。
PARTNER CONTENT
相关评论 (下载后评价送E币 我要评论)
  • baotong 2024-03-08
    很好的资料
  • 2024-01-27
    真好,竟然免费
  • 2024-01-27
    真好,竟然免费
加载更多评论
  • 可能感兴趣
  • 关注本资料的网友还下载了
  • 技术白皮书