JAVA编程403、404、503错误,都可能是由啥原因产生的?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA编程403、404、503错误,都可能是由啥原因产生的?相关的知识,希望对你有一定的参考价值。
参考技术A403 时访问被拒绝,原因是你没有权限去访问这些内容;
404 请求路径不存在。
4开头的错误都是客户端错误。
5开头的多是服务器端引起的错误,503最可能的原因是没开服务器、服务器繁忙、服务器崩溃。
具体分析如下:
访问网时出现403 Forbidden错误的原因是你的IP被列入黑名单,或者你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了。
网站域名解析到了空间,但空间未绑定此域名,你的网页脚本文件在当前目录下没有执行权限,在不允许写/创建文件的目录中执行了创建/写文件操作。
以http方式访问需要ssl连接的网址,浏览器不支持SSL 128时访问SSL 128的连接,连接的用户过多,可以过后再试,或者是在身份验证的过程中输入了错误的密码。
HTTP 404或Not Found错误信息是HTTP的其中一种标准回应信息,此信息代表客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应且不知原因。
办法是将404页面反馈给网站管理员,然后等待网站修复。
Java程序员可能犯的3个常见SQL错误
概述:Java程序员不仅要具备扎实的Java编程能力,在日常的工作当中往往还要涉及到其他语言的基础知识,尤其是SQL。那么哪些常见的SQL错误是程序员们容易犯的呢?让我们一起来看看吧!
你可能看到Java程序员每周的工作是编码开发一个可伸缩的Web应用程序,或创建一个动态的网站,或者开发高效的电子商务产品页面,也可能是开发一个Android应用程序等等。但是,即使他们致力于不同的项目,却往往都有一个共同点,那就是编程!
他们的职业要求长时间的工作来积累更多的编程知识。Java程序员还需要了解项目的需求、设计和开发一个属于自己的原型项目。为了使自己始终跟随行业变换的脚步,他们还必须具备其他语言的基础知识,比如HTML、SQL等等。
Java程序员的职业生涯并不是一帆风顺的,他们必须尝试每一次的挑战,即使是最好的程序员,有时在编程的过程中也难免会犯一些不可避免的错误。举个例子,在编写SQL语句时,有些错误却是绝对可以避免的。在这里,小编就为各位程序员列举一些常见的SQL错误。
1
|
SELECT TOP 3 common_mistakes FROM SQLProgrammingMistakes; |
上述查询的结果如下:
1.不使用批量更新
在编写SQL语句时,Java程序员最常见和最大的一个错误就是忘记批处理。在表中编写成千上万的INSERT语句这确实不是一个好主意,程序员应该使用单个的SQL语言来创建一个绑定不同的参数的批处理INSERT语句。执行批处理的速度将比单个执行快得多。
我们来看看以下一个例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
String [] queries = { "INSERT INTO Employee { Eno, Ename, Ecode, EDept} values (‘1‘, ‘Allen‘, ‘abc‘, ‘Sales‘)" , "INSERT INTO Employee { Eno, Ename, Ecode, EDept} values (‘2‘, ‘Max‘, ‘102‘, ‘Marketing‘)" , "INSERT INTO Employee { Eno, Ename, Ecode, EDept} values (‘3‘, ‘Ward‘, ‘xyz‘, ‘Sales‘)" , "INSERT INTO Employee { Eno, Ename, Ecode, EDept} values (‘4‘, ‘Sam‘, ‘55‘, ‘Marketing‘)" , }; Connection connection = new getConnection(); Statement statement = connection .createStatement(); for (String query : queries ) { statement. execute (query); } statement. close (); connection . close (); |
这是一个糟糕的代码,在数据库中每一行INSERT语句都需要单独来执行。发送一批INSERT语句到数据库中一气呵成:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.sql. Connection ; import java.sql.Statement; //… Connection connection = new getConnection(); Statement statement = connection .createStatement(); For (Employee employee: employees){ String query = "INSERT INTO Employee (Eno, Ename, Ecode, Edept) values (‘ " + Employee. getEno() + "‘, ‘" + Employee.getEname() + "‘, ‘" + Employee.getEcode() + "‘, ‘" + Employee.getEdept() + "‘)" ; statement.addBatch(query); } statement. executeBatch(); statement. close (); connection . close (); |
插入大型数据集时,批处理是非常重要的。为了显著提升性能,程序员应该尽量在批处理模式下运行一条语句。执行批量插入的另外一种方法是使用PreparedStatement对象。然而批处理不仅仅只是局限于INSERT语句,你还可以利用它来执行更新、删除和声明等操作。
2.DBMS引擎未优化查询
并不是所有的Java程序员都了解SQL。在SQL查询中可以用很多种方式来得到相同的结果,但是程序员应该始终遵循最快的响应最佳的方式。
例如一个Java程序员被要求从Employee表中检索所有名字以‘A‘打头的员工,通常他们喜欢使用LEFT函数返回雇员名字的第一个字符:
1
|
SELECT Ename FROM Employee WHERE LEFT (Ename,1) = ‘A’; |
但是这是不正确的。在上面的查询中,数据库系统将扫描整个表来找到所需的信息。不使用索引,因此会花费大量的时间在执行查询上。相反,程序员应该使用查询检索结果:
1
|
SELECT Ename FROM Employee WHERE Ename LIKE ‘A%’; |
上述查询将利用指数快速有效地检索数据。所以在一般情况下,如果该DBMS引擎可以采取一个索引,程序员应尽可能使用可优化搜索的词来加快查询的执行。
3.不正确的谓词运算顺序
很多Java程序员认为查询通常的处理顺序是如下:FROM,WHERE,GROUP BY,HAVING,SELECT。上述顺序列除了用于执行查询的逻辑顺序。从逻辑上讲,FROM子句首先处理,定义了源数据表中的检索数据;接下来就是WHERE,随后就是GROUP BY等等。然在在物理上来说,查询处理是不同的。谓词的评估顺序通常是由各种规则和数据库版本来改变的。
例如下面的Employee表:
Eno | Ename | Ecode | Edept |
1 | Allen | abc | Sales |
2 | Max | 102 | Marketing |
3 | Ward | 55 | Marketing |
4 | Sam | xyz | Sales |
在给定的上表中,要检索所有销售部门员工的雇员代码大于100的。通常在这种情况下程序员将以下面的方式查询表:
1
2
3
4
|
SELECT Eno, Ecode AS Employee_No,Employee_Code FROM Employee WHERE Edept LIKE ‘M%‘ AND CAST (Ecode AS INT ) > 100; |
然而,上面的查询结果错误:
“Conversion failed when converting the varchar value ‘abc’ to data type int”
查询失败的原因正是前面所指出的,没有规定执行谓词的顺序。在这种情况下,第二谓词求值首先导致转换错误。
相反使用CASE表达式,这里将保证只有合法的数值将被转换为int类型:
1
2
3
4
5
6
|
SELECT Eno, Ecode AS Employee_No,Employee_Code FROM Employee WHERE Edept LIKE ‘M%‘ AND CASE WHEN Ecode NOT LIKE ‘%[^0-9]%‘ THEN CAST (Ecode AS INT ) END >100; |
以上是关于JAVA编程403、404、503错误,都可能是由啥原因产生的?的主要内容,如果未能解决你的问题,请参考以下文章
http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码
http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码
当结果 api 返回 null 或 /403/404/500/503 状态时,Flutter 在小部件中抛出消息