JavaWeb
Thomas-Kwan
这个作者很懒,什么都没留下…
展开
-
java.lang.OutOfMemoryError异常解决方法
原因:常见的有以下几种:1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;3.代码中存在死循环或循环产生过多重复的对象实体;4.使用的第三方软件中的BUG;5.启动参数内存值设定的过小; 常见错误提示:1.tomcat:java.lang.OutOfMemoryError: PermGen...转载 2019-01-23 18:47:38 · 4571 阅读 · 0 评论 -
getRequestDispatcher()与sendRedirect()的区别
1.request.getRequestDispatcher()是请求转发,前后页面共享一个request ; response.sendRedirect()是重新定向,前后页面不是一个request。request.getRequestDispather();返回的是一个RequestDispatcher对象。2.RequestDispatcher.forward()是在服务器端运行...原创 2018-09-03 10:44:59 · 140 阅读 · 0 评论 -
HttpClient4.X Invalid use of SingleClientConnManager: connection still allocated解决方法
httpclient默认使用的是SingleClientConnManager,但在并发环境下最好使用ThreadSafeClientConnManager。代码如下:HttpClient client = new DefaultHttpClient(new ThreadSafeClientConnManager());HttpGet httpGet = null;InputStream...原创 2018-09-03 10:21:19 · 574 阅读 · 0 评论 -
request.getParameter乱码的原因
http请求是以ISO-8859-1的编码来传送url的如果页面的content-type为utf-8,那么在发送请求时,会将字符转成utf-8后进行传送如“中”的UTF-8编码为:E4 B8 AD在请求时为%E4%B8%AD字节之间是%分隔那么服务器收到这段字节流后,必须将它转成相应的字符,平时所使用的request.getParameter("name")直接得到了字符串,那么...原创 2018-09-04 15:09:31 · 3874 阅读 · 3 评论 -
struts2 标签 property中对HTML标签输出
文章展示的时候,文章内容由于采用的富文本编辑器,所以里面是带有HTML标签的,这时直接用标签进行输出,例如:<s:property value="Obj.content" />HTML标签会原样输出,因为struts标签会对html进行自动的编码,并且此标签有内置属性escape。此属性默认值是true,就是它控制着是否自动编码,所以加入escape="false"就OK了例如...原创 2018-07-24 19:11:04 · 391 阅读 · 0 评论 -
如何获得request,session
struts2中几种取得request,session等对象的方法1、ActionContext来得到举例代码以下:情况1: ActionContext context = ActionContext.getContext(); Map request = (Map) context.get("request"); Map session = context.getSe...原创 2018-07-25 11:47:14 · 1651 阅读 · 0 评论 -
struts2 中设置默认值的方法
1.遇到value是字条串的时候:性 别:<s:radio list="#{'MAN':'男','WOMAN':'女'}" listKey="key" listValue="value" name="employee.gender" value="'MAN'"/> 注意:value的值是:"''MAN''",须这样写。2.遇到value是非字符串的原创 2018-07-25 11:35:18 · 443 阅读 · 0 评论 -
Invalid use of SingleClientConnManager: connection still allocated. 解决方法
在多线程环境下,使用 httpclient.xxx.jar包的 new DefaultHttpClient() ; 构造函数创建的client客户端将会引发以下这个错误:Invalid use of SingleClientConnManager: connection still allocated.Make sure to release the connection before a...原创 2018-08-28 16:12:16 · 879 阅读 · 0 评论 -
Tomcat get请求乱码
归结是tomcat配置问题,在tomcat server.xml中有2个参数是配置编码的,一个是URIEncoding,另一个是useBodyEncodingForURIapache tomcat官方网站对这两个参数的解释: URIEncoding This specifies the character encoding used to decode the URI bytes, a...原创 2018-08-28 16:06:14 · 509 阅读 · 0 评论 -
filter执行顺序
Filter可以担任浏览器与JSP/Servlet之间的一个中介处理者,一些request的前置处理动作及一些response的后置处理,都可以交由这个中介处理者来完成,当然Filter可以达到的功能,也可以直接撰写在JSP/Servlet中,但如果有很多JSP/Servlet都需要相同的处理,例如某些网页都需要统一的身份验证方式时,与其在每一个网页中都撰写验证的程式码,不如直接撰写Filter,...原创 2018-09-03 11:35:05 · 3921 阅读 · 0 评论 -
用URLConnection或是HttpURLConnection提交保持Session的方法
方法如下:第一次和服务器发起POST或是GET请求以后,通过getHeaderField方法获得SessionID,具体方法为:String session_value=getHeaderField("Set-Cookie");这里得到的session_value可能不全是sessionId,还包含其他内容,用正则或者其他方法获得session_value中的sessionId的值就可...原创 2018-09-03 11:46:21 · 3596 阅读 · 1 评论 -
引用外部.css或.js文件的路径问题
jsp或html页面引用外部.css或.js文件时,注意路劲问题,如果设置不当,会引用不到这些外部的文件假设使用下面的目录结构:-webapp|-MyProject 目录 |--WebContent 目录 |---scripts 目录 ---dtree.js 文件 |---styles 目录 ---main.css 文件 |---pages 目录...原创 2018-09-03 14:58:48 · 1197 阅读 · 0 评论 -
Java Session的实现方法
HTTP协议(http://www.w3.org/Protocols/)是“一次性单向”协议。服务端不能主动连接客户端,只能被动等待并答复客户端请求。客户端连接服务端,发出一个HTTP Request,服务端处理请求,并且返回一个HTTP Response给客户端,本次HTTP Request-Response Cycle结束。我们看到,HTTP协议本身并不能支持服务端保存客户端的状态信息...转载 2018-09-22 10:39:44 · 2299 阅读 · 0 评论 -
Session持久化技术
tomcat6 中关闭服务会自动把session持久化 存储在work目录下的一个session.ser 对于Session的管理,tomcat两个实现类:org.apache.catalina.session.StandardManagerorg.apache.catalina.session.PersistentManagerStandardManager 默认的方法可以配置...原创 2018-09-21 10:22:30 · 634 阅读 · 0 评论 -
web.xml中classpath:和classpath*的区别
首先 classpath是指 WEB-INF文件夹下的classes目录 classes含义:1.存放各种资源配置文件 eg.init.properties log4j.properties struts.xml2.存放模板文件 eg.actionerror.ftl3.存放class文件 对应的是项目开发时的src目录编译文件总结:这是一个定位资源的入口这个涉及的是li...原创 2018-09-20 08:59:39 · 140 阅读 · 0 评论 -
异常:java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider 解决方法
spring从3.1开始不再提供对hibernate4的Template和DaoSupport的支持。异常:java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider解决方法:ClassNotFoundExceptionCause: using a org.springframework.orm.hiber...原创 2018-09-19 18:10:50 · 1901 阅读 · 0 评论 -
Setting property 'source' to 'org.eclipse.jst.jee.server:webProject' did not find a matching propert
启动tomcat后出现红色警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:webProject' did not find a matching property.这是因为我们在eclipse下,通过tom...原创 2018-09-19 18:02:31 · 281 阅读 · 0 评论 -
Illegal access: this web application instance has been stopped already 解决方法
org.apache.catalina.loader.WebappClassLoader loadClass信息: Illegal access: this web application instance has been stopped already (the eventual following stack trace is caused by an error thrown for ...原创 2018-09-17 14:58:00 · 13288 阅读 · 0 评论 -
正确配置DBCP防止数据库重启引起的访问错误
在java web 应用中使用dbcp做为连接池,当数据库重启或数据库连接超过设置的最大timemout时间,数据库会强行断开已有的链接,此时当web程序访问数据库时就会出现错误,大致的错误信息java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before ...原创 2018-09-17 14:55:07 · 796 阅读 · 0 评论 -
分析hibernate 4用buildSessionFactory(ServiceRegistry serviceRegistry) 来代替buildSessionFactory()原因
hibernate 开启事务SessionFactory 因为Service Registry 是一个独立的组件,具有注册表(registry)和存储库功能。他的功能比较全面 用在XML模式上面比较好,区别不大。 public static Session openSession(){try{config=new Configuration().configure()...原创 2018-08-15 18:56:43 · 500 阅读 · 0 评论 -
HibernateTemplate.save()的返回值问题
HibernateTemplate().save()该方法的返回值为一般的id标识符,而且返回值类型是Serializable类型的,是以对象主键标识作为返回值。因为主键类型是唯一,如果是其他的字段,难免会有些重复的。实际上数据库中的主键字段,对于实体对象并没有很大的意义。...原创 2018-08-07 10:49:48 · 2520 阅读 · 0 评论 -
s:url标签使用
一. value <s:set name="myurl" value="'http://www.baidu.com'"></s:set> value以字符处理: <s:url value="#myurl"></s:url><br> value明确转载 2018-07-27 23:35:19 · 2211 阅读 · 0 评论 -
Action标签的用法
Action标签,顾名思义,是用来调用Action的标签,在JSP中页面中,可以具体指定某一命名空间中的某一Action。而标签的主体用于显示及渲染Actionr的处理结果。action标签有如下几个属性:1、id: 可选,作为该action的引用ID2、name: 必填,调用action的名字3、namespace: 可选,action所在的nqmespace4、exe...原创 2018-07-27 23:31:34 · 7188 阅读 · 0 评论 -
JSP页面中的错误处理
jsp页面中主要有两种错误(1)编译时错误(2)运行时错误 编译时错误是容器把JSP代码翻译为JAVA源代码时出现的,而运行时错误则是在执行已编译的JAVA字节码来处理一个到来的请求时出现。对于编译时错误并没有一个一般的方法可遵循,但运行时错误一般有下列两种处理方法。一、通过JSTL<c:catch>标记来处理JSP页面所产生的错误,一般形式如下:<c...转载 2018-07-31 09:25:30 · 3250 阅读 · 0 评论 -
让JSP页面不缓存
1 使用java提供的方法,在jsp或者servlet中都可以<%response.setHeader("Pragma","No-cache");response.setHeader("Cache-Control","no-cache");response.setDateHeader("Expires", 0);%>2 使用HTML标记,如下面:&a原创 2018-07-31 09:17:40 · 1260 阅读 · 0 评论 -
Spring加载resource时classpath*:与classpath:的区别
Spring可以通过指定classpath*:与classpath:前缀加路径的方式从classpath加载文件,如bean的定义文件.classpath*:的出现是为了从多个jar文件中加载相同的文件.classpath:只能加载找到的第一个文件.比如resource1.jar中的package 'com.test.rs' 有一个'jarAppcontext.xml' 文件,内容如下:&...转载 2018-07-29 21:00:53 · 964 阅读 · 0 评论 -
spring的lazy-init属性
ApplicationContext实现的默认行为就是在启动时将所有singleton bean提前进行实例化。提前实例化意味着作为初始化过程的一部分,ApplicationContext实例会创建并配置所有的singleton bean。通常情况下这是件好事,因为这样在配置中的任何错误就会即刻被发现(否则的话可能要花几个小时甚至几天)。有时候这种默认处理可能并不是你想要的。如果你不想让一个s...原创 2018-07-29 20:50:01 · 1181 阅读 · 0 评论 -
OGNL表达式struts2标签“%,#,$”的区别
一、什么是OGNL,有什么特点?OGNL(Object-Graph Navigation Language),大概可以理解为:对象图形化导航语言。是一种可以方便地操作对象属性的开源表达式语言。OGNL有如下特点: 1、支持对象方法调用,形式如:objName.methodName(); 2、支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路)]@[方法名 | 值名...转载 2018-07-29 20:10:21 · 501 阅读 · 0 评论 -
Struts2中action和field级别错误处理
在struts2中,一般的action都继承ActionSupport这个类,可以重写public void validate()来进行数据校验,对应提示信息来说一般有两个比较常用的方法就是this.addFieldError("field name","error message"); 和this.addActionError("error message");两个方法。 由于在Acti...原创 2018-07-29 18:35:13 · 420 阅读 · 0 评论 -
Struts2与Spring集成问题 spring-plugin
集成的时候只要一加上struts2-spring-plugin-2.1.6.jar包就出错,删掉就正常严重: Exception starting filter struts2java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: com.opensymphony.xwork2....原创 2018-07-27 23:43:04 · 711 阅读 · 0 评论 -
Struts2中重要的jar包
struts2 jar包说明commons-logging-1.0.4.jar日志包freemarker-2.3.8.jarognl-2.6.11.jarstruts2-core-2.0.11.jar 核心包xwork-2.0.4.jar xwork所依赖的核心包,struts2也依赖于它 struts2.1.6,至少需要如下6 个jar包:struts2-core-2.1.6...转载 2018-07-27 23:46:53 · 412 阅读 · 0 评论 -
ognl表达式访问普通属性和静态方法
ognl的全名是 Object-Graph Navigation Language 表示的是图对象导航语言。是通过"."来实现对象的导航下面看具体例子 (1)例子都是访问普通属性和静态方法,获取的也只是普通属性的值或者静态方法返回的值,所以这里一般是用<s:property value="ognl expression">来展示。其中,value里面的值才是ognl表达式。...原创 2018-07-28 01:47:26 · 876 阅读 · 0 评论 -
注意Hibernate4在开发当中的一些改变
Hibernate4的改动较大只有spring3.1以上版本能够支持,Spring3.1取消了HibernateTemplate,因为Hibernate4的事务管理已经很好了,不用Spring再扩展了。这里简单介绍了hibernate4相对于hibernate3配置时出现的错误,只列举了问题和解决方法,详细原理如果大家感兴趣还是去自己搜吧,网上很多。Spring3.1去掉了HibernateD...转载 2018-08-07 10:45:41 · 113 阅读 · 0 评论 -
Hibernate中HibernateUtil
Configuration cfg=new Configuration();cfg.configure();SessionFactory sf=cfg.buildSessionFactory();这些代码希一般希望它只做一次,我们去做一个工具类去初始化hibernate。工具类一般不希望被继承,别人来改写自己的东西,一般用final。package net.cnlib.uti...原创 2018-08-07 10:23:42 · 1332 阅读 · 0 评论 -
HibernateTemplate源码
/* * Copyright 2002-2009 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * ...转载 2018-08-06 17:23:02 · 384 阅读 · 1 评论 -
No Session found for current thread 解决方法
在setSessionFactory上加@Autowired 的时候,报出错误为:org.hibernate.HibernateException:No Session found for current thread at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionC...原创 2018-08-06 17:16:21 · 1363 阅读 · 0 评论 -
Could not bind factory to JNDI 解决方法
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial at ...原创 2018-08-06 17:12:51 · 498 阅读 · 0 评论 -
org.hibernate.TransactionException: nested transactions not supported错误的解决方法
用ssh架构进行开发的时候。配置hibernate如果出现org.hibernate.TransactionException: nested transactions not supported这个异常,那是因为事务没有提交 。一般是实现DAO接口的那个java文件。Transaction的对象没有提交事务 也就是commit()这个方法,例如以下代码:public void addPer...原创 2018-08-01 15:18:48 · 3186 阅读 · 0 评论 -
c3p0详细配置
<c3p0-config><default-config><!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --><property name="acquireIncrement">3</property><!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 ..转载 2018-08-01 15:13:05 · 259 阅读 · 0 评论 -
Hibernate C3P0连接池经验
Hibernate自带的连接池算法相当不成熟。 并不适合用于产品系统或性能测试中。 出于最佳性能和稳定性考虑应该使用第三方的连接池。只需要用特定连接池的设置替换 hibernate.connection.pool_size即可。这将关闭Hibernate自带的连接池。 例如, C3P0.Hibernate C3P0连接池是一个随Hibernate一同分发的开源的JDBC连接池, 它位于lib目...原创 2018-08-01 15:09:19 · 960 阅读 · 0 评论