38.项目排错+c3p0连接池

@一贤不穿小鞋

1.web项目名上报红色感叹号

  • 错误原因:这是因为包冲突或包导错了导致和异常.
  • 解决方法:选中项目名->Build path->Configure Build path->libraries->选中报红X的包移除

2.Web项目名上报戏色X,项目中又没有那个类报错.

  • 错误原因:项目损坏.
  • 解决方法:重新建一个项目,将原项目包和类全部复制过来就可.

3.项目一发布,tomcat就报错.

  • 错误原因:编译器或tomcat或代码冲突
  • 解决方法:将以前运行成功的项目用tomcat重新发布,如果不能正常运行,说明tomcat坏了,重新换个tomcat;如果能正常运行,说明tomcat没问题,那你的项目发给其他人发布运行一下,如果其他人能正常发布成功,说明是你的编译器出问题了;如果其他人也不能正常发布你的项目,那就是项目中有代码问题.

4.404错误检查路径.

5.500错误

  • 错误原因:代码出错.
  • 解决方法:断点调试.

6.java.lang.IllegalArgumentException: Control character in cookie value or attribute.

  • 错误原因:tomcat7中cookie只能存ANSCII码,不能存中文.
  • 解决方法:将中文进行编码,再存到cookie对象中,从cookie对象取出这个值时,对应解码.
	eg:/*记住我*/
		//创建cookie对象存数据,存值进行编码
		Cookie c1=new Cookie("uname1", URLEncoder.encode(ud.getUname(), "utf-8"));
		//设置cookie有效期
		c1.setMaxAge(60);
		//将cookie通过浏览器存在客户端
		response.addCookie(c1);

		//获得cookie中数据
		Cookie[] cs=request.getCookies();
		
		//声明变量存登录用户信息
		String uname2="";
	
		if(cs!=null){
			//遍历cookie数组找到存值的cookie对象
			for(Cookie c1:cs){
				//如果当前遍历的cookie对象c1的key名等于uname1,说明这个对象存的value就是登录用户名
				if("uname1".equals(c1.getName())){//取出值时进行解码
					uname2=URLDecoder.decode(c1.getValue(), "utf-8");
				}			
			}
			
		}

7.(扩展)中文编码和解码

  • 对中文进行编码:URLEncoder.encode(“中文字符串”, “编码”) ;
  • 对值进行解码:URLDecoder.decode(“需要解码的字符串”, “编码”)
	eg:public static void main(String[] args) throws UnsupportedEncodingException {
		//准备一个字符串
		String s1="我是千锋人,我爱千锋";
		System.out.println("原字符串为:"+s1);
		//对字符串进行一次编码
		String s2=URLEncoder.encode(s1, "utf-8");
		System.out.println("s2:"+s2);
		
		//对字符串进行一次解码
		String s3=URLDecoder.decode(s2, "utf-8");
		System.out.println("s3:"+s3);
		
		//对字符串进行二次编码
		String s4=URLEncoder.encode(URLEncoder.encode(s1, "utf-8"), "gbk");
		System.out.println("s4:"+s4);
		
		//对字符串进行二次解码,解码的顺序与编码相反,最后编码的最先解
		String s5=URLDecoder.decode(URLDecoder.decode(s4, "gbk"), "utf-8");
		System.out.println("s5:"+s5);
	}

1.C3P0连接池的优点:

1.1:自动加载配置文件.

1.2:自动创建和释放空闲连接.

1.3:与spring等框架安全结合.

2.C3P0连接池的使用

2.1:导Jar包:c3p0-版本号.jar

2.2:在项目src下放置C3P0配置文件

  • 注意:C3P0配置文件只能放在src下才能识别.
  • C3P0配置文件名只能是:c3p0-config.xml 或 c3p0.properties
  • c3p0-config.xml内容
		<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
  <default-config>
	<property name="driverClass">com.mysql.jdbc.Driver</property>
	<property name="jdbcUrl">jdbc:mysql://localhost:3306/2008myschool</property>
	<property name="user">root</property>
	<property name="password">root</property>
    <property name="checkoutTimeout">30000</property>
    <property name="idleConnectionTestPeriod">30</property>
    <property name="initialPoolSize">10</property>
    <property name="maxIdleTime">30</property>
    <property name="maxPoolSize">100</property>
    <property name="minPoolSize">10</property>

  </default-config>
</c3p0-config>

		c3p0.properties配置内容
			 c3p0.jdbcUrl=jdbc:mysql://localhost:3306/2008myschool
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.user=root
c3p0.password=root

2.3:创建C3P0连接池直接用

  • public static ComboPooledDataSource ds=new ComboPooledDataSource();

总结
1.过滤器
2.监听器(重在理解原理,真正使用在第三阶段)(扩展)
3.项目排错(扩展)
4.c3p0连接池(扩展)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值