Servlet中各种页面报错码

单机程序:无需网络交互,单一执行的特定程序.例如:PPT,Word,收银机
Web程序:需要借助网络进行通信的程序(Client-->Server)

网络程序的架构:
两层CS架构:客户端+DB(存储数据并计算)
特点:数据库作为server,使用数据特定的编程语言编写业务逻辑.
-客户端提供操作页面和少量的业务逻辑处理.

缺点:移植性差(更换数据库需要重新进行编程)
不适合大型应用:客户端需要与数据库之间建立持续的连接

三层CS架构:客户端+服务器(任何支持TCP编程的语言)+DB
特点:
-数据库只负责数据的管理
-应用服务器提供所有的业务逻辑处理
-客户端只负责提供页面操作

.优点:移植性好,适合大型应用

.缺点:
-客户端需要单独安装,开发复杂(需要自定义协议,编写客户端和服务端的通信模块)

B/S:
同三层C/S架构:只是B/S不用自定义协议,而是用http协议.不需要独立的客户端.

什么是servlet?
Sun(oracle)公司制定的一种用来扩展Web服务器功能的"组件规范"

开发servlet的步骤:
.编写一个试下Servlet接口或继承HTTPServlet的java类.
.使用javac命令编译源文件为字节码文件
.将编译完的组件打包
.部署:将appName整个文件夹拷贝到Tomcat的webapps文件夹下
.启动Tomcat并访问servlet:在地址栏中输入符合一定规范的地址
http://ip:port/appName/servletUrl
(URL在web.xml描述文件中可以找到)

404错误:
-服务器执行完客户端的请求以后,返回给客户端的一个执行结果的状态码
.产生的原因:Web服务器(容器)根据请求地址找不到对应资源
如:
1.地址写错(拼写不正确,字母大小写写错)
2.web.xml文件中的两个<servlet-name>不一致
3.工程没有部署
4.Web应用程序部署结果没有遵守Servlet规范

404错误解决方法:
.检查上面四点

容器如何找到service方法

405错误:
产生的原因:Web服务器(容器)找不到service()方法处理请求
1.service方法名写错
2.service方法参数类型与标准类型不一致
3.service方法异常,返回值类型与标准值不一样.

405错误的解决方法:
.检查service()方法是否存在
.检查service()方法的(方法名,参数,返回值,异常类型)是否与覆盖父类中的方法一致

500错误
.产生的原因:程序在运行时出错
如:servlet类没有继承HttpServlet或者实现Servlet接口

500错误解决方法:
.检查servlet-class中的包名,类名是否正确
.servlet类有没有继承HttpServlet或者实现Servlet接口
.检查service方法中的代码是否运行出错.

servlet工作原理:
1.获取请求参数值的方法
获取提交的Name-Value数值
-getParamter(name);//接收用户输入的数据
        String username = request.getParameter("name");
        String pwd = request.getParameter("pwd");

getParamterValues方法
.返回值类型为:String[]
.当需要获取参数名相同的多个参数值的时候使用该方法
.多用于获取提交表单中复选框的值
.如果该参数值不存在,返回时null

为什么区分请求方式:
.请求方式客户端对话服务器的意向说明,是区分请求种类的关键.
不同的请求方式不仅仅是在数据传输时会有所不同,在表单提交及服务器端处理时都会采用不同的
方式,而区分不同种类的请求方式也会使得浏览器采用不同的缓存方式处理后续请求,从而提升响应
速度.

请求方式的种类:
GET
POST
HEAD
PUT
DELETE
..

GET请求方式
.当需要向服务器请求指定的资源时使用的方法
.他不应该用于一些会造成副作用的操作中(在网络应用中使用它来做提交请求是一种常用的错误
写法)
.什么情况下浏览器发送get请求
-在浏览器中直接书写地址
-点击链接
-表单默认提交
-重定向
-window.location

GET请求方式的特点
.会将请求数据添加到请求资源路径的后面,所有智能提交的数据给WEB服务器
.请求参数会显示在浏览器地址上,不安全.

POST请求方式
.向服务器提交需要处理的数据,这些数据写在请求的内容里,可以导致新资源的产生和已有资源
的更新

POST请求的特点:
.请求参数添加到实体内容中,可提交大量数据
.不会将请求参数显示在浏览器地址栏,相对安全

如何处理中文参数.

为什么表单提交会产生乱码:
.乱码产生的原因
-当表单提交时,浏览器会对中文参数值进行编码(使用打开表单所在的页面时的字符集进行编码)
-web服务器在默认情况下回使用ISO-8859-1去解码
-编码与解码方式不一致时,就会产生乱码.

解决POST方式时的乱码问题
1.确保表单所在的页面按照指定的字符集打开.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
.在服务器端按照这个编码格式解码即可
request.setCharacterEncoding("utf-8");
-添加在读取参数的前面
-此方式只对post请求有效.*

解决GET方式时的乱码问题.
1.确保表单所在的页面按照指定的字符集打开.
2.在服务器端使用如下方式解决
new String(username.getBytes("ISO-8859-1"),"utf-8")

为什么返回的页面会有乱码
.编码:将Unicode字符集对应的字节数组转换成某种本地字符集(如UTF-8)对应的字节数组
.解码:将某种本地字符集对应的字节数组转化为Unicode字符集对应的字节数组
.编码和解码使用的字符集不一致就产生了乱码.

猜你喜欢

转载自blog.csdn.net/CXY_ZPH/article/details/84994018