JavaWeb问题归集

本文档总结了JavaWeb开发过程中遇到的一些典型问题及其解决方案,包括session中文乱码、找不到包导致的NoClassDefFoundError错误、try/catch代码块误用等,并提供了具体的排查与解决步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习javaweb的问题归集(那些在开发时遇见的坑):
一、session乱码问题:在用jsp传递中文参数的时候,即使使用了
request.setCharacterEncoding(“utf-8”);
response.setContentType(“text/html;charset=utf-8”);
还是会出现乱码,导致servlet无法访问。

解决办法:暂未找到,只是先不传递中文参数。

查询到解决办法(还没有学习到):
1. 就是先配置过滤器,又配置server.xml文件,都设置成GB2312的编码
2. 这样无论是post还是get方式的表单传值,中文都不会是乱码!

二、在练习User案例的时候报错(找不到包):

五月 02, 2017 11:43:39 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet RegistServlet threw exception
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.apache.commons.beanutils.ConvertUtilsBean.<init>(ConvertUtilsBean.java:157)
    at org.apache.commons.beanutils.BeanUtilsBean.<init>(BeanUtilsBean.java:117)
    at org.apache.commons.beanutils.BeanUtilsBean$1.initialValue(BeanUtilsBean.java:68)
    at org.apache.commons.beanutils.ContextClassLoaderLocal.get(ContextClassLoaderLocal.java:153)
    at org.apache.commons.beanutils.BeanUtilsBean.getInstance(BeanUtilsBean.java:80)
    at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:433)
    at com.itheima.web.RegistServlet.doGet(RegistServlet.java:44)
    at com.itheima.web.RegistServlet.doPost(RegistServlet.java:67)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:876)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:618)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1790)
    at java.lang.Thread.run(Thread.java:744)

问题描述:显示找不到所需的jar包
问题原因:虽然在项目中导入了jar包,但是在tomcat的lib目录下并没有相应的jar包,所以在程序运行的时候会找不到jar包。
解决办法:拷贝相应的jar包到lib目录下。

打破砂锅问到底:为什么jar包不会自动被引入进tomcat的lib目录下?
在网上找到了解决办法

可以通过Eclipse在项目上右击 - Propertics - Deployment Assembly,添加“Java Build Path Entries”,添加所有依赖的jar包,就可以在发布时自动发布外部依赖的jar包。
这里写图片描述

( 额外案例的问题:在做Cust案例的时候,报错空指针异常。 解决办法:以后将所需的包放在lib文件目录下,需要导入时直接右键包BuildPath即可,包的路径最好不要有中文。)

三、try/catch 代码块使用错误。
问题描述;

catch (Exception e) {
            e.printStackTrace();
}throw new RuntimeException();

晕~将throw语句写在了catch语句以外,导致程序自动抛出异常。
解决办法:修改正确,throw 语句放在catch代码块中。以后要加强自己知识点的复习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值