JSP+MySQL 五天开发经验小结(文末有源码)

8 篇文章 0 订阅
3 篇文章 0 订阅

开篇


1.背景介绍

10月10号左右吧,接了一个留学生作业的单子,JSP+MySQL ,开发出来一个图片展示的网站Demo,服务器采用Apache(Tomcat),前几天比较浪,打游戏,看电影,睡觉依旧,就是不看这个开发任务,,,,,稍微理解有些程序员为什么搞到DeadLine之前再开始干活了。我在ASP.NET环境中开发经验是有的,JSP嘛,,,我发四,这是第一次正面接触,还好,与ASP区别不大,都是在HTML页面中嵌入Java程序段,都是在服务器中完成编译运行的,上手还是很快的。我对于JSP和ASP的态度是:在前端页面用一点那叫“画龙点睛”,用多了一定会造成高耦合。中型项目就得分出来母版页与模板,拒绝重复写代码,后面修改时也方便。。。不过吧,这次的是作业,我就采用了纯JSP,反正不用考虑后期扩展性,缺点是重复性代码很多,错了一处,很多地方要一起改动(不怕,查找替换就行了)。
1.报错信息及解决办法

这里应该划出来一张表格,简洁易读。
1.MySQL 远程校验的时间区域校验问题
Caused by: java.sql.SQLException: The server time zone value ‘XXXXXXXXX’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

解决方案:String url=“jdbc:mysql://127.0.0.1:3306/gallery?serverTimezone=UTC&characterEncoding=utf-8”;时区编码问题,加上:serverTimezone=UTC&characterEncoding=utf-8就可以了,之前用的MySQL Connector jar包是5.x版本的,,,竟然不支持这种数据库连接,后来更换为最新版的MySQL Connector,就可以了。

2.SQL语句的拼接编码问题,java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '

解决方案:String sql = “SELECT * FROM image WHERE gallery_id=’ " + galleryId+”’"; 展示一下最长的字符串SQL拼接吧: String sqlDetail = “Insert into detail(image_id,year,type,width,height,location,description)values(’” + imageId + “’,’” + year +"’,’"+ types +"’,’"+ width + “’,’” +height+ “’,’” + location+ “’,’”+description +"’)"; 其中,imageId,year,types这些是嵌入在JSP代码块中的String类型变量。当时大神说,应该搞一个参数化查询,可以降低注入漏洞攻击的风险,可是这里合适吗?

3.sql.SQLException: Before start of result set
解决方案:使用rs.getString()之前一定要先 rs.next() 判断。
这个是 服务器的好习惯,JSP语法是要求你先判断ResultSet 中是成功取到了数据,难道是服务器变懒了?如果rs是null,后面的rs.getString();好像会让服务器迷茫,干脆请你先判断一下,如果是空数据集,后面的代码快直接跳过就行。

4.Operation not allowed after ResultSet closed
解决方案:当 rs.next() 为false时,con可能会关闭,所以statement与Result一一对应最好,不知道怎么做?再声明一个Statement变量,创建一个新ResultSet存储本次数据集。

5.Connection cannot be resolved to a type
解决办法:JSP文件头部忘记引入类库文件了所以一些类库引用不到。就是这些:
<%@ page language=“java” contentType=“text/html; charset=utf-8” pageEncoding=“utf-8”%>
<%@ page language=“java” import=“java.sql.,java.io.,java.util.*”%>

个人经验总结
首先,写代码要边写边测。这一次接单,一口气写出来七八个jsp页面,结果,,,都报错了,后面的页面用了前面页面代码,前面的错了,后面的也要跟着一起改动,这太可怕了。所以,以后要写一部分测一部分,保证基础代码没问题。第二是,做笔记。本次代码报错很多,前期忘记记录了,本博客中只是记录了大概一半的错误类型及其解决办法。第三,善用百度和技术群。我的多数错误都是通过报错信息,百度,技术群找到解决办法的,很多时候别人也犯过相同的错误,他人一句指点,马上柳暗花明。 最近在校招,参加了五场左右的面试,目前有两家比较好,其一是乐歌办公的信息技术部,其二是金田铜业的信息技术部,金田的昨天结束四面,期待一份工作中。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坏码农来福

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值