实习第一个小项目的第二部分杂乱记录

更新中:
URLConnection;老大让我看这个东西:
任务1:将写死的user的变量改成可变的
任务2:使用URLconnection对 servlet进行测试修改
本来想的是直接在servlet中加入之前写在测试中的东西,但是发现不行。
好像发现这个网站的知识还行:https://www.jb51.net/article/114523.htm
现在要做的就是:如何通过java(模拟浏览器)来发送http请求
看了好多网站,感觉依然很复杂。
相当于就是写一个客户端,然后让服务器端的servlet来读取客户端中的数据。
好像好像,这个靠谱:https://www.cnblogs.com/FakerWang/p/faker.html

我大概知道意思了,先是在测试中写一个String类型的变量,用来设置你将要进行的数据库操作,然后在通过一系列方法,来让servlet获取到。

按照那个网站把能写的地方都写好了,感觉思路还是正确的,但是在验证的时候,发现servlet部分,还是不能获取到test 中的写的字符串,所以需要再改改。

我发现我写的东西在doset当中,而设置的值是在post,所以准备先试试看,把post改成SET:发现不行,连初始化都不可以了。
所以再试试,把set方法写在POST当中。
感觉还是要了解一下doPOST和doGET的方法和区别呀。。。
现在出现的问题就是,servlet不能获取到测试那边给的值,还要再研究一下

但是无奈的是,鼓捣了多次之后,居然又出现了之前多次出现的一个问题
Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.

好吧,之前的问题已经解决了,就是我改了一个地方。。。
之后在大佬的帮助之下,写好了其中的doget方法测试servlet。
其实也就是直接网上看了这个老大交给我的那个东西是怎么操作的,然后在网上的教程中复制粘贴。。。

看上去很简单,但也是因为他写过很多东西之后有经验了,所以能一眼就看出来什么地方要改,什么地方不需要动。。

之后还有一个问题是,要把那些user的变量进行修改,不能是定死的。
我刚开始准备放弃,直接问老大,但是转念一想,可能老大也就是告诉你一些简单的步骤,之后你还是需要直接修改的。。。
所以我又打算还是自己看一下,
很多东西是网上没有的,所以真的还是需要来自于自己的思考。

很巧的是,我灵机一动,既然method可以通过url get到servlet中,我要不也试试看把这些userid啥的也传进来,
果然是个好主意,哈哈哈
我刚开始一股脑的,在http后面加?=…,但是运行时发现直接就是,method变成了这个。
然后网上去找了一下,才发现,原来在一堆参数之中,除了第一个需要用?=来连接,其他的都是需要&来连接的。

最后算是较为简单和不是特别规范的完成了老大提出的一点要求。

最后叫老大来看了一下,算是大部分通过了,可是老大还是提出了一些小问题,
比如中文乱码
比如讲方法封装。。。

所以我还是要再完善一下。

网上找了new String(request.getParameter(“参数名”).getBytes(“iso-8859-1”), “utf-8”); 这个方法
可是好像还是乱码哦。。。

严重怀疑tomcat有点问题!
因为刚刚我发现乱码问题被解决了,但是tomcat却又弹出一些问题,害的我把那些东西又重新删了。。。
应该这个比较靠谱:https://www.cnblogs.com/zailushang117/p/3661182.html

好好奇哦,既然错了。。。。
那为什么会有个漏网之鱼转码成功了呢。。。

那我就觉得只会有两种情况,1.大小写 2.把gb换成UTF-8
先试试看第一种:不行。。
第二种:也不行
那我就好奇了,这个漏网之鱼是个啥子情况。

刚好可以看看 dopost和doset方法之间的区别
https://blog.csdn.net/qq_38963960/article/details/79468182

开始又一天的工作(混水),今天下午就会学校啦!!!

在老大还没布置任务之前,我还有两个需要完成一下
1,中文乱码问题
2,将方法封装,即传入一个connection的参数就可以进行操作

先解决封装的问题,刚开始想的是,写一个方法,里面带有三个参数,但是发现这些参数之间粘合度有点高,所以还是需要再考虑一下。
然后主要是调整了一下url部分的参数,然后把url也定义成一个参数,加入到新写的方法中,好吧,我突然发现,对于message,也依然还是需要加入到参数中,那就是说,需要有五个参数!。。。无语

然后让test方法继承封装,然后super这个方法,咦。。。有了错误,要去看一下super是咋用的。。。(基础知识,尬住)

很搞笑的是,super是用在构造函数上的,而且super还得写在第一行,所以干脆就放弃了,就写了一个static静态的方法,在父类中,再直接继承之后,调用这个静态方法。
原本想直接运行的,在运行执行,突然想到,数据库还没运行呢,灵机一动,先运行了。
结果还是报错了,原来是tomcat还没开。。。

但是,果然报错了。。。
好像感觉问题出现在url那部分。。。
没错就是那样,但是还有try finally那部分存在异常,主要在于,finally那部分是必须执行的,但是在finally执行的部分是在try部分执行的前提之下,干脆把finally给删除了,还是不靠谱。。。

想了另一个方法,就是直接把所有的,包括try catch什么的,都一并方法新写的方法中。

看到数据库中的东西太多了 ,准备批量删除
select from hq_test where user_id in(…)
可恶的是那几个乱码的居然甚至都删除不了。。。

那就先解决第二个问题吧,1.url处乱码 2.get处乱码
按照网上的一个方法,对数据库连接部分进行了乱码处理
https://www.cnblogs.com/shihaiming/p/6898956.html
嘿嘿嘿嘿嘿
成功了,嘻嘻。就相当于在连接数据库之后再进行一次“结束乱码”操作。

但是我发现现在每执行一次tomcat,就会出现一个: Servlet.service() for servlet [ServletDemo] in context with path [/web-demo] threw exception
java.lang.NullPointerException
这个错误。。。。

虽然不影响最后的结果,但是还是需要再研究一下。
错误指向的是:String method=new String(request.getParameter(“method”).getBytes(“ISO8859-1”),“UTF-8”);
所以试试看改回以前那样。
好了,不报错了,但是又乱码了。。。。。
一脸懵逼,依然乱码。。。。(我都改回去了啊。。。。)

是的,关键点在于,是导入数据库之前就乱码了还是在导入之后才会乱码的,
最简单粗暴的就是,把能改的地方都改正了!

如果使用tomcat作为服务器,那么修改tomcat配置文件conf/server.xml中,在 <Connector port=“8080” protocol=“HTTP/1.1” 中加入 URIEncoding="utf-8"的编码集

更有意思的是,我现在直接变成了 全是问号,因为我在tomcat的 servlet.xml 中 加了useBodyEncodingForURI=“true” URIEncoding="UTF-8"

现在主要 针对于 get 部分有两种操作步骤:
https://blog.csdn.net/ITBigGod/article/details/83750336
1.对接受到的 进行String类型 的转换乱码
2.在tomcat中进行修改

现在是对tomcat进行了修改,目前是可以,就怕之后依然会出错。。。

1.改名字
2.get 和post方法
3.改返回类型
4.参数修改
5.关闭资源时判断是否为null
6.格式化代码

除了第二个其他的都还行,
所以下午的重点是第二个
https://www.cnblogs.com/wujingtaocoding/p/8869821.html

修改好了get部分的内容,重点来看post部分的内容
目前来看,这个好像还行https://blog.csdn.net/zhouhaisunny/article/details/79255378

叫了老大来验证,算是及格了吧

然后又布置了最后的一点尾巴(其实早知道不说了。。。)

1.小语法错误:当输入错误数据库命令的时候,就不用在判断是用POST还是GET了
2.分页(一大难点)
3.改用数据库中的另一个表

应该就是照着给的思路,就是直接在SQL层次进行判断和执行,第一步是判断,调用user继承自Base的方法,通过页码和每页记录数来判断是否需要分页,如果不需要的话,就直接调用查询语句,如果需要的话,就调用分页语句,所以问题的重点还是在于判断是否需要分页吧。。。
(那个小语法)
要么就是在测试之中,再把页数和页码加入到参数之中,用来到时候判断。
好像可以参考一下这个:
https://blog.csdn.net/qq_22260641/article/details/56834166

在看了代码之后,决定弄一个简单的,就是把查询分页和查询全部分开写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值