??xml version="1.0" encoding="utf-8" standalone="yes"?>麻豆网在线观看,精品国产乱码久久久久久88av ,午夜国产欧美理论在线播放http://www.aygfsteel.com/javasunnyboy/category/6075.htmlzh-cnWed, 28 Feb 2007 02:05:42 GMTWed, 28 Feb 2007 02:05:42 GMT60TinyMCEhttp://www.aygfsteel.com/javasunnyboy/articles/73024.html大狗刀刀大狗刀刀Sat, 30 Sep 2006 06:29:00 GMThttp://www.aygfsteel.com/javasunnyboy/articles/73024.htmlhttp://www.aygfsteel.com/javasunnyboy/comments/73024.htmlhttp://www.aygfsteel.com/javasunnyboy/articles/73024.html#Feedback0http://www.aygfsteel.com/javasunnyboy/comments/commentRss/73024.htmlhttp://www.aygfsteel.com/javasunnyboy/services/trackbacks/73024.htmlTinyMCEQ见 http://tinymce.moxiecode.com/index.php

感觉比FCKEditor要好一些。可以考虑使用q个东西来做些事情?:D
但下载后发现QTinyMCEq不支持上传囄及管理。不如FCKEditor?/p>

大狗刀刀 2006-09-30 14:29 发表评论
]]>
Struts 下的树型菜单http://www.aygfsteel.com/javasunnyboy/articles/50397.html大狗刀刀大狗刀刀Sun, 04 Jun 2006 23:13:00 GMThttp://www.aygfsteel.com/javasunnyboy/articles/50397.htmlhttp://www.aygfsteel.com/javasunnyboy/comments/50397.htmlhttp://www.aygfsteel.com/javasunnyboy/articles/50397.html#Feedback0http://www.aygfsteel.com/javasunnyboy/comments/commentRss/50397.htmlhttp://www.aygfsteel.com/javasunnyboy/services/trackbacks/50397.html/******************************************************************************
 * 标题Q在struts里的实现dtree通用树型l构
 * 作者:蔡毅Qcaiyi0903@hotmail.comQ?br /> * 旉Q?004q?2?7?br /> * 备注Q{贴请保留q段Q谢谢!
 *****************************************************************************/

在这里简单介l一下该树型l构的做法:
1 下蝲dtree.js文g和dree.css样式表文件以及一些树相关的图片。这里提供附件给大家下蝲

2 我们看看树的主要字段Q?br />
IDQ主?br />PIDQ父cID
NAMEQ结点名U?br />URLQ结点连接的URL
TITLEQ类似ALT的一U结ҎC内?br />TARGETQ连接打开的目?br />ICONQ图片文Ӟ没有指定用默认的囄
ICONOPENQ打开l点后的囄文gQ没有指定将使用默认的图?br />OPENQbooleancdQ结Ҏ否打开?br />上面是用来显C的每个字段的含义,大家应该能看出其通用性了?br />
3 下面来看看树的组成文Ӟ

<div class="dtree">
<%--接收从Action里传q来的集合,q个集合是封装了上面的一些属?-%>
<logic:present name="treeCol">
<script type="text/javascript">
  d = new dTree('d');
<logic:iterate id="treeList" name="treeCol">
<%--配合struts标签来添加树的结?-%>
        d.add(<bean:write name="treeList" property="id"/>,<bean:write name="treeList" property="superId"/>,'<bean:write name="treeList" property="name"/>','http://www.urlHere.com','','mainFrame','','');
</logic:iterate>
<%--在页面生成树l构--%>
  document.write(d);
</logic:present>
</script>
</div>
<%----%>

只需要在action里组装需要显C的l点集合Q配合P代标{֒卛_实现动态树的生成了。?br />另外Q调用d.openAll();可以打开所有结炏V?br />调用d.closeAll();可以关闭所有结炏V?br />调用d.openTo(id);可以打开指定ID的结?/p>

大家有什么疑问可以在评论中说明!Q?/p>

大狗刀刀 2006-06-05 07:13 发表评论
]]>
Tomcat 5.0环境下上传的.xlsQ?rar文g在下载时直接以浏览器打开q的问题解?/title><link>http://www.aygfsteel.com/javasunnyboy/articles/50092.html</link><dc:creator>大狗刀刀</dc:creator><author>大狗刀刀</author><pubDate>Sat, 03 Jun 2006 00:43:00 GMT</pubDate><guid>http://www.aygfsteel.com/javasunnyboy/articles/50092.html</guid><wfw:comment>http://www.aygfsteel.com/javasunnyboy/comments/50092.html</wfw:comment><comments>http://www.aygfsteel.com/javasunnyboy/articles/50092.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/javasunnyboy/comments/commentRss/50092.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/javasunnyboy/services/trackbacks/50092.html</trackback:ping><description><![CDATA[?Tomcat 5.0_HOME/conf/web.xml文g中 d以下代码<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mime</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">mapping</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">extension</span><span style="COLOR: #000000">></span><span style="COLOR: #000000">xls</span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">extension</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">mime</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">type</span><span style="COLOR: #000000">></span><span style="COLOR: #000000">application</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">xls</span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mime</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">type</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">mime</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">mapping</span><span style="COLOR: #000000">></span></div><img src ="http://www.aygfsteel.com/javasunnyboy/aggbug/50092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/javasunnyboy/" target="_blank">大狗刀刀</a> 2006-06-03 08:43 <a href="http://www.aygfsteel.com/javasunnyboy/articles/50092.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>昨天查资料时看到了一好文章Q对我的目很有帮助http://www.aygfsteel.com/javasunnyboy/articles/47565.html大狗刀刀大狗刀刀Mon, 22 May 2006 22:40:00 GMThttp://www.aygfsteel.com/javasunnyboy/articles/47565.htmlhttp://www.aygfsteel.com/javasunnyboy/comments/47565.htmlhttp://www.aygfsteel.com/javasunnyboy/articles/47565.html#Feedback0http://www.aygfsteel.com/javasunnyboy/comments/commentRss/47565.htmlhttp://www.aygfsteel.com/javasunnyboy/services/trackbacks/47565.html 以下引用?a 初燃之炎.伏翼之风的Blog

用WEB端做SOCKET服务?如Resin)
很久没上来留a了,q一阵子qx也是偶尔惌vq里Q这ơ心血来潮想留点什么,也希望高手提供一些更先进的编E思想。这ơ就谈SOCKETQ这里这斚w的介l还是比较多的,大多都是C/Sl构的ؓ服务端,但是l合其它的应用上差些,必须单独启动服务Q如果扩展到B/Sl构有很多优势(其实也是个h感觉)......

我就把一些简单结构提出来Q供大家参考和指教:

l构Q?/font>
Message.java 消息c,用来l装通讯消息

MessageServlet.java 用servlet调用下类Qؓ了和Resin{同时启?
MessageServer.java 启动装c,指定监听端口

ServerListener.java 服务端管理类Qv分发、处理等用?
ClientListener.java 每个客户端的监听U程
MessageListener.java 每条消息的线E,处理完则关闭
至于Message.javaQ我׃把我的文件全hQ用个最单的代替吧,大家也可以提供自qxQ我自己的那个针Ҏ太强,适用性太低,参考下cd(字符串处理比较直观,用byte比较E_):
package net.fool;

import java.io.Serializable;
public class Message implements Serializable{
//信息cd
//private MessageType type = MessageType.HALFBAKED; //大家各抒p?
//信息内容
private String content = "";
//构造函?
public Message(String mess){
this.content = mess;
}
public String toString(){
return this.content;
}
}
至于MessageServlet.java
只是一个在initҎ里启动服务,在destroy中关闭服务而已
比如对resin来说只要在某一个配|应用的web.xmld
<servlet>
<servlet-name>mss</servlet-name>
<servlet-class>net.fool.MessageServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
q一D|字,可以在resin启动时启动该socket服务?

package net.fool;

import javax.servlet.*;
import javax.servlet.http.*;

public class MessageServlet extends HttpServlet{
public void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException, java.io.IOException{
}
public void doPost(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException, java.io.IOException{
}

/**
* <p>初始化servlet.
*
* @param cfg Servlet configuration information
*/
public void init(ServletConfig cfg)
throws ServletException{
super.init(cfg);
MessageServer mb = MessageServer.Connect(5678);
}

/**
* <p>清除servlet.
*/
public void destroy(){
super.destroy();
MessageServer.DisConnect();
}
}
至于MessageServer.java,
则是创徏一个ServerSocket,q启动监听线E,然后客户端连接上可以做后面的事情了

package net.fool;

import java.util.*;
import java.io.*;
import java.net.*;
import java.nio.*;

public class MessageServer{
private static int messagePort = 5678;

private static MessageServer mess;
private static ServerSocket server;
private static ServerListener serverListener;

private MessageServer(){
try{
server = new ServerSocket(messagePort);
System.out.println("MessageServer listening to *:"+String.valueOf(messagePort)+"");
serverListener = new ServerListener(server);
serverListener.start();
}catch(Exception e){
e.printStackTrace();
}
}

public synchronized static MessageServer Connect(int port){
MessageServer.messagePort = port;
if (mess == null) {
mess = new MessageServer();
}else if(server.getLocalPort()!=port){
DisConnect();
mess = new MessageServer();
}
return mess;
}

public synchronized static MessageServer Connect(){
return Connect(messagePort);
}

public synchronized static void DisConnect(){
try{
mess = null;
System.out.println("close MessageServer for port:"+String.valueOf(server.getLocalPort())+"");
serverListener = null;
server.close();
}catch(Exception e){}
}
}
ServerListener.java,
则是一个监听线E,也是一个主服务U程

package net.fool;

import java.util.*;
import java.io.*;
import java.net.*;

public class ServerListener extends Thread{
private ServerSocket serverSocket;

private static Hashtable clients = new Hashtable();
//对应每个客户端的登陆信息
private static Hashtable messages = new Hashtable();
//未处理消息集?

private static Socket clientSocket; //多客L

public ServerListener(ServerSocket serverSocket) throws Exception{
super("ServerListener");
this.serverSocket=serverSocket;
}

public void run(){
try{
while(true){
clientSocket=serverSocket.accept();

Response(clientSocket);
}//while
}catch(Exception e){System.out.println(e);}
}//run

public static void Response(Socket client) throws Exception{
try{
ClientListener clistener = new ClientListener(client,clients);
clistener.start();
}catch(Exception e){
System.out.println("q接? +client.getInetAddress().getHostAddress()+"p|!");
}
}

//d消息Q可从B/Sl构中传入需发布的消?
public static boolean addMessage(Message mess) throws Exception{
boolean flag = false;
synchronized(messages){
try{
messages.put(mess,"newMessage"); //待扩?

MessageListener mlistener = new MessageListener(mess,messages);
mlistener.start();
}catch(Exception e){
System.out.println("发布消息" +mess.toString()+"p|!");
return flag;
}
}

flag = true;
return flag;
}

//Ҏ消息cd处理消息 消息分发
//q里只是发送到所有客L
public synchronized static boolean releaseMessage(Message mess) throws Exception{
Enumeration enumeration = clients.keys();
for(;enumeration.hasMoreElements();){
try{
Socket soc = (Socket)enumeration.nextElement();
DataOutputStream dos = new DataOutputStream(soc.getOutputStream());
dos.write(mess.toString().getBytes("GBK"));
}catch(Exception e){}
}
return true;
}
}//class
ClientListener.java,
则是每一个客L监听U程Q得到客L发送的消息,整理h,把相x息丢l主服务分发消息

package net.fool;

import java.util.*;
import java.io.*;
import java.net.*;

public class ClientListener extends Thread{
private static Hashtable clients;
private Message userMessage;
private Socket socket;

private BufferedReader reader;
private boolean listening = true;

public ClientListener(Socket socket,Hashtable clients) throws Exception{
super("ClientListener");
this.clients=clients;
this.socket=socket;

this.reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}

public void run(){
try {
listener();
}catch(Exception e) {
e.printStackTrace();
}finally{
synchronized(clients){
//String ss_c = ("断开q接:"+socket);
clients.remove(socket);
try{
socket.close();
reader.close();
//ServerListener.releaseMessage(某h下线消息);
}catch(Exception ex){}
//System.out.println(ss_c);
}
}
}

private void listener() throws Exception{
synchronized(clients){
clients.put(socket,userMessage);
} //扩展后应攑֜下面的@环内,当ؓ某h的上U消息时才执行这?

while(listening) {

//d客户端发送来的消?
String rLine = reader.readLine();
if(rLine==null||rLine.equals("\r\n")) break;;
Message me = new Message(rLine);

//当ؓ某h的上U消息时 synchronized......

ServerListener.addMessage(me);
}
}
}//class
MessageListener.java,
则是每一条消息监听线E,只是让消息堆Uv来慢慢处?

package net.fool;

import java.util.*;
import java.io.*;
import java.net.*;

public class MessageListener extends Thread{
private static Hashtable messages;
private Message message;
private boolean listening = true;

public MessageListener(Message message,Hashtable messages) throws Exception{
super("MessageListener");
this.messages=messages;
this.message=message;
}

public void run(){
try {
listener();
}catch(Exception e) {
e.printStackTrace();
}finally{
synchronized(messages){
messages.remove(message);
try{
message = null;
}catch(Exception ex){}
}
}
}

private void listener() throws Exception{
while(listening){

//本条消息的处?
//包括x和等待,存储和丢失,个h和群发等{判断,待扩充Messagec?
try{
listening = !ServerListener.releaseMessage(message);
}catch(Exception e){e.printStackTrace();}
}
}

}//class


大狗刀刀 2006-05-23 06:40 发表评论
]]>
Struts中应量避免使用session.setAttribute()http://www.aygfsteel.com/javasunnyboy/articles/40545.html大狗刀刀大狗刀刀Tue, 11 Apr 2006 23:07:00 GMThttp://www.aygfsteel.com/javasunnyboy/articles/40545.htmlhttp://www.aygfsteel.com/javasunnyboy/comments/40545.htmlhttp://www.aygfsteel.com/javasunnyboy/articles/40545.html#Feedback0http://www.aygfsteel.com/javasunnyboy/comments/commentRss/40545.htmlhttp://www.aygfsteel.com/javasunnyboy/services/trackbacks/40545.html原因Qsession会占服务器端的内存,q且如果理不当Q会造成不同jsp面的数据干扰?img src ="http://www.aygfsteel.com/javasunnyboy/aggbug/40545.html" width = "1" height = "1" />

大狗刀刀 2006-04-12 07:07 发表评论
]]>
提升JSP应用E序的七个方?/title><link>http://www.aygfsteel.com/javasunnyboy/articles/40427.html</link><dc:creator>大狗刀刀</dc:creator><author>大狗刀刀</author><pubDate>Tue, 11 Apr 2006 04:14:00 GMT</pubDate><guid>http://www.aygfsteel.com/javasunnyboy/articles/40427.html</guid><wfw:comment>http://www.aygfsteel.com/javasunnyboy/comments/40427.html</wfw:comment><comments>http://www.aygfsteel.com/javasunnyboy/articles/40427.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/javasunnyboy/comments/commentRss/40427.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/javasunnyboy/services/trackbacks/40427.html</trackback:ping><description><![CDATA[ <span id="wmqeeuq" class="checkoutHeader"> <strong>本文的目的是通过对servlet和JSP的一些调优技术来极大地提高你的应用程序的性能Qƈ因此提升整个J2EE应用的性能?/strong> </span> <div id="wmqeeuq" class="content"> <p>    你时常被客户抱怨JSP面响应速度很慢吗?你想q当客户讉Kơ数剧增Ӟ你的WEB应用能承受日益增加的讉K量吗Q本文讲qC调整JSP和servlet的一些非常实用的ҎQ它可你的servlet和JSP面响应更快Q扩展性更强。而且在用h增加的情况下Q系l负载会呈现出^滑上长的势。在本文中,我将通过一些实际例子和配置Ҏ使得你的应用E序的性能有出人意料的提升?<br />  其中Q某些调优技术是在你的编E工作中实现的。而另一些技术是与应用服务器的配|相关的。在本文中,我们详l地描述怎样通过调整servlet和JSP面Q来提高你的应用E序的M性能。在阅读本文之前Q假设你有基本的servlet和JSP的知识?</p> <p>  Ҏ一Q在servlet的init()Ҏ中缓存数?</p> <p>  当应用服务器初始化servlet实例之后Qؓ客户端请求提供服务之前,它会调用q个servlet的init()Ҏ。在一个servlet的生命周期中Qinit()Ҏ只会被调用一ơ。通过在init()Ҏ中缓存一些静态的数据或完成一些只需要执行一ơ的、耗时的操作,可大大地提高系l性能?</p> <p>  例如Q通过在init()Ҏ中徏立一个JDBCq接池是一个最佳例子,假设我们是用jdbc2.0的DataSource接口来取得数据库q接Q在通常的情况下Q我们需要通过JNDI来取得具体的数据源。我们可以想象在一个具体的应用中,如果每次SQLh都要执行一ơJNDI查询的话Q那pȝ性能会急剧下降。解x法是如下代码Q它通过~存DataSourceQ得下一ơSQL调用时仍然可以l利用它Q?</p> <p>public class ControllerServlet extends HttpServlet <br />{ <br /> private javax.sql.DataSource testDS = null; <br /> public void init(ServletConfig config) throws ServletException <br /> { <br />  super.init(config); <br />  Context ctx = null; <br />  try <br />  { <br />   ctx = new InitialContext(); <br />   testDS = (javax.sql.DataSource)ctx.lookup("jdbc/testDS"); <br />  } <br />  catch(NamingException ne) <br />  { <br />   ne.printStackTrace(); <br />  } <br />  catch(Exception e) <br />  { <br />   e.printStackTrace(); <br />  } <br /> } </p> <p> public javax.sql.DataSource getTestDS() <br /> { <br />  return testDS; <br /> } <br /> ... <br /> ... <br />} </p> <p>  Ҏ 2:止servlet和JSP 自动重蝲(auto-reloading) </p> <p>  Servlet/JSP提供了一个实用的技术,卌动重载技术,它ؓ开发h员提供了一个好的开发环境,当你改变servlet和JSP面后而不必重启应用服务器。然而,q种技术在产品q行阶段对系l的资源是一个极大的损耗,因ؓ它会lJSP引擎的类装蝲?classloader)带来极大的负担。因此关闭自动重载功能对pȝ性能的提升是一个极大的帮助?</p> <p>  Ҏ 3: 不要滥用HttpSession </p> <p>  在很多应用中Q我们的E序需要保持客L的状态,以便面之间可以怺联系。但不幸的是׃HTTPh天生无状态性,从而无法保存客L的状态。因此一般的应用服务器都提供了session来保存客L状态。在JSP应用服务器中Q是通过HttpSession对像来实现session的功能的Q但在方便的同时Q它也给pȝ带来了不的负担。因为每当你获得或更新sessionӞpȝ者要对它q行Ҏ的序列化操作。你可以通过对HttpSession的以下几U处理方式来提升pȝ的性能?</p> <p>  如果没有必要Q就应该关闭JSP面中对HttpSession的缺省设|?如果你没有明指定的话,每个JSP面都会~省地创Z个HttpSession。如果你的JSP中不需要用session的话Q那可以通过如下的JSP面指示W来止它: </p> <p>Q?@ page session="false"%Q?</p> <p> <br />  不要在HttpSession中存攑֤的数据对像:如果你在HttpSession中存攑֤的数据对像的话,每当对它q行dӞ应用服务器都对其进行序列化Q从而增加了pȝ的额外负担。你在HttpSession中存攄数据对像大Q那pȝ的性能׃降得快?</p> <p>  当你不需要HttpSessionӞ快地释攑֮Q当你不再需要sessionӞ你可以通过调用HttpSession.invalidate()Ҏ来释攑֮。尽量将session的超时时间设得短一点:在JSP应用服务器中Q有一个缺省的session的超时时间。当客户在这个时间之后没有进行Q何操作的话,pȝ会将相关的session自动从内存中释放。超时时间设得越大,pȝ的性能׃低Q因此最好的Ҏ是量使得它的g持在一个较低的水^?</p> <p>  Ҏ 4: 页面输行压~?</p> <p>  压羃是解x据冗余的一个好的方法,特别是在|络带宽不够发达的今天。有的浏览器支持gzip(GNU zip)q行来对HTML文gq行压羃Q这U方法可以戏剧性地减少HTML文g的下载时间。因此,如果你将servlet或JSP面生成的HTML面q行压羃的话Q那用户׃觉得面览速度会非常快。但不幸的是Q不是所有的览器都支持gzip压羃Q但你可以通过在你的程序中查客L览器是否支持它。下面就是关于这U方法实现的一个代码片D: </p> <p>public void doGet(HttpServletRequest request, <br />HttpServletResponse response) <br />throws IOException, ServletException <br />{ <br /> OutputStream out = null <br /> String encoding = request.getHeader("Accept-Encoding"); <br /> if (encoding != null && encoding.indexOf("gzip") != -1) <br /> { <br />  request.setHeader("Content-Encoding" , "gzip"); <br />  out = new GZIPOutputStream(request.getOutputStream()); <br /> } <br /> else if (encoding != null && encoding.indexOf("compress") != -1) <br /> { <br />  request.setHeader("Content-Encoding" , "compress"); <br />  out = new ZIPOutputStream(request.getOutputStream()); <br /> } <br /> else <br /> { <br />  out = request.getOutputStream(); <br /> } <br /> ... <br /> ... <br />} </p> <p>  Ҏ 5: 使用U程?</p> <p>  应用服务器缺省地为每个不同的客户端请求创Z个线E进行处理,qؓ它们分派service()ҎQ当service()Ҏ调用完成后,与之相应的线E也随之撤消。由于创建和撤消U程会耗费一定的pȝ资源Q这U缺省模式降低了pȝ的性能。但所q的是我们可以通过创徏一个线E池来改变这U状c?</p> <p>  另外Q我们还要ؓq个U程池设|一个最线E数和一个最大线E数。在应用服务器启动时Q它会创建数量等于最线E数的一个线E池Q当客户有请求时Q相应地从池从取Z个线E来q行处理Q当处理完成后,再将U程重新攑օ到池中。如果池中的U程不够地话Q系l会自动地增加池中线E的数量Q但总量不能过最大线E数。通过使用U程池,当客Lh急剧增加Ӟpȝ的负载就会呈现的qx的上升曲U,从而提高的pȝ的可伸羃性?/p> <p>  Ҏ 6: 选择正确的页面包含机?</p> <p>  在JSP中有两种Ҏ可以用来包含另一个页面: </p> <p>1、用include指示W?</p> <p>Q?@ includee file=”test.jsp?%Q?</p> <p> <br />2、用jsp指示W?</p> <p>Qjsp:includee page=”test.jsp?flush=”true?Q?</p> <p> <br />  在实际中发现Q如果用第一U方法的话,可以使得pȝ性能更高?</p> <p>  Ҏ 7:正确地确定javabean的生命周?</p> <p>  JSP的一个强大的地方是对javabean的支持。通过在JSP面中用<jsp:useBeanQ标{,可以javabean直接插入C个JSP面中。它的用方法如下: </p> <p>Qjsp:useBean id="name" scope="page|request|session|application" class= <br />"package.className" type="typeName"Q?<br />Q?jsp:useBeanQ?</p> <p> <br />  其中scope属性指Zq个bean的生命周期。缺省的生命周期为page。如果你没有正确地选择bean的生命周期的话,它将影响pȝ的性能?</p> <p>  举例来说Q如果你只想在一ơ请求中使用某个beanQ但你却这个bean的生命周期设|成了sessionQ那当这ơ请求结束后Q这个bean仍然保留在内存中,除非session时或用户关闭浏览器。这样会耗费一定的内存Qƈ无谓的增加了JVM垃圾攉器的工作量。因此ؓbean讄正确的生命周期,q在bean的命结束后快地清理它们,会用系l性能有一个提高?</p> <p>  其它一些有用的Ҏ </p> <p>  1、在字符串连接操作中量不用“+”操作符Q在java~程中,我们常常使用“+”操作符来将几个字符串连接v来,但你或许从来没有惛_q它居然会对pȝ性能造成影响吧?׃字符串是帔RQ因此JVM会生一些时的对像。你使用的“+”越多,生成的时对像就多Q这样也会给pȝ性能带来一些媄响。解决的Ҏ是用StringBuffer对像来代曎쀜+”操作符?</p> <p>  2、避免用System.out.println()ҎQ由于System.out.println()是一U同步调用,卛_调用它时Q磁盘I/O操作必须{待它的完成Q因此我们要量避免对它的调用。但我们在调试程序时它又是一个必不可的方便工具Qؓ了解册个矛盾,我徏议你最好用Log4j工具(http://Jakarta.apache.org )Q它既可以方便调试,而不会生System.out.println()q样的方法?</p> <p>  3、ServletOutputStream ?PrintWriter的权衡:使用PrintWriter可能会带来一些小的开销Q因为它所有的原始输出都{换ؓ字符来输出Q因此如果用它来作为页面输出的话,pȝ要负担一个{换过E。而用ServletOutputStream作ؓ面输出的话׃存在一个问题,但它是以二进制进行输出的。因此在实际应用中要权衡两者的利弊?</p> <p>  ȝ </p> <p>  本文的目的是通过对servlet和JSP的一些调优技术来极大地提高你的应用程序的性能Qƈ因此提升整个J2EE应用的性能。通过q些调优技术,你可以发现其实ƈ不是某种技术^収ͼ比如J2EE?NET之争Q决定了你的应用E序的性能Q重要是你要对这U^台有一个较为深入的了解Q这样你才能从根本上对自q应用E序做一个优化?/p> <p> </p> </div> <img src ="http://www.aygfsteel.com/javasunnyboy/aggbug/40427.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/javasunnyboy/" target="_blank">大狗刀刀</a> 2006-04-11 12:14 <a href="http://www.aygfsteel.com/javasunnyboy/articles/40427.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java获取路径几种途径http://www.aygfsteel.com/javasunnyboy/articles/30235.html大狗刀刀大狗刀刀Fri, 10 Feb 2006 15:25:00 GMThttp://www.aygfsteel.com/javasunnyboy/articles/30235.htmlhttp://www.aygfsteel.com/javasunnyboy/comments/30235.htmlhttp://www.aygfsteel.com/javasunnyboy/articles/30235.html#Feedback0http://www.aygfsteel.com/javasunnyboy/comments/commentRss/30235.htmlhttp://www.aygfsteel.com/javasunnyboy/services/trackbacks/30235.html在写javaE序时不可避免要获取文g的\?..ȝ一?遗漏的随时补?/DIV>
 
1.可以在servlet的initҎ?/DIV>
String path = getServletContext().getRealPath("/");
q将获取web目的全路径
例如 :E:\eclipseM9\workspace\tree\
tree是我web目的根目录
 
2.你也可以随时在Q意的class里调?/DIV>
this.getClass().getClassLoader().getResource("/").getPath();
q将获取 到classes目录的全路径
例如 : E:\eclipseM9/workspace/tree/WEB-INF/classes/
 
q个Ҏ也可以不在web环境里确定\?比较好用
 
3.request.getContextPath();
获得web根的上下文环?/DIV>
?/tree
tree是我的web目的root context


大狗刀刀 2006-02-10 23:25 发表评论
]]>使用bean:write时输出的l果是HTML源代码而不是HTML效果http://www.aygfsteel.com/javasunnyboy/articles/24867.html大狗刀刀大狗刀刀Tue, 20 Dec 2005 13:09:00 GMThttp://www.aygfsteel.com/javasunnyboy/articles/24867.htmlhttp://www.aygfsteel.com/javasunnyboy/comments/24867.htmlhttp://www.aygfsteel.com/javasunnyboy/articles/24867.html#Feedback0http://www.aygfsteel.com/javasunnyboy/comments/commentRss/24867.htmlhttp://www.aygfsteel.com/javasunnyboy/services/trackbacks/24867.html在bean:write中输出时的filter 讄错误
解决办法:
在bean:write中输出时的filter 讄应ؓfalse
例如:
<bean:write name="news" property="contentBody" filter="false" />
如果讄?BR><bean:write name="news" property="contentBody" filter="true" />
那么׃把contentBody 的html代码转化
比如如果contentBody中含?lt;p> l果׃变成?amp;lt;p&gt


大狗刀刀 2005-12-20 21:09 发表评论
]]>
关于JSP中文问题的一点心得?/title><link>http://www.aygfsteel.com/javasunnyboy/articles/24318.html</link><dc:creator>大狗刀刀</dc:creator><author>大狗刀刀</author><pubDate>Fri, 16 Dec 2005 23:47:00 GMT</pubDate><guid>http://www.aygfsteel.com/javasunnyboy/articles/24318.html</guid><wfw:comment>http://www.aygfsteel.com/javasunnyboy/comments/24318.html</wfw:comment><comments>http://www.aygfsteel.com/javasunnyboy/articles/24318.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/javasunnyboy/comments/commentRss/24318.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/javasunnyboy/services/trackbacks/24318.html</trackback:ping><description><![CDATA[<P>        原来一~程时一直用GBK作ؓ默认~码Q也很少出现中文问题。但最q在使用Eclipseq行~程Q将默认的编码方式变成了UTFQ?。这一改变也生了新的问题。当表单使用Post方式提交Ӟ可以使用String myParam=new String(request.getParameter("myParam").getBytes("ISO-8859-1"),"UTF-8");的语句来d。但当表单用Get方式提交Ӟ比如Q?myUrl.jsp?myParam=中文"q样的方式如果myParam处的中文Cؓ单数时比如“中国h”,使用上面的方法读出的最后一个字Zؕ码。这个问题困C我一天,今天早晨l于在网上找C解决办法?BR>  在提交之前可以用java.net.URLEncoder.encode();Ҏ先将中文转换成UTFQ?格式Q就可以解决了。例如:myUrl.jsp?myParam=<%java.net.URLEncoder.encode(myVar,"UTF-8")%></P><img src ="http://www.aygfsteel.com/javasunnyboy/aggbug/24318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/javasunnyboy/" target="_blank">大狗刀刀</a> 2005-12-17 07:47 <a href="http://www.aygfsteel.com/javasunnyboy/articles/24318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ͬ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ղ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">޳</a>| <a href="http://" target="_blank">̶</a>| <a href="http://" target="_blank">ڶ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">±</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ij</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank">ڶ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ȫ</a>| <a href="http://" target="_blank">ײ</a>| <a href="http://" target="_blank">ֺ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">üɽ</a>| <a href="http://" target="_blank">ī</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>