Servlet中的常见问题

本文总结了Java Web开发中遇到的一些典型问题及其解决办法,包括:HttpServlet类未导入、字符编码乱码、静态资源加载失败、404错误、405错误和500错误。对于HttpServlet问题,确保引入Servlet-api.jar;处理字符编码,需在请求和响应中设置正确的字符集;静态资源问题检查路径和web.xml配置;404错误检查URL和部署配置;405错误检查service方法签名;500错误则排查Servlet继承和web.xml配置。

一.HttpServlet cannot be resolved to a type

在工程中,Servlet显示:HttpServlet cannot be resolved to a type。

  原因:Eclipse中使用的HttpServlet类之所以识别不到的原因是没有导入Servlet-api.jar包

  解决方案一

    1、右键项目名称,进入properties进行配置

    2、点击左边菜单里面的targeted Runtimes就可以看到tomcat没有进行勾选,这就是出现这个情况的根本原因。

    3、勾选上tomcat,然后点击apply应用,然后点击OK

  解决方案二

    在需要导入的工程上右键进入properties,选择Java build path ,library选项卡中add external jars,选择你所安装tomcat目录下lib文件中的Servlet-api.jar包即可

二.Web应用中的字符乱码问题

  ①请求

    [1]GET请求

      (1)由于GET请求的请求参数是附着在URL地址后面的,所以需要通过在服务器端指定URL地址的解码字符集解决。方法:在Tomcat解压目录/conf目录/server.xml中,找到第一个connector标签,加入URIEncoding="UTF-8"

    [2]POST请求

      由于POST请求的请求参数是在请求体中,所以需要在request对象获取请求参数之前,设置解码字符集:request.setCharacterEncoding("UTF-8");

   ②响应

    指定响应数据的编码字符集,然后告诉浏览器使用什么字符集进行解码。

    实现方式:response.setContentType("text/html;charset=UTF-8");

    注意:不要在获取PrintWriter对象后再设置

三.无法打开jsp页面和无法加载css和js,字体等格式

1.路径有问题,或文件夹名称有问题,修改文件夹名称让tomcat重新加载就可以了。
2.web.xml配置有问题 
3.浏览器缓冲问题,清理浏览器缓冲即可 

四.出现404的错误提示

     可能是输入的地址有误(应用名大小写不正确,名称拼写不正确) 在web.xml文件中<servlet>和<servlet-mapping>中的两个<servlet-name>不一致 没有将工程部署到Tomcat的webapps下面 Web工程部署时的结构没有遵循Servlet的规范 具体的解决办法就是根据上面提到的4种情况,逐条进行检查。

五.产生405错误

    可能是service方法名写错,字母顺序不对或大小写错误 service方法参数类型与标准不一致,或参数顺序与标准不一致。一定是先HttpServletRequest,然后是HttpServletResponse类型 service方法异常、返回值类型与标准不一致,一定是抛出ServletException、IOException。返回值类型是void。 解决405错误的方法即检查service方法是否存在,签名(方法名、参数、返回值、异常类型)是否与覆盖的父类中的方法一致。 

六.产生500错误

    可能是Servlet没有继承HttpServlet或实现Servlet接口 web.xml文件中的<servlet-class>写错,与真正的包名类名不符 service方法中的代码运行时抛出异常 解决500的方法为依据上面三种情况依次进行检测,逐条排除。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值