µ±Ç°Î»ÖãºÊ×Ò³ > ÍøÂç±à³Ì > WEB±à³Ì > JSP > ¸ßÐÔÄÜ¡¢¸ßµ¯ÐÔJSPºÍServletÐÔÄÜÓÅ»¯

¸ßÐÔÄÜ¡¢¸ßµ¯ÐÔJSPºÍServletÐÔÄÜÓÅ»¯

µã»÷´ÎÊý£º26 ´Î ·¢²¼ÈÕÆÚ£º2008-11-22 13:29:36 ×÷ÕߣºÔ´´úÂëÍø
Ô´´úÂëÍøÍÆ¼ö

ÄãµÄJ2EEÓ¦ÓÃÊDz»ÊÇÔËÐеĺÜÂý?ËüÃÇÄܲ»ÄܳÐÊÜס²»¶ÏÉÏÉýµÄ·ÃÎÊÁ¿?±¾ÎĽ²ÊöÁË¿ª·¢¸ßÐÔÄÜ¡¢¸ßµ¯ÐÔµÄJSPÒ³ÃæºÍServletµÄÐÔÄÜÓÅ»¯¼¼Êõ¡£ÆäÒâ˼Êǽ¨Á¢¾¡¿ÉÄÜ¿ìµÄ²¢ÄÜÊÊÓ¦ÊýÁ¿Ôö³¤µÄÓû§¼°ÆäÇëÇó¡£

ÔÚ±¾ÎÄÖУ¬ÎÒ½«´øÁìÄãѧϰÒѾ­Êµ¼ùºÍµÃµ½Ö¤ÊµµÄÐÔÄܵ÷Õû¼¼Êõ£¬Ëü½«´ó´óµØÌá¸ßÄãµÄservletºÍjspÒ³ÃæµÄÐÔÄÜ£¬½ø¶øÌáÉýJ2EEµÄÐÔÄÜ¡£ÕâЩ¼¼ÊõµÄ²¿·ÖÓÃÓÚ¿ª·¢½×¶Î£¬ÀýÈ磬Éè¼ÆºÍ±àÂë½×¶Î¡£ÁíÒ»²¿·Ö¼¼ÊõÔòÓëÅäÖÃÏà¹Ø¡£

¡¡¡¡¼¼Êõ1£ºÔÚHttpServlet init()·½·¨Öлº´æÊý¾Ý

¡¡¡¡·þÎñÆ÷»áÔÚ´´½¨servletʵÀýÖ®ºóºÍservlet´¦ÀíÈκÎÇëÇó֮ǰµ÷ÓÃservletµÄinit()·½·¨¡£¸Ã·½·¨ÔÚservletµÄÉúÃüÖÜÆÚÖнöµ÷ÓÃÒ»´Î¡£ÎªÁËÌá¸ßÐÔÄÜ£¬ÔÚinit()Öлº´æ¾²Ì¬Êý¾Ý»òÍê³ÉÒªÔÚ³õʼ»¯ÆÚ¼äÍê³ÉµÄ´ú¼Û°º¹óµÄ²Ù×÷¡£ÀýÈ磬һ¸ö×î¼Ñʵ¼ùÊÇʹÓÃʵÏÖÁËjavax.sql.DataSource½Ó¿ÚµÄJDBCÁ¬½Ó³Ø¡£DataSource´ÓJNDIÊ÷ÖлñµÃ¡£Ã¿µ÷ÓÃÒ»´ÎSQL¾ÍҪʹÓÃJNDI²éÕÒDataSourceÊǷdz£°º¹óµÄ¹¤×÷£¬¶øÇÒÑÏÖØÓ°ÏìÁËÓ¦ÓõÄÐÔÄÜ¡£ServletµÄinit()·½·¨¿ÉÒÔÓÃÓÚ»ñÈ¡DataSource²¢»º´æËüÒÔ±ãÖ®ºóµÄÖØÓãº

ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
¡¡¡¡public class ControllerServlet extends HttpServlet
¡¡¡¡{
¡¡¡¡private javax.sql.DataSource testDS = null;
¡¡¡¡public void init(ServletConfig config) throws ServletException
¡¡¡¡{
¡¡¡¡super.init(config);
¡¡¡¡Context ctx¡¡= null;
¡¡¡¡try
¡¡¡¡{
¡¡¡¡ctx = new InitialContext();
¡¡¡¡testDS = (javax.sql.DataSource)ctx.lookup("jdbc/testDS");
¡¡¡¡}
¡¡¡¡catch(NamingException ne)
¡¡¡¡{
¡¡¡¡ne.printStackTrace();
¡¡¡¡}
¡¡¡¡catch(Exception e)
¡¡¡¡{
¡¡¡¡e.printStackTrace();
¡¡¡¡}
¡¡¡¡}
¡¡¡¡public javax.sql.DataSource getTestDS()
¡¡¡¡{
¡¡¡¡return testDS;
¡¡¡¡}
¡¡¡¡...
¡¡¡¡...
¡¡¡¡}


¡¡¡¡¼¼Êõ2£º½ûÓÃservletºÍJspµÄ×Ô¶¯×°Ôع¦ÄÜ

¡¡¡¡µ±Ã¿´ÎÐÞ¸ÄÁËServlet/JSPÖ®ºó£¬Ä㽫²»µÃ²»ÖØÐÂÆô¶¯·þÎñÆ÷¡£ÓÉÓÚ×Ô¶¯×°Ôع¦ÄܼõÉÙ¿ª·¢Ê±¼ä£¬¸Ã¹¦Äܱ»ÈÏΪÔÚ¿ª·¢½×¶ÎÊǷdz£ÓÐÓõġ£µ«ÊÇ£¬ËüÔÚÔËÐн׶ÎÊǷdz£°º¹óµÄ;servlet/JSPÓÉÓÚ²»±ØÒªµÄ×°ÔØ£¬Ôö¼ÓÀà×°ÔØÆ÷µÄ¸ºµ£¶øÔì³ÉºÜ²îµÄÐÔÄÜ¡£Í¬Ñù£¬Õâ»áʹÄãµÄÓ¦ÓÃÓÉÓÚÒѱ»Ä³ÖÖÀà×°ÔØÆ÷×°ÔØµÄÀ಻Äܺ͵±Ç°Àà×°ÔØÆ÷×°ÔØµÄÀ಻ÄÜÏ໥Э×÷¶ø³öÏÖÆæ¹ÖµÄ³åÍ»ÏÖÏó¡£Òò´Ë£¬ÔÚÔËÐл·¾³ÖÐΪÁ˵õ½¸üºÃµÄÐÔÄÜ£¬¹Ø±Õservlet/JSPµÄ×Ô¶¯×°Ôع¦ÄÜ¡£

¡¡¡¡¼¼Êõ3£º¿ØÖÆHttpSession

¡¡¡¡Ðí¶àÓ¦ÓÃÐèҪһϵÁпͻ§¶ËµÄÇëÇó£¬Òò´ËËûÃÇÄÜ»¥ÏàÏà¹ØÁª¡£ÓÉÓÚHTTPЭÒéÊÇÎÞ״̬µÄ£¬ËùÒÔ»ùÓÚWebµÄÓ¦ÓÃÐèÒª¸ºÔðά»¤ÕâÑùÒ»¸ö½Ð×ösessionµÄ״̬¡£ÎªÁËÖ§³Ö±ØÐëά»¤×´Ì¬µÄÓ¦Óã¬Java servlet¼¼ÊõÌṩÁ˹ÜÀísessionºÍÔÊÐí¶àÖÖ»úÖÆÊµÏÖsessionµÄAPI¡£HttpSession¶ÔÏó°çÑÝÁËsession£¬µ«ÊÇʹÓÃËüÐèÒª³É±¾¡£ÎÞÂÛºÎʱHttpSession±»Ê¹ÓúÍÖØÐ´£¬Ëü¶¼ÓÉservlet¶ÁÈ¡¡£Äã¿ÉÒÔͨ¹ýʹÓÃÏÂÃæµÄ¼¼ÊõÀ´Ìá¸ßÐÔÄÜ£º

¡¡¡¡ÔÚJSPÒ³ÃæÖв»Òª´´½¨Ä¬ÈϵÄHttpSession:ĬÈÏÇé¿öÏ£¬JSPÒ³Ãæ´´½¨HttpSession¡£Èç¹ûÄãÔÚJSPÒ³ÃæÖв»ÓÃHttpSession£¬ÎªÁ˽ÚÊ¡ÐÔÄÜ¿ªÏú£¬Ê¹ÓÃϱߵÄÒ³ÃæÖ¸Áî¿ÉÒÔ±ÜÃâ×Ô¶¯´´½¨HttpSession¶ÔÏó£º

ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
< %@ page session="false"%>


¡¡¡¡²»Òª½«´óµÄ¶ÔÏóͼ´æ´¢ÔÚHttpSessionÖУºÈç¹ûÄ㽫Êý¾Ýµ±×÷Ò»¸ö´óµÄ¶ÔÏóͼ´æ´¢ÔÚHttpSessionÖУ¬Ó¦Ó÷þÎñÆ÷ÿ´Î½«²»µÃ²»´¦ÀíÕû¸öHttpSession¶ÔÏó¡£Õ⽫ÆÈʹJavaÐòÁл¯ºÍÔö¼Ó¼ÆË㿪Ïú¡£ÓÉÓÚÐòÁл¯µÄ¿ªÏú£¬Ëæ×Å´æ´¢ÔÚHttpSession¶ÔÏóÖÐÊý¾Ý¶ÔÏóµÄÔö´ó£¬ÏµÍ³µÄÍÌÍÂÁ¿½«»áϽµ¡£

¡¡¡¡ÓÃÍêºóÊÍ·ÅHttpSession£ºµ±²»ÔÚʹÓÃHttpSessionʱ£¬Ê¹ÓÃHttpSession.invalidate()·½·¨Ê¹sesionʧЧ¡£

¡¡¡¡ÉèÖó¬Ê±Öµ£ºÒ»¸öservletÒýÇæÓÐÒ»¸öĬÈϵij¬Ê±Öµ¡£Èç¹ûÄ㲻ɾ³ýsession»òÕßÒ»Ö±°ÑsessionÓõ½Ëü³¬Ê±µÄʱºò£¬servletÒýÇæ½«°Ñsession´ÓÄÚ´æÖÐɾ³ý¡£ÓÉÓÚÔÚÄÚ´æºÍÀ¬»øÊÕ¼¯ÉϵĿªÏú£¬sessionµÄ³¬Ê±ÖµÔ½´ó£¬Ëü¶Ôϵͳµ¯ÐÔºÍÐÔÄܵÄÓ°ÏìÒ²Ô½´ó¡£ÊÔ׎«sessionµÄ³¬Ê±ÖµÉèÖõľ¡¿ÉÄܵ͡£

¡¡¡¡¼¼Êõ4£ºÊ¹ÓÃgzipѹËõ

¡¡¡¡Ñ¹ËõÊÇɾ³ýÈßÓàÐÅÏ¢µÄ×÷·¨£¬Óþ¡¿ÉÄÜСµÄ¿Õ¼äÃèÊöÄãµÄÐÅÏ¢¡£Ê¹ÓÃgzip(GNU zip)ѹËõÎĵµÄÜÓÐЧµØ¼õÉÙÏÂÔØHTMLÎļþµÄʱ¼ä¡£ÄãµÄÐÅÏ¢Á¿Ô½Ð¡£¬ËüÃDZ»ËͳöµÄËÙ¶ÈÔ½¿ì¡£Òò´Ë£¬Èç¹ûÄãѹËõÁËÓÉÄãwebÓ¦ÓòúÉúµÄÄÚÈÝ£¬Ëüµ½´ïÓû§²¢ÏÔʾÔÚÓû§ÆÁÄ»ÉϵÄËٶȾÍÔ½¿ì¡£²»ÊÇÈκÎä¯ÀÀÆ÷¶¼Ö§³ÖgzipѹËõµÄ£¬µ«¼ì²éÒ»¸öä¯ÀÀÆ÷ÊÇ·ñÖ§³ÖËü²¢·¢ËÍgzipѹËõÄÚÈݵ½ä¯ÀÀÆ÷ÊǺÜÈÝÒ×µÄÊÂÇ顣ϱߵĴúÂë¶Î˵Ã÷ÁËÈçºÎ·¢ËÍѹËõµÄÄÚÈÝ¡£

ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
¡¡¡¡public void doGet(HttpServletRequest request, HttpServletResponse response)
¡¡¡¡throws IOException, ServletException
¡¡¡¡{
¡¡¡¡OutputStream out = null
¡¡¡¡// Check the Accepting-Encoding header from the HTTP request.
¡¡¡¡// If the header includes gzip, choose GZIP.
¡¡¡¡// If the header includes compress, choose ZIP.
¡¡¡¡// Otherwise choose no compression.
¡¡¡¡String encoding = request.getHeader("Accept-Encoding");
¡¡¡¡if (encoding != null && encoding.indexOf("gzip") != -1)
¡¡¡¡{
¡¡¡¡response.setHeader("Content-Encoding" , "gzip");
¡¡¡¡out = new GZIPOutputStream(response.getOutputStream());
¡¡¡¡}
¡¡¡¡else if (encoding != null && encoding.indexOf("compress") != -1)
¡¡¡¡{
¡¡¡¡response.setHeader("Content-Encoding" , "compress");
¡¡¡¡out = new ZIPOutputStream(response.getOutputStream());
¡¡¡¡}
¡¡¡¡else
¡¡¡¡{
¡¡¡¡out = response.getOutputStream();
¡¡¡¡}
¡¡¡¡...
¡¡¡¡...
¡¡¡¡}


¡¡¡¡¼¼Êõ5£º²»ÒªÊ¹ÓÃSingleThreadModel

¡¡¡¡SingleThreadModel±£Ö¤servletÒ»´Î½ö´¦ÀíÒ»¸öÇëÇó¡£Èç¹ûÒ»¸öservletʵÏÖÁËÕâ¸ö½Ó¿Ú£¬servletÒýÇæ½«ÎªÃ¿¸öеÄÇëÇó´´½¨Ò»¸öµ¥¶ÀµÄservletʵÀý£¬Õ⽫ÒýÆð´óÁ¿µÄϵͳ¿ªÏú¡£Èç¹ûÄãÐèÒª½â¾öḬ̈߳²È«ÎÊÌ⣬ÇëʹÓÃÆäËûµÄ°ì·¨Ìæ´úÕâ¸ö½Ó¿Ú¡£SingleThreadModelÔÚServlet 2.4ÖÐÊDz»ÔÙÌᳫʹÓá£

¡¡¡¡¼¼Êõ6£ºÊ¹ÓÃÏ̳߳Ø

¡¡¡¡servletÒýÇæÎªÃ¿¸öÇëÇó´´½¨Ò»¸öµ¥¶ÀµÄỊ̈߳¬½«¸ÃÏß³ÌÖ¸Åɸøservice()·½·¨£¬È»ºóÔÚservice()·½·¨Ö´ÐÐÍêºóɾ³ý¸ÃÏ̡߳£Ä¬ÈÏÇé¿öÏ£¬servletÒýÇæ¿ÉÄÜΪÿ¸öÇëÇó´´½¨Ò»¸öеÄÏ̡߳£ÓÉÓÚ´´½¨ºÍɾ³ýÏ̵߳ĿªÏúÊǺܰº¹óµÄ£¬ÓÚÊÇÕâÖÖĬÈÏÐÐΪ½µµÍÁËϵͳµÄÐÔÄÜ¡£ÎÒÃÇ¿ÉÒÔʹÓÃÏ̳߳ØÀ´Ìá¸ßÐÔÄÜ¡£¸ù¾ÝÔ¤ÆÚµÄ²¢·¢Óû§ÊýÁ¿£¬ÅäÖÃÒ»¸öÏ̳߳أ¬ÉèÖúÃÏ̳߳ØÀïµÄÏß³ÌÊýÁ¿µÄ×îСºÍ×î´óÖµÒÔ¼°Ôö³¤µÄ×îСºÍ×î´óÖµ¡£Æð³õ£¬servletÒýÇæ´´½¨Ò»¸öÏß³ÌÊýÓëÅäÖÃÖеÄ×îСÏß³ÌÊýÁ¿ÏàµÈµÄÏ̳߳ء£È»ºóservletÒýÇæ°Ñ³ØÖеÄÒ»¸öÏß³ÌÖ¸ÅɸøÒ»¸öÇëÇó¶ø²»ÊÇÿ´Î¶¼´´½¨ÐµÄỊ̈߳¬Íê³É²Ù×÷Ö®ºó£¬servletÒýÇæ°ÑÏ̷߳Żص½Ï̳߳ØÖС£Ê¹ÓÃÏ̳߳أ¬ÐÔÄÜ¿ÉÒÔÏÔ×ŵØÌá¸ß¡£Èç¹ûÐèÒª£¬¸ù¾ÝÏ̵߳Ä×î´óÊýºÍÔö³¤Êý£¬¿ÉÒÔ´´½¨¸ü¶àµÄÏ̡߳£

¡¡¡¡¼¼Êõ7£ºÑ¡ÔñÕýÈ·µÄ°üÀ¨»úÖÆ

¡¡¡¡ÔÚJSPÒ³ÃæÖУ¬ÓÐÁ½Öз½Ê½¿ÉÒÔ°üÀ¨Îļþ£º°üÀ¨Ö¸Áî(< %@ include file="test.jsp" %>)ºÍ°üÀ¨¶¯×÷(< jsp:include page="test.jsp" flush="true" />)¡£°üÀ¨Ö¸ÁîÔÚ±àÒë½×¶Î°üÀ¨Ò»¸öÖ¸¶¨ÎļþµÄÄÚÈÝ;ÀýÈ磬µ±Ò»¸öÒ³Ãæ±àÒë³ÉÒ»¸öservletʱ¡£°üÀ¨¶¯×÷ÊÇÖ¸ÔÚÇëÇó½×¶Î°üÀ¨ÎļþÄÚÈÝ;ÀýÈ磬µ±Ò»¸öÓû§ÇëÇóÒ»¸öÒ³ÃæÊ±¡£°üÀ¨Ö¸ÁîÒª±È°üÀ¨¶¯×÷¿ìЩ¡£Òò´Ë³ý·Ç±»°üÀ¨µÄÎļþ¾­³£±ä¶¯£¬·ñÔòʹÓðüÀ¨Ö¸Á»á»ñµÃ¸üºÃµÄÐÔÄÜ¡£

¡¡¡¡¼¼Êõ8£ºÔÚuseBean¶¯×÷ÖÐʹÓúÏÊʵķ¶Î§

¡¡¡¡Ê¹ÓÃJSPÒ³Ãæ×îÇ¿´ó·½Ê½Ö®Ò»ÊǺÍJavaBean×é¼þЭͬ¹¤×÷¡£JavaBeanʹÓÃ< jsp:useBean>±êÇ©¿ÉÒÔǶÈëµ½JSPÒ³ÃæÖС£Óï·¨ÈçÏ£º

ÒÔÏÂÊÇÒýÓÃÆ¬¶Î£º
¡¡¡¡< jsp:useBean id="name" scope="page|request|session|application" class=
¡¡¡¡"package.className" type="typeName">
¡¡¡¡< /jsp:useBean>


¡¡¡¡scopeÊôÐÔ˵Ã÷ÁËbeanµÄ¿É¼û·¶Î§¡£scopeÊôÐÔµÄĬÈÏÖµÊÇpage¡£ÄãÓ¦¸Ã¸ù¾ÝÄãÓ¦ÓõÄÐèÇóÑ¡ÔñÕýÈ·µÄ·¶Î§£¬·ñÔòËü½«Ó°ÏìÓ¦ÓõÄÐÔÄÜ¡£

¡¡¡¡ÀýÈ磬Èç¹ûÄãÐèÒªÒ»¸öרÓÃÓÚijЩÇëÇóµÄ¶ÔÏ󣬵«ÊÇÄã°Ñ·¶Î§ÉèÖóÉÁËsession£¬ÄÇôÄǸö¶ÔÏó½«ÔÚÇëÇó½áÊøÖ®ºó»¹±£ÁôÔÚÄÚ´æÖС£Ëü½«Ò»Ö±±£ÁôÔÚÄÚ´æÖгý·ÇÄãÃ÷È·µØ°ÑËü´ÓÄÚ´æÖÐɾ³ý¡¢Ê¹sessionÎÞЧ»òsession³¬Ê±¡£Èç¹ûÄãûÓÐÑ¡ÔñÕýÈ·µÄ·¶Î§ÊôÐÔ£¬ÓÉÓÚÄÚ´æºÍÀ¬»øÊÕ¼¯µÄ¿ªÏú½«»áÓ°ÏìÐÔÄÜ¡£Òò´ËΪ¶ÔÏóÉèÖúÏÊʵķ¶Î§²¢ÔÚÓÃÍêËüÃÇÖ®ºóÁ¢¼´É¾³ý

Ô´´úÂëÍø¹©¸å.
ÍøÓÑÆÀÂÛ (0)
»áÔ±ÖÐÐÄ
ÍøÂç±à³Ì
±¾Õ¾ÍƼö
ÍøÂç±à³ÌÖ®¾«»ª