项目运维问题总结

本文详细探讨了在软件开发过程中遇到的八个常见问题,包括JSP预编译文件管理、Struts2配置错误、中文数据提交方式、JavaScript事件处理、AJAX与Response Writer使用、字符串拼接与解析、SQL Server Case When语法应用以及Hibernate命名查询注意事项。通过这些实例分析,旨在帮助开发者避免常见陷阱,提升编程效率。

1、项目更新文件的时候一定要删除服务器对jsp预编译生成的文件目录。(例如在resin下就是:webapps/项目目录/WEB-INF/work)否则可能产生一些很隐蔽的问题,例如,你的JSP页面引用了一个其他类的静态常量,而你修改了这个静态常量的值,项目更新的时候,你更新了常量文件的class文件,没有更新JSP文件。这时候你访问这个JSP页面,得到的常量还是原先的值。因为resin服务器认为这个JSP没有修改,所以不对它进行重新编译,还是使用原来预编译的文件。

 2、Struts2配置result结果类型为redircetAction(早期版本为redirect-action)时,不能加action的后续,否则将接收不到通过URL传递过去的参数。

 3、如果向后台提交的数据有中文,那么最好使用post方式提交表单,否则可能会产生乱码问题。

4、一直以为js的onchange是实时比较输入框的内容而触发的,现在才发现是改变内容,并且失去焦点才触发。

5、response.getWriter().write();方法可以接受String、int等多种类型的参数,但是如果使用AJAX来获取后台传递过来的字符串时,最好使用String类型,如果使用int等其他类型,会导致JS将接受的参数解析为乱码。

6、在页面上用JS拼接字符串时如果使用了"|"(竖线),那么在后台分拆的时候不能简单地split("|");,这样会导致其将每个字符拆分成一个元素,因为"|"在Java的正则表达式里有特殊含义。所以必须转义,使用"\\|"即可。

7、SQL SERVER 中的Case when 判断,当前边的When中的条件为“真”时,就不会进行下边的When的判断了。

例如:

select case when 1 = 1 then 1
                      when 2 = 2 then 2
             end

这个语句返回的是1,

而这个语句:

select case when 2 = 2 then 2
                      when 1 = 1 then 1
             end

则返回2。

因为Case When的顺序可能对查询结果产生很大的影响,在写SQL时要特别注意。

 

8、当使用Hibernate的命名查询,直接使用原生SQL来查询的话,一定要保证每一个列都有一个唯一的名称或别名。如:

     select id, isnull(num, 0), isnull(price, 0) from 表名

    这里有两项是没有名称的,那么Hibernate在执行的时候能找到"num" 列的值,但是找不到name字段的值,例如id = 1,  num = 10,  price = 100,那么使用Hibernate查询的结果将是 1      10        10

如果是:select id, isnull(num, 0) as num, isnull(price, 0) as price from 表名   则查询结果将是正确的:1    10    100

如果所有项都没有名称,那么查询就可能会报错了。

 

(将工作中遇到的问题总结下来,以备查看。未完待续。)

### 运维年度总结撰写指南 撰写运维年度总结是回顾全年工作成果、发现不足并规划未来的重要环节。以下从结构内容两方面提供详细指导[^1]。 #### 一、总结结构 1. **标题** 明确总结的主题,例如“2023年度运维工作总结”。 2. **前言** 简要概述本年度的主要任务目标及达成情况。可以提及团队规模、支持的业务范围等背景信息[^2]。 3. **正文** - **关键指标完成情况** 列举核心运维指标(如系统可用性、响应时间、故障恢复时间等)及其达成情况。结合数据展示成果,例如“全年系统可用率达到99.95%,超出年初设定目标0.05%”[^3]。 - **主要项目与任务** 回顾本年度完成的重要项目或任务,包括但不限于: - 新技术引入(如容器化、微服务改造等)。 - 高可用架构优化(参考MySQL集群读写分离方案[^5])。 - 数据治理与存储优化(如选择最优数据格式以减少磁盘使用量[^3])。 - **问题与改进** 分析本年度遇到的主要问题及解决措施。例如,某次重大故障的原因分析及后续改进措施[^4]。 - **团队建设与发展** 概述团队成员的成长、培训计划执行情况以及团队协作效率提升的举措。如果涉及智能运维工具开发或应用(如语料管理系统、模型训练中心[^2]),可重点描述其价值。 4. **展望** 提出下一年度的工作计划与目标。例如,计划引入新的负载均衡策略(如自定义Ribbon算法[^1])或进一步优化Etcd在Kubernetes中的配置[^4]。 #### 二、示例模板 以下是运维年度总结的示例框架: ```markdown # 2023年度运维工作总结 ## 前言 2023年,运维团队围绕公司业务发展需求,持续优化基础设施,提升服务质量。全年共支持X个业务线,处理Y次紧急事件,确保了系统的稳定运行。 ## 正文 ### 1. 关键指标完成情况 - 系统可用性:99.95% - 平均故障恢复时间(MTTR):15分钟 - 日志处理能力:每日处理Z TB日志数据 ### 2. 主要项目与任务 - **容器化改造**:完成了A业务线的容器化迁移,资源利用率提升30%。 - **高可用优化**:实施了MySQL集群读写分离方案[^5],实现故障切换时间小于30秒。 - **数据治理**:通过调整字段类型为整数或scaled_float[^3],节省了20%的存储空间。 ### 3. 问题与改进 - **问题**:某次大规模宕机事件暴露出监控覆盖不足的问题。 - **改进措施**:引入了智能运维平台,实现了告警自动化处理,减少了人工干预。 ### 4. 团队建设与发展 - 组织了多次技术分享会,覆盖了负载均衡算法、Kubernetes服务类型等内容。 - 开展了专项技能培训,提升了团队整体技术水平。 ## 展望 2024年,我们将继续深化智能化运维实践,计划引入更多自动化工具,并探索多云管理方案。 ``` #### 三、最佳实践 1. **数据驱动**:尽可能用具体数据支撑总结内容,增强说服力。 2. **突出亮点**:聚焦于对业务有重大影响的项目或任务。 3. **简洁明了**:避免冗长叙述,突出重点。 4. **视觉辅助**:可以加入图表或图形化展示,使总结更直观。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值