Servlet使用过程中常见问题总结

简介: Servlet使用过程中常见问题总结

💕"Echo"💕

作者:Mylvzi

文章主要内容:Servlet使用过程中常见问题总结

前言:笔者在学习Servlet的过程中遇到了很多问题,这里总结一下

1.乱码问题

如果我们在响应报文中传输中文"你好",那么在浏览器之中显示就是"??",表示乱码

想要解决乱码问题,我们首先要清楚乱码是如何产生的,一般来说,如果出现了乱码问题,就说明有多个过程参与了编码,并且编码的方式不同,比如构造数据时使用utf8,解析数据时使用gbk,这样就会产生乱码的问题

具体来说可以通过一下两个步骤来解决乱码问题:

  1. 梳理清楚,程序在运行的过程中,都有哪些过程参与了编码
  2. 明确这些过程的具体编码方式

首先,在构造数据时是通过idea进行构造数据的,idea的编码方式是utf8

解析数据是通过浏览器进行解析的,浏览器的编码方式默认是和操作系统一致的,我的操作系统是windows简体中文版,默认的编码方式是gbk,所以浏览器的编码方式也是gbk,所以会产生乱码问题

要想解决乱码问题,就要统一编码方式,我们建议将gbk改为utf8(更容易),只需在响应报文的头部中进行设置即可

这样响应报文中的头部中就明确了编码方式为utf8,重新启动程序

乱码问题成功解决

2.出现404

404表示用户访问的资源不存在,一般来说,出现404的情况有两种:

1.写错了URL

URL 由ContextPath 和 ServletPath组成,输错,就会产生404

2.webxml配置错误

当web.xml文件中的代码输入错误时,也会触发404

3.出现405

405表示方法不允许,这在初学期经常出现,比如请求报文的方法是GET,但是没有重写doGet方法就会触发405

还有一种情况也可能会出现405

没有删除 super.doGet(req, resp);

如果没有删除,此时代码就会执行父类中的方法,同时也是方法不允许(因为父类方法中没有重写任何方法)

4.出现500

出现500,服务器内部错误,一般是你写的服务器代码中没有正确处理好异常

比如,在代码中添加:

String s = null;
        System.out.println(s.length());

报错:

这条消息还告诉你出错的异常类型以及所在的位置

5.出现空白界面

出现空白界面就证明没有响应报文被返回,检查代码中是否返回了响应报文

如果注释掉这部分,就会出现空白界面

//        resp.getWriter().write("你好");

6.出现无法访问此网站

表示你写的服务器不能运行,一般来说是你的tomcat没有正常运行,此时就要检查tomcat是否正常运行,如果正常运行就需要检查写的ip和端口号是否正确

以上就是本文的所有内容!


目录
相关文章
|
Java 应用服务中间件 程序员
如何利用Idea创建一个Servlet项目(新手向)(下)
如何利用Idea创建一个Servlet项目(新手向)(下)
326 0
|
SQL JavaScript 关系型数据库
MySQL Shell 使用指南
MySQL Shell 是一个强大且灵活的工具,它扩展了 MySQL 客户端的功能,使得数据库管理和运维工作更加便捷高效。
1127 0
|
Java 应用服务中间件 API
如何利用Idea创建一个Servlet项目(新手向)(上)
如何利用Idea创建一个Servlet项目(新手向)
740 0
|
前端开发 UED
使用HTML和CSS创建响应式表格
在网页设计中,表格是一种组织和展示数据的有效方式。本文档将指导你如何使用HTML和CSS来创建一个既美观又响应式的表格,以便在不同设备和屏幕尺寸上都能良好显示。我们将涵盖基础的HTML表格结构,样式美化以及如何实现响应式布局,使得表格内容在小屏设备上也能清晰阅读
550 0
|
存储 前端开发 数据安全/隐私保护
网站开发--Cookie 和 Session 的工作流程
网站开发--Cookie 和 Session 的工作流程
114 0
|
JSON 前端开发 Java
网站开发--详解Servlet(下)
网站开发--详解Servlet
95 0
|
SQL 关系型数据库 MySQL
常用的数据库链接工具都有哪些
常用的数据库链接工具都有哪些
1479 2
|
easyexcel Java Maven
springboot使用EasyExcel导入导出填充,解决导出乱码问题(web)
springboot使用EasyExcel导入导出填充,解决导出乱码问题(web)
1625 5
|
机器学习/深度学习 计算机视觉 Python
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数(3)
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数
|
机器学习/深度学习 存储 算法
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数(2)
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数