RequestDumpUtil.java
packageexamples.jsf.util;
importjava.util.Collections;
importjava.util.Enumeration;
importjava.util.Iterator;
importjava.util.Locale;
importjava.util.SortedSet;
importjava.util.TreeSet;
importjavax.servlet.ServletContext;
importjavax.servlet.http.Cookie;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpSession;
publicclassRequestDumpUtil{
publicstaticvoiddumpRequestHeaders(finalStringBuffersb,
finalHttpServletRequestrequest,finalStringlf,
finalStringindent){
for(finalIteratorit=toSortedSet(request.getHeaderNames())
.iterator();it.hasNext();){
finalStringname=(String)it.next();
finalStringvalue=request.getHeader(name);
sb.append(indent);
sb.append("[header]").append(name);
sb.append("=").append(value);
sb.append(lf);
}
}
publicstaticvoiddumpContextAttributes(finalStringBuffersb,
finalServletContextservletContext,finalStringlf,
finalStringindent){
if(servletContext==null){
return;
}
for(finalIteratorit=toSortedSet(servletContext.getAttributeNames())
.iterator();it.hasNext();){
finalStringname=(String)it.next();
finalObjectattr=servletContext.getAttribute(name);
sb.append(indent);
sb.append("[context]").append(name).append("=").append(attr);
sb.append(lf);
}
}
publicstaticvoiddumpCookies(finalStringBuffersb,
finalHttpServletRequestrequest,finalStringlf,
finalStringindent){
Cookiecookies[]=request.getCookies();
if(cookies==null){
cookies=newCookie[0];
}
for(inti=0;i<cookies.length;i++){
sb.append(indent);
sb.append("[cookie]").append(cookies[i].getName());
sb.append("=").append(cookies[i].getValue());
sb.append(lf);
}
}
publicstaticvoiddumpRequestAttributes(finalStringBuffersb,
finalHttpServletRequestrequest,finalStringlf,
finalStringindent){
for(finalIteratorit=toSortedSet(request.getAttributeNames())
.iterator();it.hasNext();){
finalStringname=(String)it.next();
finalObjectattr=request.getAttribute(name);
sb.append(indent);
sb.append("[request]").append(name).append("=").append(attr);
sb.append(lf);
}
}
publicstaticvoiddumpSessionAttributes(finalStringBuffersb,
finalHttpServletRequestrequest,finalStringlf,
finalStringindent){
finalHttpSessionsession=request.getSession(false);
if(session==null){
return;
}
for(finalIteratorit=toSortedSet(session.getAttributeNames())
.iterator();it.hasNext();){
finalStringname=(String)it.next();
finalObjectattr=session.getAttribute(name);
sb.append(indent);
sb.append("[session]").append(name).append("=").append(attr);
sb.append(lf);
}
}
privatestaticSortedSettoSortedSet(finalEnumerationenu){
finalSortedSetset=newTreeSet();
set.addAll(Collections.list(enu));
returnset;
}
publicstaticvoiddumpRequestParameters(finalStringBuffersb,
finalHttpServletRequestrequest,finalStringlf,
finalStringindent){
for(finalIteratorit=toSortedSet(request.getParameterNames())
.iterator();it.hasNext();){
finalStringname=(String)it.next();
sb.append(indent);
sb.append("[param]").append(name).append("=");
finalStringvalues[]=request.getParameterValues(name);
for(inti=0;i<values.length;i++){
if(i>0){
sb.append(",");
}
sb.append(values[i]);
}
sb.append(lf);
}
}
publicstaticvoiddumpRequestAndContextProperties(finalStringBuffersb,
finalHttpServletRequestrequest,finalServletContextcontext,
finalStringlf,finalStringindent){
finalHttpSessionsession=request.getSession(false);
sb.append(indent);
sb.append("Requestclass="+request.getClass().getName()).append(
",instance=").append(request);
sb.append(lf);
sb.append(indent);
sb.append("RequestedSessionId=")
.append(request.getRequestedSessionId());
sb.append(lf);
sb.append(indent);
if(session!=null){
sb.append("SessionSessionId=").append(session.getId());
sb.append(lf).append(indent);
}
sb.append("REQUEST_URI=").append(request.getRequestURI());
sb.append(",SERVLET_PATH=").append(request.getServletPath());
sb.append(lf).append(indent);
if(session!=null){
sb.append("Session::CreationTime=").append(
session.getCreationTime());
sb.append(",LastAccessedTime=").append(
session.getLastAccessedTime());
sb.append(",MaxInactiveInterval=").append(
session.getMaxInactiveInterval());
sb.append(lf).append(indent);
}
sb.append("CharacterEncoding="+request.getCharacterEncoding());
sb.append(",ContentLength=").append(request.getContentLength());
sb.append(",ContentType=").append(request.getContentType());
sb.append(",Locale=").append(request.getLocale());
sb.append(",Locales=");
finalEnumerationlocales=request.getLocales();
booleanfirst=true;
while(locales.hasMoreElements()){
finalLocalelocale=(Locale)locales.nextElement();
if(first){
first=false;
}else{
sb.append(",");
}
sb.append(locale.toString());
}
sb.append(",Scheme=").append(request.getScheme());
sb.append(",isSecure=").append(request.isSecure());
sb.append(lf).append(indent);
sb.append("SERVER_PROTOCOL=").append(request.getProtocol());
sb.append(",REMOTE_ADDR=").append(request.getRemoteAddr());
sb.append(",REMOTE_HOST=").append(request.getRemoteHost());
sb.append(",SERVER_NAME=").append(request.getServerName());
sb.append(",SERVER_PORT=").append(request.getServerPort());
sb.append(lf);
sb.append(indent);
sb.append("ContextRealPath=").append(context.getRealPath("/"));
sb.append(lf).append(indent);
sb.append("SERVER_SOFTWARE=").append(context.getServerInfo());
sb.append(",ServletContextName=").append(
context.getServletContextName());
sb.append(",MajorVersion=").append(context.getMajorVersion());
sb.append(",MinorVersion=").append(context.getMinorVersion());
sb.append(lf).append(indent);
sb.append("ContextPath=").append(request.getContextPath());
sb.append(",REQUEST_METHOD=").append(request.getMethod());
sb.append(",QUERY_STRING=").append(request.getQueryString());
sb.append(",PathInfo=").append(request.getPathInfo());
sb.append(",RemoteUser=").append(request.getRemoteUser());
sb.append(lf);
}
}
app.dicon
<?xmlversion="1.0"encoding="Shift_JIS"?>
<!DOCTYPEcomponentsPUBLIC"-//SEASAR//DTDS2Container2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
<includepath="jsf.dicon"/>
<includepath="teeda.dicon"/>
<includepath="dao.dicon"/>
<includepath="examples/jsf/dicon/allaop.dicon"/>
<component
class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister"
>
<propertyname="instanceDef">
@org.seasar.framework.container.deployer.InstanceDefFactory@REQUEST
</property>
<initMethodname="addClassPattern">
<arg>"examples.jsf.action.impl"</arg>
<arg>".*ActionImpl"</arg>
</initMethod>
</component>
<component
class="org.seasar.framework.container.autoregister.AspectAutoRegister"
>
<propertyname="interceptor">actionInterceptorChain</property>
<initMethodname="addClassPattern">
<arg>"examples.jsf.action.impl"</arg>
<arg>".*ActionImpl"</arg>
</initMethod>
</component>
<component
class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister"
>
<propertyname="instanceDef">
@org.seasar.framework.container.deployer.InstanceDefFactory@REQUEST
</property>
<initMethodname="addClassPattern">
<arg>"examples.jsf.dto"</arg>
<arg>".*Dto"</arg>
</initMethod>
</component>
<component
class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister"
>
<initMethodname="addClassPattern">
<arg>"examples.jsf.logic.impl"</arg>
<arg>".*LogicImpl"</arg>
</initMethod>
</component>
<component
class="org.seasar.framework.container.autoregister.AspectAutoRegister"
>
<propertyname="interceptor">logicInterceptorChain</property>
<initMethodname="addClassPattern">
<arg>"examples.jsf.logic.impl"</arg>
<arg>".*LogicImpl"</arg>
</initMethod>
</component>
</components>
appMessages.properties和appMessages_ja.properties暂为空。
convention.dicon
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEcomponentsPUBLIC"-//SEASAR//DTDS2Container2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
<componentclass="org.seasar.framework.convention.impl.NamingConventionImpl"/>
</components>
jdbc.dicon(本例中未使用数据库,可按实际情况更改配置)
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEcomponentsPUBLIC"-//SEASAR//DTDS2Container2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<componentsnamespace="jdbc">
<includepath="jta.dicon"/>
<includepath="jdbc-extension.dicon"/>
<componentclass="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
<componentclass="org.seasar.extension.jdbc.impl.ConfigurableStatementFactory">
<arg>
<componentclass="org.seasar.extension.jdbc.impl.BasicStatementFactory"/>
</arg>
<propertyname="fetchSize">100</property>
<!--
<propertyname="maxRows">100</property>
-->
</component>
<!--
<componentclass="org.seasar.extension.jdbc.impl.OracleResultSetFactory"/>
<componentclass="org.seasar.extension.jdbc.impl.BooleanToIntStatementFactory"/>
-->
<!--forHSQLDB-->
<componentname="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<propertyname="driverClassName">
"org.hsqldb.jdbcDriver"
</property>
<propertyname="URL">
"jdbc:hsqldb:hsql://localhost:9001"
<!--
"jdbc:hsqldb:file:"
+@org.seasar.framework.util.ResourceUtil@getBuildDir(@org.seasar.extension.dbcp.impl.ConnectionPoolImplTest@class).getCanonicalPath()
+"/data/demo"
-->
</property>
<propertyname="user">"sa"</property>
<propertyname="password">""</property>
</component>
<!--forOracle-->
<!--
<componentname="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<propertyname="driverClassName">
"oracle.jdbc.driver.OracleDriver"
</property>
<propertyname="URL">
"jdbc:oracle:thin:@xxx:1521:xxx"
</property>
<propertyname="user">"xxx"</property>
<propertyname="password">"xxx"</property>
</component>
-->
<!--forPostgreSQL-->
<!--
<componentname="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<propertyname="driverClassName">
"org.postgresql.Driver"
</property>
<propertyname="URL">
"jdbc:postgresql://localhost/TEST"
</property>
<propertyname="user">"xxxx"</property>
<propertyname="password">"xxxx"</property>
</component>
-->
<!--MySQL
-MySQL4.0以下でマルチバイト文字を扱う場合には,URL指定の後に,
以下の接続パラメータを追加で指定してください.
useUnicode=true
characterEncoding=[MySQLのエンコーディングに対応した
Javaのエンコーディング名]
例:"jdbc:mysql://localhost:3306/test?useUnicode=true"+
"&characterEncoding=Windows-31J"
-MySQL5.0以降で,エンコーディングがeucjpmsの列を扱う場合には,
URL指定の後に,以下の接続パラメータを追加で指定してください.
characterEncoding=UTF-8またはWindows-31J
characterSetResults=UTF-8またはWindows-31J
例:"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8"+
"&characterSetResults=UTF-8"
この指定をしない場合,Java側でUCS-2⇔EUC_JP_Solarisの変換が
行なわれるため,ユーザー定義外字などの一部の文字が化けます.
この指定をすることで,MySQL側でeucjpms⇔ucs2⇔utf8(cp932)の
変換が行なわれ,Java側でUCS-2⇔UTF-8(Windows-31J)の変換が
行なわれるようになります.この結果,文字化けを防げます.
なおJISX0212(補助漢字)を使用する場合は,Windows-31Jではなく
UTF-8を指定する必要があります.
-上記以外の場合は,my.cnfでdefault-character-setの設定を適切に
(cp932やutf8など.デフォルトのlatin1は不可)行なっていれば,
文字化けは防げます.
<componentname="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<propertyname="driverClassName">
"com.mysql.jdbc.Driver"
</property>
<propertyname="URL">
"jdbc:mysql://localhost:3306/test"
</property>
<propertyname="user">"xxx"</property>
<propertyname="password">"xxx"</property>
</component>
-->
<!--forSQLServer-->
<!--
<componentname="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<propertyname="driverClassName">
"net.sourceforge.jtds.jdbc.Driver"
</property>
<propertyname="URL">
"jdbc:jtds:sqlserver://localhost/TEST;instance=SQLEXPRESS"
</property>
<propertyname="user">"xxxx"</property>
<propertyname="password">"xxxx"</property>
</component>
-->
<componentname="connectionPool"
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
<propertyname="timeout">600</property>
<propertyname="maxPoolSize">10</property>
<propertyname="allowLocalTx">true</property>
<destroyMethodname="close"/>
</component>
<componentname="DataSource"
class="org.seasar.extension.dbcp.impl.DataSourceImpl"
/>
<!--fromJNDI-->
<!--
<componentname="DataSource"
class="javax.sql.DataSource">
@org.seasar.extension.j2ee.JndiResourceLocator@lookup("java:comp/env/jdbc/DataSource")
</component>
-->
</components>
分享到:
相关推荐
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
各页面加入图标 新网站,新气象。
C评级客户流失率相对误差
python爬虫数据可视化
内容概要: 简单的贪吃蛇游戏,拓展、可移植性高。 适用人群: 不限。 使用场景: 不限。
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
笔记本显卡RTX 4060 GPU 驱动程序
LCD取模软件PCtoLCD2002和Image2Lcd 2.9
Mac系统aTrust客户端-2.3.10-SP4
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于协同过滤、矩阵分解、gvdt+lr、wide&deep等算法的推荐模型python实现源码含项目说明+数据集.zip 推荐算法的实现,python、jupyter双版本,详尽注释。 正在努力更新中... #### 对MovieLens电影评分小型数据集做Top N推荐: 0. baseline--推荐最热门的N=20部电影,precision=11%, recall=4%, coverage=0.2%, popularity=169。这部分内容包含在UserCF.py 1. UserCF,precision=25%, recall=10%, coverage=10%, popularity=4.4 2. ItemCF,precision=26%, recall=10%, coverage=15%, popularity=4.3 #### 对MovieLens电影评分小型数据集做评分预测: 0. baseline--使用所有评分的均值做预测,MAE:0.83。这部分内容包含在LinearRegression_Rating.ipynb 1. BiasSVD,MAE:0.68 2. LinearRegression,MAE:0.61 #### 对criteo广告展示小型数据集做点击率预测 1. gbdt+lr,binary_logloss:0.4783 #### 对Census数据中的收入做二分类 0. Google TensorFlow Guide上的Wide&Deep基准模型准确率: 0.83。(从有的知乎博主分享的链接来看,已经打不开了) 1. Wide&Deep, accuracy: 0.8587
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于C++实现的连接池、线程池、内存池、对象池项目源码含项目说明.zip ## CPP连接池 ### 关键技术点 MySQL数据库编程、单例模式、queue队列容器、C++11多线程编程、线程互斥、线程同步通信和 unique_lock、基于CAS的原子整形、智能指针shared_ptr、lambda表达式、生产者-消费者线程模型 ## CPP线程池 ### 关键技术点 作为五大池之一(内存池、连接池、线程池、进程池、协程池),线程池的应用非常广泛,不管是客户 端程序,还是后台服务程序,都是提高业务处理能力的必备模块。有很多开源的线程池实现,虽然各自 接口使用上稍有区别,但是其核心实现原理都是基本相同的。 ## CPP内存池 ### 关键技术点 读一下STL和nginx的内存池实现,并且单单的内存池的地方项目提取出来,方便后面对于不同类型的内存池进行分析 ## 对象池 ### 关键技术点 对于new和delete,malloc和free的源码进行阅读,对于创建对象需要多次创建和释放的的情况实现一个对象池 实现的方案使用Queue进行创建
maven安装与配置
基于html的六一儿童节祝福网页,这个页面展示了一个简洁的儿童节祝福界面,包含一个标题、祝福文字和几张示例图片。你可以根据需要替换示例图片的链接和文字内容。
车牌检测和识别项目介绍 车牌的检测和识别的应用非常广泛,比如交通违章车牌追踪,小区或地下车库门禁。在对车牌识别和检测的过程中,因为车牌往往是规整的矩形,长宽比相对固定,色调纹理相对固定,常用的方法有:基于形状、基于色调、基于纹理、基于文字特征等方法,近年来随着深度学习的发展也会使用目标检测的一些深度学习方法。该项目主要的流程如下图所示: 1.输入原始图片,通过二值化,边缘检测,和基于色调的颜色微调等办法检测出原图中的车牌号的位置; 2.把检测到的车牌(ROI)裁剪,为车牌号的识别做准备; 3.基于裁剪的车牌号,使用直方图的波峰波谷分割裁剪的车牌号(如上图中的第3步) 4.训练机器学习模型做车牌识别,这里训练了2个SVM,一个SVM用来识别省份简称(如 鲁),另一个SVM用来识别字母和数字。 5.通过PyQt5把整个算法封装成GUI程序,并打包发布安装软件。
本文从超市会员管理的实质入手,从本质区别超市会员管理与其他商业消费的会员管理的根本区别,针对专一积分管理提出看法,希望让系统更适用于商业超市的发展。让积分制度实施在一个合适的领域内,并不是所谓的通用格式,而是一个适合超市的专属模式。因此设计开发一种适合超市使用的会员积分管理系统可以实效得解决问题,能够让超市的会员真实的感受到会员积分带来的好处。 本系统是专门设计适用于超市的会员积分管理系统。整体采用B/S架构开发,通过对系统深入细致的分析,以及对业务背景和需求的了解,结合流行成熟的Web开发技术J2EE,设计搭建双管理权限。系统的总体技术框架为JSP+Servlet+JavaBean。前台浏览器浏览,后台服务器直接连接SQL Server2000数据库。通过各客户端计算机接入会员积分的各项事务,实现积分管理的规范性和安全性。同时作为会员信息管理系统的组成部分,将来可以有很好的扩展性和通用性。
2022年中兴1.5.0 内附教程 应该是中兴22年下半年之前的光猫,自己看教程。
matlab仿真程序,智能微电网PSO优化算法
iOS Object-c 实现界面横竖屏切换源代码