Servlet中的常见问题

  • Post author:
  • Post category:其他



一.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的方法为依据上面三种情况依次进行检测,逐条排除。



版权声明:本文为cdfdddcs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。