??xml version="1.0" encoding="utf-8" standalone="yes"?>奇米色欧美一区二区三区,国产91一区二区三区,黄色一区二区三区http://www.aygfsteel.com/liuyz2006/category/50544.htmlzh-cnSat, 06 Jul 2013 18:08:58 GMTSat, 06 Jul 2013 18:08:58 GMT60Servlet生命周期与工作原?转)http://www.aygfsteel.com/liuyz2006/articles/401094.html阿?/dc:creator>阿?/author>Sun, 30 Jun 2013 15:54:00 GMThttp://www.aygfsteel.com/liuyz2006/articles/401094.htmlServlet生命周期与工作原?/span>

Servlet生命周期分ؓ三个阶段Q?/p>

  1Q初始化阶段  调用init()Ҏ

  2Q响应客戯求阶Dc 调用service()Ҏ

  3Q终止阶Dc 调用destroy()Ҏ

 

Servlet初始化阶D:

  在下列时刻Servlet容器装蝲ServletQ?/p>

    1QServlet容器启动时自动装载某些ServletQ实现它只需要在web.XML文g中的<Servlet></Servlet>之间d如下代码Q?/p>

<loadon-startup>1</loadon-startup>

    2Q在Servlet容器启动后,客户首次向Servlet发送请?/p>

    3QServletcL件被更新后,重新装蝲Servlet

  Servlet被装载后QServlet容器创徏一个Servlet实例q且调用Servlet的init()Ҏq行初始化。在Servlet的整个生命周期内Qinit()Ҏ只被调用一ơ?/p>

    

Servlet工作原理Q?/p>

  首先单解释一下Servlet接收和响应客戯求的q程Q首先客户发送一个请求,Servlet是调用service()Ҏ对请求进行响应的Q通过源代码可见,service()Ҏ中对h的方式进行了匚wQ选择调用doGet,doPost{这些方法,然后再进入对应的Ҏ中调用逻辑层的ҎQ实现对客户的响应。在Servlet接口和GenericServlet中是没有doGet,doPost{等q些Ҏ的,HttpServlet中定义了q些ҎQ但是都是返回error信息Q所以,我们每次定义一个Servlet的时候,都必d现doGet或doPost{这些方法?/p>

  每一个自定义的Servlet都必d现Servlet的接口,Servlet接口中定义了五个ҎQ其中比较重要的三个Ҏ涉及到Servlet的生命周期,分别是上文提到的init(),service(),destroy()Ҏ。GenericServlet是一个通用的,不特定于M协议的Servlet,它实CServlet接口。而HttpServletl承于GenericServletQ因此HttpServlet也实CServlet接口。所以我们定义Servlet的时候只需要承HttpServlet卛_?/p>

  Servlet接口和GenericServlet是不特定于Q何协议的Q而HttpServlet是特定于HTTP协议的类Q所以HttpServlet中实Cservice()ҎQƈ请求ServletRequest,ServletResponse{为HttpRequest和HttpResponse?/p>

public void service(ServletRequest req,ServletResponse res) 
  throws ServletException,IOException
{
      HttpRequest request;
      HttpResponse response;
  
     try
     {
         req = (HttpRequest)request;
         res = (HttpResponse)response;
      }catch(ClassCastException e)
      {
         throw new ServletException("non-HTTP request response"); 
      }
      service(request,response);
}

    代码的最后调用了HTTPServlet自己的service(request,response)ҎQ然后根据请求去调用对应的doXXXҎQ因为HttpServlet中的doXXXҎ都是q回错误信息Q?/p>

protected void doGet(HttpServletRequest res,HttpServletResponse resp)
  throws ServletException,IOException
{
   String protocol = req.getProtocol();
   String msg = IStrings.getString("http.method_get_not_supported");
   if(protocol.equals("1.1"))
   {
      resp.sendError(HttpServletResponse.SC.METHOD.NOT.ALLOWED,msg);
    }
   esle
    {
      resp.sendError(HttpServletResponse.SC_BAD_REQUEST,msg);
    }
}

所以需要我们在自定义的Servlet中overrideq些ҎQ?/p>

 

    源码面前Q了无秘密!

---------------------------------------------------------------------------------------------------------------------------------

Servlet响应h阶段Q?/span>

  对于用户到达Servlet的请求,Servlet容器会创?span style="color: #ff0000">特定于这个请求的ServletRequest对象和ServletResponse对象Q然后调用Servlet的serviceҎ。serviceҎ从ServletRequest对象获得客户h信息Q处理该hQƈ通过ServletResponse对象向客戯回响应信息?/span>

  对于Tomcat来说Q它会将传递过来的参数攑֜一个Hashtable中,该Hashtable的定义是Q?/span>

 

private Hashtable<String String[]> paramHashStringArray = new Hashtable<String String[]>();

 

  q是一个String-->String[]的键值映?/p>

  HashMapU程不安全的QHashtableU程安全?/p>

-----------------------------------------------------------------------------------------------------------------------------------

Servletl止阶段Q?/p>

  当WEB应用被终止,或Servlet容器l止q行Q或Servlet容器重新装蝲Servlet新实例时QServlet容器会先调用Servlet的destroy()ҎQ在destroy()Ҏ中可以释放掉Servlet所占用的资源?/p>

 

-----------------------------------------------------------------------------------------------------------------------------------

Servlet何时被创建:

  1Q默认情况下Q当WEB客户W一ơ请求访问某个Servlet的时候,WEB容器创个Servlet的实例?/span>

  2Q当web.xml文g中如?lt;servlet>元素中指定了<load-on-startup>子元素时QServlet容器在启动web服务器时Q将按照序创徏q初始化Servlet对象?/span>

  注意Q在web.xml文g中,某些Servlet只有<serlvet>元素Q没?lt;servlet-mapping>元素Q这h们无法通过url的方式访问这些ServletQ这UServlet通常会在<servlet>元素中配|一?lt;load-on-startup>子元素,让容器在启动的时候自动加载这些Servletq调用init()ҎQ完成一些全局性的初始化工作?/span>


Web应用何时被启动:

  1Q当Servlet容器启动的时候,所有的Web应用都会被启?/span>

  2Q控制器启动web应用

-----------------------------------------------------------------------------------------------------------------------------------------------

Servlet与JSP的比较:

  有许多相g处,都可以生成动态网c?/span>

  JSP的优Ҏ擅长于网制作,生成动态页面比较直观,~点是不Ҏ跟踪与排错?/span>

  Servlet是纯Java语言Q擅长于处理程和业务逻辑Q缺Ҏ生成动态网不直观?br />



]]>
jsp教程Q深入分?JSP/Serverlet中的~码问题(转)http://www.aygfsteel.com/liuyz2006/articles/401093.html阿?/dc:creator>阿?/author>Sun, 30 Jun 2013 13:32:00 GMThttp://www.aygfsteel.com/liuyz2006/articles/401093.html

jsp教程Q深入分?JSP/Serverlet中的~码问题

旉:2012-12-02 10:25来源:我爱IT技术网 作?52ij 点击: 158 ?/div>
(1) jsp面中的pageEncoding: 指定jsp~写时所用的~码Q源文g~码Q?如果你用的是win98或winme的记事本来编写的jsp, 则一定是常用的big5或gb2312; 如果用的是win2000或winXP的记事本Ӟ 保存时就可以选择不同的编码,包括ANSI(BIG5/GB2312)、UTF-8或Unic

 (1)  jsp面中的pageEncoding:   指定jsp~写时所用的~码Q源文g~码Q?/p>

JSP/Serverlet中的~码问题

        如果你用的是win98或winme的记事本来编写的jsp, 则一定是常用的big5或gb2312;  如果用的是win2000或winXP的记事本Ӟ 保存时就可以选择不同的编码,包括ANSI(BIG5/GB2312)、UTF-8或Unicode(utf-16)
(2) jsp面中的contentType:   它指定的是jsp面最l在客户端浏览器呈现时所见到的内容的~码。就是mozilla的charactrer encoding或是IE6的encoding{?/p>

Jsp从源文g到最l用L到的html文gQ会大致l历如下阶段:
①  所~写的源文g的保? ׃计算机只能保存二q制形式的内容,而我们所写的都是字符串Ş式的内容Q所以这里进行的W一个阶D即是由字符串到字节的编码过E,q个阶段所采用的就是PageEnco
ding所指定的编? 如这时指定的是GBK, 则会一个汉字拆分成二个字节来保存,如果用的是utf-8则会用三个字节来保存。[jsp面的pageEncoding的默认值是iso8859-1]
② 本阶D|?jsp文g中读取二q制信息q翻译成.java文g的过E?q一q程由服务器如tomcat在运?br />时时完成), 服务器读取出二进制信息(字节Q? 然后用其保存时所使用的字W编码来重新q行解码Q将其还原成原始字串.   q时pȝ再用UTF-8对字W串重新q行~码Qƈ其得到的字节信息写入到x.java文g?q与src中的.java文g不同Qsrc中的.java文g采用的是q_使用的字W集Q而这里统一都用UTF-8)?br />③  q一阶段是完成从.java文g到源文g.class文g的编译过E,q时pȝ会从.java文g中读出字节数
据,然后直接其写入.class文g中,所用编码方式仍为UTF-8?br />④  本阶D|由tomcat从class文g中读取二q制信息Q然后通过|络发送出去, 具体用来实施q个工作的对象是response对象。而这个对象在发送数据前先要数据根据UTF-8q原成原始字Ԍ然后再按
contentType 所指定的编?如果没设则与pageEncoding一?字串编码ؓ字节,然后再通过|?br />l发送出厅R?br />⑤  q阶D늚主要工作由览器来完成.  此阶D|览器接收到字节流后,要负责将其解码ؓ字符Ԍ而解码所使用的字W码式仍为contentType所指定的编码方式?br /> 
      x用户可以看到我们原先写的字W串了?其实上面几步中前面几步都没可以省略不看,我们?br />键要看的是最后两步(即网l发送前的编码和到达览器后的解码过E)来看下面几种情况:
(1) <%@ page pageEncoding="GBK" contentType="text/html; charset=iso8859-1"%>
     假设面中有:  <h1>?lt;/h1>
            当走到第4步时Q服务器会读取出字节q正还原成字符?#8221;<h1>?lt;/h1>”, q时response在发送前需要先其变ؓ字节序列Q所使用的编码标准就是iso8859-1(由charset指定), 它会一个英文解析ؓ一个字节,一个中文也解析Z个字节,q样数据在发送前已l丢׃Q所以到达浏览器时也必然为少了一个字节了。故我们会看?输出.
(2) <%@ page pageEncoding="GBK" contentType="text/html; charset=utf-8"%>
     假设面中有:  <h1>?lt;/h1>
     发送前会将所有中文字W编码ؓ三个字节、英文字母和数字仍ؓ1个字节,然后送出Q到览器后Q再用同L字符~码字节解码ؓ字符Ԍ中文三个一l),所以数据不会丢失,不会出现q。编码本w提供了一套标准来识别某个字节是否是中文字W的开始部?
(3) <%@ page pageEncoding="utf-8" contentType="text/html; charset= GBK"%>
     假设面中有:  <h1>?lt;/h1>
     发送前会将所有中文字W编码ؓ二个字节、英文字母和数字仍ؓ1个字节,然后送出Q到览器后Q再用同L字符~码字节解码ؓ字符Ԍ中文二个一l),所以数据不会丢失,不会出现q?br /> 
Jsp向servlet提交数据时的~码问题Q?br />      前面部分都一_关键问题是字节流到达服务器后的解?字节->字符)q程, 与页面不同的是它不采用contentType指定的字W编码方式来解码字节Q而是采用服务?tomcat默认gؓiso8859-1)来解析,q样一个字节就被还原成了一个字W? q时如果我们的jsp指定的contentType是UTF-8, ׃出现本来是一个字W的三个字节被分别解析成了三个字W,所以ؕ码也׃生了?br />      我们可以通过手工的方式来讄字节的解码方式,具体做法是在用request的getParameterҎ前调用request?setCharacterEncoding(“解码方式”); 编码和解码的码式设Z_如前面contentType讄为utf-8, 此处也就讄为utf-8, q样信息p利q原了?br />      注:在tomcat中对于get方式提交的数据不论request的setCharacterEncoding讄的是何种字符~码方式Q服务器均采用ISO8859-1方式对其q行解码Q所以我们要惛_到正数据,可以通过:
           String str =  request.getParameter(“xxx”);
           str =  new  String (str.getBytes(“ISO8859-1”,”contentType指定的编?#8221;);
q样先将数据q原Q然后再用发送时的字W集来进行解码,q样可数据还原了.

(责Q~辑Qadmin)


]]>JSP中文~码问题解决Ҏ详解http://www.aygfsteel.com/liuyz2006/articles/401092.html阿?/dc:creator>阿?/author>Sun, 30 Jun 2013 13:31:00 GMThttp://www.aygfsteel.com/liuyz2006/articles/401092.html
最基本的ؕ码问?q个q问题是最单的q问题。一般新会出现。就是页面编码不一致导致的q?Html代码Q?Q?@ page language=java pageEncoding=UTF-8%Q?Q?@ page contentType=text/html;charset=iso8859-1%Q?QhtmlQ?QheadQ?QtitleQ中文问?/div>
-
最基本的ؕ码问?/strong>
q个q问题是最单的q问题。一般新会出现。就是页面编码不一致导致的q?br />Html代码Q?br />
Q?@ page language="java" pageEncoding="UTF-8"%Q?nbsp; 
Q?@ page contentType="text/html;charset=iso8859-1"%Q?nbsp; 
QhtmlQ?nbsp; 
QheadQ?nbsp; 
QtitleQ中文问题</titleQ?nbsp; 
Qmeta http-equiv="Content-Type" content="text/html; charset=UTF-8"Q?nbsp; 
Q?headQ?nbsp; 
Q?headQ?nbsp; 
QbodyQ?nbsp; 
我是个好?nbsp; 
Q?bodyQ?nbsp; 
Q?htmlQ?nbsp; 
三个地方的编?/strong>
W一个地方的~码格式为jsp文g的存储格式。Ecljpse会根据这个编码格式保存文件。ƈ~译jsp文gQ包括里面的汉字?br />W二处编码ؓ解码格式。因为存为UTF-8的文件被解码为iso8859-1Q这样如有中文肯定出q。也是必须一致。而第二处所在的q一行,可以没有。缺省也是用iso8859-1的编码格式。所以如果没有这一行的话,“我是个好?#8221;也会出现q。必M致才可以?br />W三处编码ؓ控制览器的解码方式。如果前面的解码都一致ƈ且无误的话,q个~码格式没有关系。有的网出Cؕ码,是因ؓ览器不能确定用哪U编码格式。因为页面有时候会嵌入面Q导致浏览器h了编码格式。出Cq?br />
表单使用Post方式提交后接收到的ؕ码问?q个问题也是一个常见的问题。这个ؕ码也是tomcat的内部编码格式iso8859-1在捣乱,也就是说post提交Ӟ如果没有讄提交的编?格式Q则会以iso8859-1方式q行提交Q接?/div>
-

表单使用Post方式提交后接收到的ؕ码问?/strong>q个问题也是一个常见的问题。这个ؕ码也是tomcat的内部编码格式iso8859-1在捣乱,也就是说post提交Ӟ如果没有讄提交的编?格式Q则会以iso8859-1方式q行提交Q接受的jsp却以utf-8的方式接受。导致ؕ码。既然这L原因Q下面有几种解决方式Qƈ比较?br />a. 接受参数时进行编码{?/font>
String str = new String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8") Q?
q样的话Q每一个参数都必须q样q行转码。很ȝ。但实可以拿到汉字?br />b. 在请求页面上开始处Q执行请求的~码代码
request.setCharacterEncoding("UTF-8") 
把提交内容的字符集设为UTFQ?。这L话,接受此参数的面׃必在转码了。直接?br />
String str = request.getParameter("something")Q?/pre>卛_得到汉字参数。但每页都需要执行这句话。这个方法也对post提交的有效果Q对于get提交和上传文件时的enctype="multipart/form-data"是无效的。稍后下面单独对q个两个的ؕ码情况再q行说明?br />c. Z避免每页都要写request.setCharacterEncoding("UTF-8")Q徏议用过滤器Ҏ有jspq行~码处理。这个网上有很多例子。请大家自己查阅?br />表单get提交方式的ؕ码处理方?/strong>
如果使用get方式提交中文Q接受参数的面也会出现qQ这个ؕ码的原因也是tomcat的内部编码格式iso8859-1D。Tomcat会以get的缺省编码方式iso8859-1Ҏ字进行编码,~码后追加到urlQ导致接受页面得到的参数Zؕ?、?br />解决办法Q?/strong>
a. 使用上例中的W一U方式,Ҏ受到的字W进行解码,再{码?br />b. Get走的是url提交Q而在q入url之前已经q行了iso8859-1的编码处理。要惛_响这个编码则需要在server.xml?Connector节点增加useBodyEncodingForURI="true"属性配|,卛_控制tomcat对get方式的汉字编码方式,上面 q个属性控制get提交也是用request.setCharacterEncoding("UTF-8")所讄的编码格式进行编码。所以自动编码ؓ utf-8Q接受页面正常接受就可以了。但我认为真正的~码q程是,tomcat又要Ҏ
QConnector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000" useBodyEncodingForURI="true"
disableUploadTimeout="true" URIEncoding=”UTF-8”/Q?/pre>里面所讄的URIEncoding=”UTF-8”再进行一ơ编码,但是׃已经~码为utf-8Q再~码也不会有变化了。如果是从url获取~码Q接受页面则是根据URIEncoding=”UTF-8”来进行解码的?br />



]]>JSP和Servlet中的几个~码的感化及道理(?http://www.aygfsteel.com/liuyz2006/articles/401091.html阿?/dc:creator>阿?/author>Sun, 30 Jun 2013 13:29:00 GMThttp://www.aygfsteel.com/liuyz2006/articles/401091.html起首Q说说JSP和Servlet中的几个~码的感化?/p>

在JSP和Servlet中首要有以下几个处所可以讄~码QpageEncoding="UTF-8"、contentType="text/html;charset=UTF- 8"、request.setCharacterEncodingQ?UTF-8"Q和 response.setCharacterEncodingQ?UTF-8"Q,此中前两个只能用于JSP中,而后两个可以用于JSP和Servlet中?/p>

1、pageEncoding="UTF-8"的感化是讄JSP~译成Servlet时应用的~码?/p>

众所周知QJSP在办事器上是要先被编译成Servlet的。pageEncoding="UTF-8"的感化就是告诉JSP~译器在JSP文g~译成Servlet时应用的~码。凡是,在JSP内部定义的字W串Q直接在JSP中定义,而不是从览器提交的数据Q呈Cؕ码时Q很多都是因参数讄错误引v的。例如,你的JSP文g是以GBK为编码保存的Q而在JSP中却指定pageEncoding="UTF-8"Q就会引起JSP内部定义的字W串Zؕ码?/p>

别的Q该参数q有一个功能,是在JSP中不指定contentType参数Q也不应用response.setCharacterEncoding办法Ӟ指定对办事器响应q行从头~码的编码?/p>

2、contentType="text/html;charset=UTF-8"的感化是指定对办事器响应q行从头~码的编码?/p>

在不应用response.setCharacterEncoding办法Ӟ用该参数指定对办事器响应q行从头~码的编码?、request.setCharacterEncodingQ?UTF-8"Q的感化是设|对客户端恳求进行从头编码的~码?/p>

该办法用来指定对览器发送来的数据进行从头编码(或者称码)Ӟ应用的编码?/p>

4、response.setCharacterEncodingQ?UTF-8"Q的感化是指定对办事器响应进行从头编码的~码?/p>

办事器在数据发送到览器前Q对数据q行从头~码Ӟ应用的就是该~码?/p>

其次Q要说一说浏览器是怎么样对接管和发送的数据q行~码?/p>

response.setCharacterEncodingQ?UTF-8"Q的感化是指定对办事器响应进行从头编码的~码。同Ӟ览器也是按照这个参数来对其接管到的数据q行从头~码Q或者称码)。所以在无论你在JSP中设|response.setCharacterEncodingQ?UTF-8"Q或?response.setCharacterEncodingQ?GBK"Q,览器均能正显CZ文(前提是你发送到览器的数据~码是正的Q比如正设|了pageEncoding参数{)。读者可以做个实验,在JSP中设|response.setCharacterEncodingQ?UTF-8"Q,在IE中显C面Ӟ在IE的菜单中选择"查看QVQ?à"~码QDQ?中可以查看到? UnicodeQUTF-8Q?Q而在在JSP中设|response.setCharacterEncodingQ?GBK"Q,在IE中显C面Ӟ在IE的菜单中选择"查看QVQ?à"~码QDQ?中可以查看到?体中文(GB2312Q??/p>

览器在发送数据时Q对URL和参Cq行URL~码Q对参数中的中文Q浏览器也是?response.setCharacterEncoding参数来进行URL~码的。以癑ֺ和GOOGLEZQ若是你在百度中搜刮"汉字"Q百度会其~码?QBAQBAQD7QD6"。而在GOOGLE中搜?汉字"QGOOGLE会将其编码ؓ"QE6QB1Q?9QE5QADQ?7"Q这是因为百度的response.setCharacterEncoding参数为GBKQ而GOOGLE的的 response.setCharacterEncoding参数为UTF-8?/p>

览器在接管办事器数据和发送数据到办事器时所应用的编码是雷同的,默认景象下均为JSP面的response.setCharacterEncoding参数Q或者contentType和pageEncoding参数Q,我们U其为浏览器~码。当Ӟ在IE中可以批Ҏ览器~码Q在IE的菜单中选择"查看QVQ?à"~码QDQ?中批改)Q但凡是景象下,Ҏ该参C使底本正的面中呈Cؕ码。一个有的例子是,在IE中浏览GOOGLE的主|Q将览器编码批改ؓ"体中文(GB2312Q?Q此Ӟ面上的中文会变成ؕ码,不睬它,在文本框中输?汉字"Q提交,GOOGLE会将其编码ؓ"QBAQBAQD7QD6"Q可见,览器在对中文进行URL~码Ӟ应用的就是浏览器~码?/p>

弄清了浏览器是在接管和发送数据时Q是如何Ҏ据进行编码的了,我们再来看看办事器是在接和发送数据时Q是如何Ҏ据进行编码的?/p>

对于发送数据,办事器遵守response.setCharacterEncoding—contentType—pageEncoding的优先次序,对要发送的数据q行~码?/p>

对于接管数据Q要分三U景象。一U是览器直接用URL提交的数据,别的两种是用表单的GET和POST体式格式提交的数据?/p>

因ؓ各类WEB办事器对q三U体式格式的处理惩罚也不雷同Q所以我们以Tomcat5.0Z?/p>

无论应用那种体式格式提交Q若是参C包含中文Q浏览器都邑应用当前览器编码对其进行URL~码?/p>

对于表单中POST体式格式提交的数据,只要在接数据的JSP中正request.setCharacterEncoding参数Q即对客户端恳求进行从头编码的~码讄成浏览器~码Q就可以包管获得的参数编码正。有写读者可能会问,那如何获得浏览器~码呢?上方我们提过了,在默认请景象下,览器编码就是你在响应当x的JSP面中response.setCharacterEncoding讄的倹{所以对于POST表单提交的数据,在获得数据的JSP面中request.setCharacterEncoding要和生成提交该表单的JSP面的response.setCharacterEncoding讄成雷同的倹{?/p>

对于URL提交的数据和表单中GET体式格式提交的数据,在接数据的JSP中设|request.setCharacterEncoding参数是不可的Q因为在Tomcat5.0中,默认景象下应用ISO-8859-1对URL 提交的数据和表单中GET体式格式提交的数据进行从头编码(解码Q,而不应用该参数对URL提交的数据和表单中GET体式格式提交的数据进行从头编码(解码Q。要解决该题目,应当在Tomcat的设备文件的Connector标签中设|useBodyEncodingForURI或者URIEncoding属性,此中useBodyEncodingForURI参数默示是否用request.setCharacterEncoding参数对URL提交的数据和表单中GET体式格式提交的数据进行从头编码,在默认景象下Q该参数为falseQTomcat4.0中该参数默认为trueQ;URIEncoding参数指定Ҏ有GET体式格式xQ包含URL提交的数据和表单中GET体式格式提交的数据)q行同一的从头编码(解码Q的~码。URIEncoding?useBodyEncodingForURI差别是,URIEncoding是对所有GET体式格式的恳求的数据q行同一的从头编码(解码Q,?useBodyEncodingForURI则是按照响应当恳求的面的request.setCharacterEncoding参数Ҏ据进行的从头~码Q解码)Q不合的面可以有不合的从头~码Q解码)的编码。所以对于URL提交的数据和表单中GET体式格式提交的数据,可以ҎURIEncoding 参数为浏览器~码或者批改useBodyEncodingForURI为trueQƈ且在获得数据的JSP面中request.setCharacterEncoding参数讄成浏览器~码?/p>

下面ȝ下,以Tomcat5.0为WEB办事器时Q如何防止中文ؕ码?/p>

1、对于同一个应用,最好同一~码Q推荐ؓUTF-8Q当然GBK也可以?/p>

2、正设|JSP的pageEncoding参数


3、在所有的JSP和Servlet中设|contentType="text/html;charset=UTF-8"或response.setCharacterEncodingQ?UTF-8"Q,从而间接实现对览器编码的讄?/p>

4、对于恳求,可以应用qo器或者在每个JSP和Servlet中设|request.setCharacterEncodingQ?UTF-8"Q。同Ӟ要批改Tomcat的默认设备,推荐?useBodyEncodingForURI参数讄为trueQ也可以URIEncoding参数讄为UTF-8Q有可能影响其他应用Q所以不推荐Q?/p>

]]>
从HelloWorld.jsp理解JSP技术的q行内幕http://www.aygfsteel.com/liuyz2006/articles/384776.html阿?/dc:creator>阿?/author>Sat, 04 Aug 2012 13:26:00 GMThttp://www.aygfsteel.com/liuyz2006/articles/384776.htmlhttp://www.aygfsteel.com/liuyz2006/comments/384776.htmlhttp://www.aygfsteel.com/liuyz2006/articles/384776.html#Feedback0http://www.aygfsteel.com/liuyz2006/comments/commentRss/384776.htmlhttp://www.aygfsteel.com/liuyz2006/services/trackbacks/384776.html从HelloWorld.jsp理解JSP技术的q行内幕

众所周知QJSP和Servlet之间有着内在的血~关pR?/p>

1.HelloWorld.jsp代码Q?br />    <%
     String message = "Hello World!";
    %>
    <%=message%>

q个文g非常单,仅仅定义了一个String的变量,q且输出。把q个文g攑ֈTomcat的webapps\ROOT\目录下,启动TomcatQ在览器中讉Khttp://localhost:8080/HelloWorld.jspQ浏览器中的输出?#8220;HelloWorld!”

2.HelloWorld_jsp.java代码Q?/p>

    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.servlet.jsp.*;
    import org.apache.jasper.runtime.*;

    public class HelloWorld_jsp extends HttpJspBase {

        private static java.util.List _jspx_dependants;

        public Object getDependants() {
            return _jspx_dependants;
        }
        public void _jspService(HttpServletRequest request,
        HttpServletResponse response)throws java.io.IOException, ServletException{
            JspFactory _jspxFactory = null;
            javax.servlet.jsp.PageContext pageContext = null;
            HttpSession session = null;
            ServletContext application = null;
            ServletConfig config = null;
            JspWriter out = null;
            Object page = this;
            JspWriter _jspx_out = null;

            try {
             _jspxFactory = JspFactory.getDefaultFactory();//调用JspFactory的getDefaultFactory()Ҏ获取容器实现的一个JspFactory对象的引?br />             response.setContentType("text/html;charset=ISO-8859-1");
             pageContext = _jspxFactory.getPageContext(this, request, response,null, true, 8192, true);//填充一个PageContextq回Qƈ赋给内置变量 pageConext
             application = pageContext.getServletContext();
             config = pageContext.getServletConfig();
             session = pageContext.getSession();
             out = pageContext.getOut();
             _jspx_out = out;

             String message = "Hello World!";
             out.print(message);
            } catch (Throwable t) {
             out = _jspx_out;
             if (out != null && out.getBufferSize() != 0)
              out.clearBuffer();
             if (pageContext != null) pageContext.handlePageException(t);
            } finally {
            if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext);
            }
          }
          }


      转到Tomcat的\work\Standalone\localhost\_目录下,可以扑ֈ如下的HelloWorld_jsp.javaQ这个文件就是Tomcat解析HelloWorld.jsp时生成的源文件。由此可见,HelloWorld.jsp在运行时首先解析成一个JavacHelloWorld_jsp.javaQ该cȝ承于org.apache.jasper.runtime.HttpJspBase基类QHttpJspBase实现了HttpServlet接口。因此,JSP在运行前首先编译ؓ一个ServletQ这是理解JSP技术的关键?/p>

      首先Q调用JspFactory的getDefaultFactory()Ҏ获取容器实现的一个JspFactory对象的引用。JspFactory是javax.servlet.jsp包中定义的一个抽象类Q其中定义了两个静态方法setDefaultFactory()/getDefaultFactory()。setҎ由JSP容器QTomcatQ实例化该页面ServletQ即 HelloWorld_jspc)的时候置入,所以可以直接调用JspFactory.getDefaultFactory()Ҏ得到q个JSP工厂的实现类。Tomcat是调用org.apache.jasper.runtime.JspFactoryImplcR?/p>

  然后Q调用这个JspFactoryImpl的getPageContext()ҎQ填充一个PageContextq回Qƈ赋给内置变量 pageConext。其它内|对象都l由该pageContext得到。具体过E见上面的代码,q里不再赘述。该面Servlet的环境设|完毕,开始对面q行解析。HelloWorld.jsp面仅仅定义了一个String变量Q然后直接输出。解析后的代码如下:

       String message = "Hello World!";
       out.print(message);



]]>
eclipse的web工程转myeclipse的web工程(?http://www.aygfsteel.com/liuyz2006/articles/382480.html阿?/dc:creator>阿?/author>Sat, 07 Jul 2012 14:27:00 GMThttp://www.aygfsteel.com/liuyz2006/articles/382480.htmlhttp://www.aygfsteel.com/liuyz2006/comments/382480.htmlhttp://www.aygfsteel.com/liuyz2006/articles/382480.html#Feedback0http://www.aygfsteel.com/liuyz2006/comments/commentRss/382480.htmlhttp://www.aygfsteel.com/liuyz2006/services/trackbacks/382480.html  eclipse的web工程转myeclipse的web工程
1.原eclipse工程叫netschool 
2.在myeclipse中新Z个工E叫netschool q在新徏的时修改 web root folder为WebContent 
3.备䆾在myeclipse新徏的netschool工程下的.classpath ?mymetadata?project以及.myeclipse文g?
4.删除在myeclipse新徏的netschool工程 
5.通过svn 或cvs checkout 原eclipse工程netschool  拯W三步备份的文g到netschool工程根目录下 
6.h工程卛_ 
  myeclipse的web工程转eclipse的web工程
1.先在eclipse里创Z个同名项?eg:pjt,然后pjt改名为pjt.bak.
2.从svn上check outq个目pjt?br />3.打开pjt.bak,复制.settings文g夏V?classpath?projectq个三个文g覆盖pjt目下的同名文g?/pre>


]]>
在MyEclipse中配|Tomcat服务?http://www.aygfsteel.com/liuyz2006/articles/381910.html阿?/dc:creator>阿?/author>Sun, 01 Jul 2012 02:22:00 GMThttp://www.aygfsteel.com/liuyz2006/articles/381910.htmlhttp://www.aygfsteel.com/liuyz2006/comments/381910.htmlhttp://www.aygfsteel.com/liuyz2006/articles/381910.html#Feedback0http://www.aygfsteel.com/liuyz2006/comments/commentRss/381910.htmlhttp://www.aygfsteel.com/liuyz2006/services/trackbacks/381910.html

在MyEclipse中配|Tomcat服务?

28806人阅?/span> 评论(14) 收藏 举报
郁闷Qؓ了在MyEclipse配置Tomcat 服务器,竟然弄了我几乎一个上午,也没弄成功,最后才注意到本该早注意到Tomcat 5.xq有个JDKq个东东Q才成功了。一上午辛辛苦苦也没解决是因ؓ没注意到他害的,其实配置是很单的。下面是其步骤:
  一、单dh?img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/standlww/0.jpg" />的黑三角或者单?菜单栏窗?#8212;>首选项Q出现首选项对话框,在对话框的左Ҏ中找到MyEclipse—>Application Servers下找到Tomcat选项Q如下图Q?/div>
二、根据自qTomcat版本选择相应的Tomcat选项Q我的是5.0版本Q,然后在对话框右侧的Tomcat home directory选项选择Tomcat的安装目录,下面的Tomcat base directory和Tomcat temp directorypȝ会自动ؓ你填上,Optional  program arguments可以不用?我也不知道这是做什么用?再选上Enable选项Q要不然在待会儿在Server中看不到Tomcat服务?/div>
三、千万别忘了Tomcat 选项下面的JDKQ我是因ؓ没注意到它才一直不成功Q单击JDK,弹出如下对话框,
Notes会提CZ怎么做,
四、点击Tomcat JDK name旁的"Add"Q弹出如下对话框Q?/div>
JRE名称(N)选项填上名字Q可以随便取Q,在JREȝ录选项选择你的jdk安装目录(仅仅只是jdk,不包含jre)QJREpȝ库系l会自动d,~省JVM参数可以不用??#8220;定”回到上再按“定”OK了?/div>
如果你配|的不对的话会弹出出错提C对话框
是Notes提示的第一条?/div>
五、回到MyEclipseȝ面,在Server下多了个Tomcat选项Q右键单击TomcatQ选择Mannage DeploymentQ如果你不配|的话等一下你是运行不了项目的Q,弹出Srever Deployments对话框,在Server选项上选择你刚刚配|的Tomcat服务Q点?Add"Q弹出New Deployment对话框,
在Project上选择你要q行的项目,单击“完成”q回上一U按“定”可以了?/div>
  最后启动Tomcat服务器,在Web Browser输入地址Q到q里大功告成了?/div>
是不是发现原来很单呢!
提醒一下,在New Deployment对话框中的Packaged Archive选项是把目打包?war形式q行的?/div>
  刚开始是因ؓMyEclipse自带的Derby不会用,才去配置Tomcat的,{Tomcat配置成功后,也就明白怎么用Derby了,其实很简单,配置都不用你去配Q系l已l帮你配好了Q你只要启动它就行了?/div>
只是感觉MyEclipseq方面没Lomboz—Elipse那么方便Q只要在惌执行的jsp文g上选择“Run on Server”p了,在MyEclipse下不行?/div>
 


]]>Spket在Eclipse/MyEclipse下的安装和配|(图文教程Q?http://www.aygfsteel.com/liuyz2006/articles/381909.html阿?/dc:creator>阿?/author>Sun, 01 Jul 2012 01:40:00 GMThttp://www.aygfsteel.com/liuyz2006/articles/381909.htmlhttp://www.aygfsteel.com/liuyz2006/comments/381909.htmlhttp://www.aygfsteel.com/liuyz2006/articles/381909.html#Feedback0http://www.aygfsteel.com/liuyz2006/comments/commentRss/381909.htmlhttp://www.aygfsteel.com/liuyz2006/services/trackbacks/381909.html

Spket在Eclipse/MyEclipse下的安装和配|(图文教程Q?

分类Q?1.1J2se 6.2-ExtJS 13586人阅?/span> 评论(14) 收藏 举报

 一、安装Spket

W一U方法:|上更新方式

1.插g首页Q?a >http://www.spket.com
2.插g名称QSpket IDE
3.更新q接QUpdate SiteQ:http://www.spket.com/update/
更新安装ҎQ?/p>

1.[Help]-[Software Updates]-[Find and Install...]

2.[Search for new features to install] -> [Next]

3.[New Remote Site...] Name: "什么都行,spketjs" URL: http://www.spket.com/update/--> [Finish]

 

W二U方法:|上下蝲spket-1.6.16.jar破解版(目前最新版本)

1.如果你的JDK?.6以上Q可以直接双?font color="#0000ff">spket-1.6.16.jarq行安装?/p>

其它Q用命令行方式。(注意Q自己切换命令行?font color="#0000ff">spket-1.6.16.jar所在目录)

2.

 
myeclipse10 中无eclipse,要选中MyEclipse 10

 

xQ安装完成?

二、配|Spket

 

 

注意Q如果在安装spketq程中,你的eclipse或者Myeclipse是打开的,请重启eclipse或者Myeclipse。以便初始化插gQ下面才会在Preferences中看?Spket选项?/font>

基本步骤如下Q?br />1)Window → Preferences → Spket Q?


 

2)Spket → JavaScript Profiles → NewQ?输入“ExtJS”点击OKQ?


3)选择“ExtJS” q点?#8220;Add Library”然后在下拉条中选取“ExtJS”Q?


4)选择 “ExtJS”q点?#8220;Add File”Q然后在你的./ext-2.x/source目录中选取“ext.jsb” 文gQ?/p>

 
5)讄新的ExtJS ProfileQ选中q点?#8220;JavaScript Profiles” 对话框右手边?#8220;Defalut”按钮Q?/p>

下面q个操作Q根据自己需要设|(可以全选)?/p>

 
6)重启eclipse或者MyeclipseQ?/p>


7)创徏新的JS文gq输入: Extq样可讄Ext Code代码自动完成的功能?/p>

效果如下Q?/p>

 

 

 



]]>JavaBean+Servlet+jsp真分实?/title><link>http://www.aygfsteel.com/liuyz2006/articles/368522.html</link><dc:creator>阿?/dc:creator><author>阿?/author><pubDate>Sat, 14 Jan 2012 14:40:00 GMT</pubDate><guid>http://www.aygfsteel.com/liuyz2006/articles/368522.html</guid><wfw:comment>http://www.aygfsteel.com/liuyz2006/comments/368522.html</wfw:comment><comments>http://www.aygfsteel.com/liuyz2006/articles/368522.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/liuyz2006/comments/commentRss/368522.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/liuyz2006/services/trackbacks/368522.html</trackback:ping><description><![CDATA[<div id="wmqeeuq" class="articalTitle"> <h2 class="titName SG_txta" id="t_62b7c2210100j4im">JavaBean+Servlet+jsp真分实?/h2></div> <div id="wmqeeuq" class="articalTag" id="sina_keyword_ad_area"> </div><!-- 正文开?--> <div id="wmqeeuq" class="articalContent " id="sina_keyword_ad_area2"> <p>JavaBean</p> <p>package Bean;<br />//物品c?br />public class Goods<br />{<br /> <wbr>private int goodsid;  <wbr>// 物品~号<br /> <wbr>public String goodsname; <wbr>  <wbr>// 物品名称<br /> <wbr>private float price; <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>  <wbr>// 物品单g</p> <p> <wbr>public void setGoodsid(int goodsid)<br /> <wbr>{<br /> <wbr> <wbr>this.goodsid = goodsid;<br /> <wbr>}<br /> <wbr>public int getGoodsid()<br /> <wbr>{<br /> <wbr> <wbr>return goodsid;<br /> <wbr>}<br /> <wbr>// 物品名称<br /> <wbr>public void setGoodsname(String goodsname)<br /> <wbr>{<br /> <wbr> <wbr>this.goodsname = goodsname;<br /> <wbr>}<br /> <wbr>public String getGoodsname()<br /> <wbr>{<br /> <wbr> <wbr>return goodsname;<br /> <wbr>}<br /> <wbr>// 物品h<br /> <wbr>public void setPrice(float price)<br /> <wbr>{<br /> <wbr> <wbr>this.price = price;<br /> <wbr>}<br /> <wbr>public float getPrice()<br /> <wbr>{<br /> <wbr> <wbr>return price;<br /> <wbr>}<br />}</p> <p>单例c?/p> <p>package util;</p> <p>import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.SQLException;</p> <p>public class DbConnection {<br /> <wbr>private static Connection conn=null;<br /> <wbr>private String driver="com.mysql.jdbc.Driver";<br /> <wbr>private String url="jdbc:mysql://localhost:3306/mydata";<br /> <wbr>private String user="root";<br /> <wbr>private String password="1234567";<br /> <wbr><br /> <wbr>private DbConnection(){<br /> <wbr> <wbr>try {<br /> <wbr> <wbr> <wbr>Class.forName(driver);<br /> <wbr> <wbr> <wbr>conn=DriverManager.getConnection(url, user, password);<br /> <wbr> <wbr>} catch (ClassNotFoundException e) {<br /> <wbr> <wbr> <wbr>e.printStackTrace();<br /> <wbr> <wbr>} catch (SQLException e) {<br /> <wbr> <wbr> <wbr>e.printStackTrace();<br /> <wbr> <wbr>}<br /> <wbr>}<br /> <wbr><br /> <wbr>public static Connection getConnection() {<br /> <wbr> <wbr>if(conn==null){<br /> <wbr> <wbr> <wbr>new DbConnection();<br /> <wbr> <wbr>}<br /> <wbr> <wbr>return conn;<br /> <wbr>}<br />}<br /></p> <p>数据库访问实?/p> <p>package DAO;</p> <p>import java.sql.Connection;<br />import java.sql.ResultSet;<br />import java.sql.SQLException;<br />import java.sql.Statement;<br />import java.util.ArrayList;</p> <p>import Bean.Goods;</p> <p>import util.DbConnection;</p> <p>public class Dao {<br /> <wbr>private static Connection conn;<br /> <wbr>private static ResultSet rs;<br /> <wbr>private static Statement stmt;<br /> <wbr>private static int pagesize=5;<br /> <wbr>static{<br /> <wbr> <wbr>conn=DbConnection.getConnection();<br /> <wbr>}<br /> <wbr><br /> <wbr>//通用的查询方?br /> <wbr>public static ResultSet ExecuteQuery(String sql) {<br /> <wbr> <wbr>try {<br /> <wbr> <wbr> <wbr>stmt=conn.createStatement();<br /> <wbr> <wbr> <wbr>rs=stmt.executeQuery(sql);<br /> <wbr> <wbr>} catch (SQLException e) {<br /> <wbr> <wbr> <wbr>e.printStackTrace();<br /> <wbr> <wbr>}<br /> <wbr> <wbr>return rs;<br /> <wbr>}<br /> <wbr><br /> <wbr>//分页逻辑<br /> <wbr>public static ArrayList<Goods> getGoodsList(int currentpageno){<br /> <wbr> <wbr>ArrayList<Goods> GoodsList=new ArrayList<Goods>();<br /> <wbr> <wbr>int BeginRecord=(currentpageno-1)*pagesize;<br /> <wbr> <wbr>int EndRecord=currentpageno*pagesize;<br /> <wbr> <wbr>rs=ExecuteQuery("select * from goods limit "+BeginRecord+","+EndRecord);<br /> <wbr> <wbr>try {<br /> <wbr> <wbr> <wbr>while(rs.next()){<br /> <wbr> <wbr> <wbr> <wbr>Goods goods=new Goods();<br /> <wbr> <wbr> <wbr> <wbr>goods.setGoodsid(rs.getInt(1));<br /> <wbr> <wbr> <wbr> <wbr>goods.setGoodsname(rs.getString(2));<br /> <wbr> <wbr> <wbr> <wbr>goods.setPrice(rs.getFloat(3));<br /> <wbr> <wbr> <wbr> <wbr>GoodsList.add(goods);<br /> <wbr> <wbr> <wbr>}<br /> <wbr> <wbr>} catch (SQLException e) {<br /> <wbr> <wbr> <wbr>e.printStackTrace();<br /> <wbr> <wbr>}<br /> <wbr> <wbr>return GoodsList;<br /> <wbr>}<br /> <wbr><br /> <wbr>//l计记录?br /> <wbr>public static int getPageCount(){<br /> <wbr> <wbr>int total=0;<br /> <wbr> <wbr>int PageCount=0;<br /> <wbr> <wbr>rs=ExecuteQuery("select count(*) from goods");<br /> <wbr> <wbr>try {<br /> <wbr> <wbr> <wbr>if(rs.next()){<br /> <wbr> <wbr> <wbr> <wbr>total=rs.getInt(1);<br /> <wbr> <wbr> <wbr> <wbr>PageCount=(total-1)/pagesize+1;<br /> <wbr> <wbr> <wbr>}<br /> <wbr> <wbr>} catch (SQLException e) {<br /> <wbr> <wbr> <wbr>e.printStackTrace();<br /> <wbr> <wbr>}<br /> <wbr> <wbr>return PageCount;<br /> <wbr>}<br />}<br /></p> <p>servlet控制?/p> <p>package servlet;</p> <p>import java.io.IOException;<br />import java.io.PrintWriter;<br />import java.util.ArrayList;</p> <p>import javax.servlet.ServletException;<br />import javax.servlet.http.HttpServlet;<br />import javax.servlet.http.HttpServletRequest;<br />import javax.servlet.http.HttpServletResponse;</p> <p>import Bean.Goods;<br />import DAO.Dao;</p> <p>public class GetLimiteGoods extends HttpServlet {<br /> <wbr>private static final long serialVersionUID = 1L;<br /> <wbr>public void doGet(HttpServletRequest request, HttpServletResponse response)<br /> <wbr> <wbr> <wbr>throws ServletException, IOException {<br /> <wbr> <wbr>response.setContentType("text/html");<br /> <wbr> <wbr>String pageno= request.getParameter("currentpageno");<br /> <wbr> <wbr>int currentpageno=1;<br /> <wbr> <wbr>if(pageno!=null){<br /> <wbr> <wbr> <wbr>currentpageno=Integer.parseInt(pageno);<br /> <wbr> <wbr>}<br /> <wbr> <wbr>ArrayList<Goods> GoodsList=Dao.getGoodsList(currentpageno);<br /> <wbr> <wbr>request.setAttribute("GoodsList", GoodsList);<br /> <wbr> <wbr>request.setAttribute("currentpageno", currentpageno);<br /> <wbr> <wbr>request.setAttribute("PageCount", Dao.getPageCount());<br /> <wbr> <wbr>request.getRequestDispatcher("/LimiteGoods.jsp").forward(request, response);<br /> <wbr>}</p> <p> <wbr>public void doPost(HttpServletRequest request, HttpServletResponse response)<br /> <wbr> <wbr> <wbr>throws ServletException, IOException {</p> <p> <wbr> <wbr>response.setContentType("text/html");<br /> <wbr> <wbr>PrintWriter out = response.getWriter();<br /> <wbr> <wbr>out<br /> <wbr> <wbr> <wbr> <wbr>.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");<br /> <wbr> <wbr>out.println("<HTML>");<br /> <wbr> <wbr>out.println(" <wbr> <HEAD><TITLE>A Servlet</TITLE></HEAD>");<br /> <wbr> <wbr>out.println(" <wbr> <BODY>");<br /> <wbr> <wbr>out.print(" <wbr> <wbr> <wbr> This is ");<br /> <wbr> <wbr>out.print(this.getClass());<br /> <wbr> <wbr>out.println(", using the POST method");<br /> <wbr> <wbr>out.println(" <wbr> </BODY>");<br /> <wbr> <wbr>out.println("</HTML>");<br /> <wbr> <wbr>out.flush();<br /> <wbr> <wbr>out.close();<br /> <wbr>}<br />}</p> <p> <wbr></p> <p>xml配置Q?/p> <p><?xml version="1.0" encoding="UTF-8"?><br /><web-app version="2.5" xmlns="<a <br /> <wbr>xmlns:xsi="<a <br /> <wbr>xsi:schemaLocation="<a >http://java.sun.com/xml/ns/javaee</a><br /> <wbr><a ><br /> <wbr> <servlet><br /> <wbr> <wbr> <wbr> <description>This is the description of my J2EE component</description><br /> <wbr> <wbr> <wbr> <display-name>This is the display name of my J2EE component</display-name><br /> <wbr> <wbr> <wbr> <servlet-name>GetLimiteGoods</servlet-name><br /> <wbr> <wbr> <wbr> <servlet-class>servlet.GetLimiteGoods</servlet-class><br /> <wbr> </servlet></p> <p> <wbr> <servlet-mapping><br /> <wbr> <wbr> <wbr> <servlet-name>GetLimiteGoods</servlet-name><br /> <wbr> <wbr> <wbr> <url-pattern>/servlet/GetLimiteGoods</url-pattern><br /> <wbr> </servlet-mapping><br /></web-app></p> <p><br />表现层jsp</p> <p><%@ page language="java" contentType="text/html; charset=UTF-8"<br /> <wbr>pageEncoding="UTF-8"%><br /> <wbr><%@ taglib prefix="c" uri="<a %><br /><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<a ><br /><html><br /> <wbr><head><br /> <wbr> <wbr><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><br /> <wbr> <wbr><title>Insert title here</title><br /> <wbr></head><br /> <wbr><body><br /> <wbr><center><br /> <wbr><c:if test="${currentpageno>=1}"><br /> <wbr> <wbr> <wbr><a href="GetLimiteGoods?currentpageno=1">首页</a><br /> <wbr> <wbr> <wbr><a href="GetLimiteGoods?currentpageno=${currentpageno-1}">上一?lt;/a><br /> <wbr> <wbr></c:if><br /> <wbr> <wbr><c:if test="${currentpageno==1}"><br /> <wbr> <wbr> <wbr><a href="GetLimiteGoods?currentpageno=${currentpageno+1}">下一?lt;/a><br /> <wbr> <wbr> <wbr><a href="GetLimiteGoods?currentpageno=${PageCount}">N</a><br /> <wbr> <wbr></c:if><br /> <wbr> <wbr><table width="80%" border="1" height="56"><br /> <wbr> <wbr> <wbr><tr align="center"><br /> <wbr> <wbr> <wbr> <wbr><td><br /> <wbr> <wbr> <wbr> <wbr> <wbr>商品~号<br /> <wbr> <wbr> <wbr> <wbr></td><br /> <wbr> <wbr> <wbr> <wbr><td><br /> <wbr> <wbr> <wbr> <wbr> <wbr>商品名称<br /> <wbr> <wbr> <wbr> <wbr></td><br /> <wbr> <wbr> <wbr> <wbr><td><br /> <wbr> <wbr> <wbr> <wbr> <wbr>商品h<br /> <wbr> <wbr> <wbr> <wbr></td><br /> <wbr> <wbr> <wbr></tr><br /> <wbr> <wbr> <wbr><c:forEach var="goods" items="${GoodsList}"><br /> <wbr> <wbr> <wbr> <wbr><tr align="center"><br /> <wbr> <wbr> <wbr> <wbr> <wbr><td><br /> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>${goods.goodsid}<br /> <wbr> <wbr> <wbr> <wbr> <wbr></td><br /> <wbr> <wbr> <wbr> <wbr> <wbr><td><br /> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>${goods.goodsname}<br /> <wbr> <wbr> <wbr> <wbr> <wbr></td><br /> <wbr> <wbr> <wbr> <wbr> <wbr><td><br /> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>${goods.price}<br /> <wbr> <wbr> <wbr> <wbr> <wbr></td><br /> <wbr> <wbr> <wbr> <wbr></tr><br /> <wbr> <wbr> <wbr></c:forEach><br /> <wbr> <wbr></table><br /> <wbr> <wbr></center><br /> <wbr></body><br /></html></p></div><img src ="http://www.aygfsteel.com/liuyz2006/aggbug/368522.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/liuyz2006/" target="_blank">阿?/a> 2012-01-14 22:40 <a href="http://www.aygfsteel.com/liuyz2006/articles/368522.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp通过jdbc讉Koracle数据库之异常jre路径错误Q{Q?/title><link>http://www.aygfsteel.com/liuyz2006/articles/368516.html</link><dc:creator>阿?/dc:creator><author>阿?/author><pubDate>Sat, 14 Jan 2012 13:57:00 GMT</pubDate><guid>http://www.aygfsteel.com/liuyz2006/articles/368516.html</guid><wfw:comment>http://www.aygfsteel.com/liuyz2006/comments/368516.html</wfw:comment><comments>http://www.aygfsteel.com/liuyz2006/articles/368516.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/liuyz2006/comments/commentRss/368516.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/liuyz2006/services/trackbacks/368516.html</trackback:ping><description><![CDATA[<div id="wmqeeuq" class="articalTitle"> <h2 class="titName SG_txta" id="t_62b7c2210100hx1c">jsp通过jdbc讉Koracle数据库之异常jre路径错误Q{Q?/h2></div><!-- 正文开?--> <div id="wmqeeuq" class="articalContent " id="sina_keyword_ad_area2"> <p>jsp通过jdbc讉Koracle数据库之异常</p> <p>HTTP Status 500 -</p> <p>--------------------------------------------------------------------------------</p> <p>type Exception report</p> <p>message</p> <p>description The server encountered an internal error () that prevented it from fulfilling this request.</p> <p>exception</p> <p>org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver<br /> <wbr>org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)<br /> <wbr>org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)<br /> <wbr>org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)<br /> <wbr>org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)<br /> <wbr>javax.servlet.http.HttpServlet.service(HttpServlet.java:803)</p> <p><br />root cause</p> <p>javax.servlet.ServletException: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver<br /> <wbr>org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)<br /> <wbr>org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)<br /> <wbr>org.apache.jsp.jsp.DbConn_jsp._jspService(DbConn_jsp.java:122)<br /> <wbr>org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)<br /> <wbr>javax.servlet.http.HttpServlet.service(HttpServlet.java:803)<br /> <wbr>org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)<br /> <wbr>org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)<br /> <wbr>org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)<br /> <wbr>javax.servlet.http.HttpServlet.service(HttpServlet.java:803)</p> <p><br />root cause</p> <p>java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver<br /> <wbr>org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)<br /> <wbr>org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)<br /> <wbr>org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)<br /> <wbr>org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)<br /> <wbr>java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)<br /> <wbr>java.lang.Class.forName0(Native Method)<br /> <wbr>java.lang.Class.forName(Class.java:169)<br /> <wbr>org.apache.jsp.jsp.DbConn_jsp._jspService(DbConn_jsp.java:88)<br /> <wbr>org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)<br /> <wbr>javax.servlet.http.HttpServlet.service(HttpServlet.java:803)<br /> <wbr>org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)<br /> <wbr>org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)<br /> <wbr>org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)<br /> <wbr>javax.servlet.http.HttpServlet.service(HttpServlet.java:803)</p> <p><br />note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.</p> <p><br />--------------------------------------------------------------------------------</p> <p>Apache Tomcat/6.0.16</p> <p>很明显:<br />classes12.jre未导入或导入路径出错?br />解决ҎQ?br />classes12.jre文g攑ֈ以下路径Q二选一Q:<br />1.apache-tomcat-6.0.16\lib\(此种Ҏ以后不必单独未某个工E添加classes12.jre文g)<br />2.攑֜apache-tomcat-6.0.16\webapps\你的工程\WEB-INF\lib\</p></div><img src ="http://www.aygfsteel.com/liuyz2006/aggbug/368516.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/liuyz2006/" target="_blank">阿?/a> 2012-01-14 21:57 <a href="http://www.aygfsteel.com/liuyz2006/articles/368516.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp:useBean挖掘(转)http://www.aygfsteel.com/liuyz2006/articles/368515.html阿?/dc:creator>阿?/author>Sat, 14 Jan 2012 13:54:00 GMThttp://www.aygfsteel.com/liuyz2006/articles/368515.html阅读全文

]]>
javabean向jspq回文本即json格式文本http://www.aygfsteel.com/liuyz2006/articles/368514.html阿?/dc:creator>阿?/author>Sat, 14 Jan 2012 13:41:00 GMThttp://www.aygfsteel.com/liuyz2006/articles/368514.html------------------------fast.jsp----------------------------
/*
fast.jsp 放于ROOT目录?br />*/
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title> 我的F试|页</title>
</head>
<body>
<p><b>我的F试|页</b></p>

<%@ page language="java" import="java.sql.*" %>

<jsp:useBean id="Hello1"   scope="session" class="Test.Hello" />
<%
String str = "Hello,Ƣ迎学习JSPQ?我的F试|页 ";
Hello1.setHello(str);
out.println(Hello1.getHello() + "<br>");
%>


<jsp:useBean id="mybean"  scope="session" class="fast.FastJson" />
<%
//ResultSet RS = mybean.executeQuery("SELECT * FROM  work_log");
String s="";
s=mybean.getS();
out.println(s);
%>
</body>
</html>
-------------------------- Hello.java------------------
/*
javac Hello.java 生成Hello.class 放于 WEB-INF/classes/Test目录?nbsp;
*/

//java bean
//file name: faq.java
package Test;

public class Hello {
String h="test";

public void setHello(String s)
{
h=s;
}

public String getHello()
{
return h;
}

public static void main (String[] args)
{
Hello ho= new Hello();
System.out.println(ho.h);
}

}

-------------------User.java-----------------
/*
javac User.java 产生 User.class 放于WEB-INF/classes/fast目录?br />*/

package fast;
public class User {
  public String name;
  public int age;
  public User() {}
  public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

 public String getName() {
        return name;

    }
 public void setName(String name) {
       this.name = name;
    }

 public int getAge() {
        return age;
    }

 public void setAge(int age) {
        this.age = age;
    }
 
    @Override
 public String toString() {
       return name + ": " + age;
    }

}

----------------------------FastJson.java
/*
javac FastJson.java 产生FastJson.class 放于 WEB-INF/classes/fast目录?br />fast目录下同时有com和META-INF目录 放fastjson{class
*/

package fast;
import com.alibaba.fastjson.JSON;
public class FastJson {
String s;

    public static void main(String[] args) {
        //User u = new User("Biao", 23);
        //System.out.println(JSON.toJSONString(u));
        //String js = "{\"name\":\"Bi\\\"ao\",\"age\":23}";
        //u = JSON.parseObject(js, User.class);
        //System.out.println(u);
      FastJson fj= new FastJson();
      System.out.println(fj.getS() );
    }

public String getS()
{
User u = new User("liuyz2006", 39);
return JSON.toJSONString(u);
}
}
============================
注意QC:\Tomcat\webapps\ROOT\WEB-INF\classes目录下放com和META-INF目录Q如此两目录放于classes\fast目录下是
出现“Exception in thread "main" java.lang.NoClassDefFoundError: FastJson/java”错误?/span>


http://127.0.0.1:8080/fast.jsp

我的F试|页

Hello,Ƣ迎学习JSPQ?我的F试|页
{"age":39,"name":"liuyz2006"}


 



]]>
JSP中通过JavaBean讉K数据?/title><link>http://www.aygfsteel.com/liuyz2006/articles/367943.html</link><dc:creator>阿?/dc:creator><author>阿?/author><pubDate>Thu, 05 Jan 2012 11:37:00 GMT</pubDate><guid>http://www.aygfsteel.com/liuyz2006/articles/367943.html</guid><wfw:comment>http://www.aygfsteel.com/liuyz2006/comments/367943.html</wfw:comment><comments>http://www.aygfsteel.com/liuyz2006/articles/367943.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/liuyz2006/comments/commentRss/367943.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/liuyz2006/services/trackbacks/367943.html</trackback:ping><description><![CDATA[<p>-----------------faq.java<br />//java bean <br />//file name: faq.java </p> <p>package Test;<br />import java.sql.*; <br />public class faq { <br />String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; <br />String sConnStr = "jdbc:odbc:wz"; <br />Connection conn = null; <br />ResultSet rs = null; </p> <p>public faq() { <br />try { <br />Class.forName(sDBDriver); <br />}catch(java.lang.ClassNotFoundException e) { <br />System.err.println("faq(): " + e.getMessage()); <br />} <br />} </p> <p>public ResultSet executeQuery(String sql) { <br />rs = null; <br />try { <br />conn = DriverManager.getConnection(sConnStr,"liuyz","liuyz1"); <br />Statement stmt = conn.createStatement(); <br />rs = stmt.executeQuery(sql); <br />}catch(SQLException ex) { <br />System.err.println("aq.executeQuery: " + ex.getMessage()); <br />} <br />return rs; <br />} <br />} <br />----------------------Hello.java</p> <p>//java bean <br />//file name: faq.java <br />package Test;</p> <p>public class Hello { <br />String h="test"; </p> <p>public void setHello(String s) <br />{ <br />h=s;<br />} </p> <p>public String getHello() <br />{ <br />return h;<br />} </p> <p>public static void main (String[] args)<br />{<br />Hello ho= new Hello();<br />System.out.println(ho.h);<br />}</p> <p>}</p> <p><br />---------------------testfaq2.jsp<br /></p> <p><%@ page contentType="text/html;charset=gb2312" %><br /><html> <br /><head> <br /><meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <br /><title>我的FAQ !</title> <br /></head> <br /><body> <br /><p><b>q是我的FAQ!</b></p> </p> <p><%@ page language="java" import="java.sql.*" %> </p> <p><jsp:useBean id="Hello1"   scope="session" class="Test.Hello" /> </p> <p><br /><% <br />String str = "Hello,Ƣ迎学习JSPQ?; <br />Hello1.setHello(str); <br />out.println(Hello1.getHello() + "<br>"); <br />%> </p> <p><jsp:useBean id="mybean"  scope="session" class="Test.faq" /> </p> <p><% <br />ResultSet RS = mybean.executeQuery("SELECT * FROM  work_log"); <br />String tt; <br />while (RS.next()) { <br />tt = RS.getString("proc_name"); <br />out.print("<LI>" + RS.getString("begin_time") + "</LI>"); <br />out.print("<pre>" + tt + "</pre>"); <br />} <br />RS.close(); <br />%> </p> <p><br /></body> <br /></html></p> <p><br />1、javac -d . faq.java  ->faq.class<br />    javac -d . Hello.java ->Hello.class<br />2、把faq.class,Hello.class放于Tomcat 6.0\webapps\ROOT\WEB-INF\classes\Test?br />3、编辑testfaq2.jspQ调用javabean讉K数据?br /><br /><br /><br /></p><img src ="http://www.aygfsteel.com/liuyz2006/aggbug/367943.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/liuyz2006/" target="_blank">阿?/a> 2012-01-05 19:37 <a href="http://www.aygfsteel.com/liuyz2006/articles/367943.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp中访问数据库http://www.aygfsteel.com/liuyz2006/articles/367941.html阿?/dc:creator>阿?/author>Thu, 05 Jan 2012 11:19:00 GMThttp://www.aygfsteel.com/liuyz2006/articles/367941.htmlhttp://www.aygfsteel.com/liuyz2006/comments/367941.htmlhttp://www.aygfsteel.com/liuyz2006/articles/367941.html#Feedback0http://www.aygfsteel.com/liuyz2006/comments/commentRss/367941.htmlhttp://www.aygfsteel.com/liuyz2006/services/trackbacks/367941.html1、JDBC-ODBC桥接?br />机制Q应用程序只需建立JDBC和ODBC之间的连接,即JDBC-ODBC桥接器,而与数据库的q接由ODBCd?br />优点Q由于ODBC驱动E序q泛使用Q徏立这U桥接后Q得JDBC有能力访问几乎所有类型的数据?br />~点Q依赖ODBCQ移植性差Q即应用E序所ȝ的计机必须提供ODBC
步骤Q?br />Q?Q徏立JDBC-ODBC桥接?java.lang.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
Q?Q创建ODBC数据?nbsp;         ODBC数据库管理器
Q?Q和ODBC数据源徏立连?nbsp;DriverManager.getConnection("jdbc:odbc:数据源名?,"login name","password");
例一
------------------------------

<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.sql.*" %>
<html><body>
<%
Connection con =null;
Statement sql=null;
ResultSet rs=null;


try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   try{
   con=DriverManager.getConnection("jdbc:odbc:wz","liuyz","liuyz1");
   }
   catch(SQLException e)
   { e.printStackTrace();}
   }
   catch(ClassNotFoundException e)
   { e.printStackTrace();}

try{
sql=con.createStatement();
rs=sql.executeQuery("select * from work_log");

out.print("<table boder>");
out.print("<tr>");
out.print("<th width=100>"+"proc_name");
out.print("<th width=50>"+"sql_desc");
out.print("</tr>");
while(rs.next())
{
out.print("<tr>");
String s1=rs.getString(1);
String s2=rs.getString(2);
out.print("<td>"+s1+"</td>"+"<td>"+s2+"</td>");
out.print("</tr>");
}
out.print("</table>");
con.close();
}
catch (SQLException e)
{
out.print(e);
}
%>
</body>
</html>

 
2、用纯Java数据库驱动程?br />
注意把ojdbc14.jar
copy ORACLE_HOME/jdbc/lib/ojdbc14.jar  TOMCAT_HOME/webapps/ROOT/WEB_INF/lib
或?/span>
copy ORACLE_HOME/jdbc/lib/ojdbc14.jar TOMCAT_HOME/common/lib
M都可?/span>

机制QJDBC调用本地UJava驱动E序和相应的数据库徏立连?br />优点Q不依赖ODBCQ移植性好
步骤Q?br />Q?Q加载纯Java数据库驱动程?Class.forName("oracle.jdbc.driver.OracleDriver")
Q?Q和指定的数据库建立q接    DriverManager.getConnection("jdbc:oracle:thin:@10.77.xx.xx:1521:wzdata","liuyz","liuyz1")
例二
----------

<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.sql.*" %>
<html><body>
<%
Connection con =null;
Statement sql=null;
ResultSet rs=null;

try{ Class.forName("oracle.jdbc.driver.OracleDriver");}
   catch(ClassNotFoundException e)
   { e.printStackTrace();}


try {con=DriverManager.getConnection("jdbc:oracle:thin:@10.77.xx.xx:1521:wzdata","liuyz","liuyz1");}

   catch(SQLException e)
   { e.printStackTrace();}

 

try{
sql=con.createStatement();
rs=sql.executeQuery("select * from work_log");

out.print("<table boder>");
out.print("<tr>");
out.print("<th width=100>"+"proc_name");
out.print("<th width=50>"+"sql_desc");
out.print("</tr>");
while(rs.next())
{
out.print("<tr>");
String s1=rs.getString(1);
String s2=rs.getString(2);
out.print("<td>"+s1+"</td>"+"<td>"+s2+"</td>");
out.print("</tr>");
}
out.print("</table>");
con.close();
}
catch (SQLException e)
{
out.print(e);
}
%>
</body>
</html>

-------------------|络文摘-----------
oracle9i
copy $ORACLE_HOME/jdbc/lib/classes12.jar to $TOMCAT_HOME/webapps/ROOT/WEB_INF/lib
copy $ORACLE_HOME/jdbc/lib/ojdbc14.jar to $TOMCAT_HOME/common/lib
restart tomcat

connect.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<body>
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@ora_server:1521:orcl";
//orclZ的数据库的SID
String user="usr";
String password="pwd";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from table";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的W一个字D内容ؓQ?lt;%=rs.getString(1)%>
您的W二个字D内容ؓQ?lt;%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜?);%>
<%
rs.close();
stmt.close();
conn.close();
%>
</body>
</html> 
 



]]>
վ֩ģ壺 °| | ƽ| | ƽ̶| | ɽ| | | ʡ| ԣ| Ƽ| | | | | | | | | ̰| | | ֹ| ͼ| | | Ϫ| ̫| μ| | ǭ| | | | | ɽ| | Ϫ| | ɽ|