Ò»¸öajaxÇëÇóÒ»¸öjspÎļþ£¬²Ù×÷³É¹¦,jspÎļþout.println("1");µ«ÊÇÿ´Î³É¹¦ºóxmlHttp.responseText=='1'×ÜÊÇΪfalse£¬
ÓÃencodeURIComponent¿´xmlHttp.responseText£¬·¢ÏÖ×îºó¶àÁË%0A%0D£¬°Ù¶ÈһϠÓÃÀ´ÊÇ»»ÐУ¬
jspÎļþÖеÄout.println……°ÑlnÈ¥µôÔÙ´Î±È½Ï ³É¹¦ = =¡£
½âÊÍÏ encodeURIComponent µÄ×÷Ó㺽«Îı¾×Ö·û´®±àÂëΪһ¸öÓÐЧµÄͳһ×ÊÔ´±êʶ·û (URI)¡£
ΪʲôҪÓÃÕâ¸öÊÇÒòΪÎÒÏë°Ñ username Õû¸öµ±×ö²ÎÊý´«µÝ¸ø CGI, ¶ø²»Èà CGI ½« username ·Ö¸îµô¡£Õâ»°Ìý²»Ã÷°×µÄ»°ÎÒ»»ÖÖ·½Ê½À´Ëµ£¬Èç¹û username = 'a&foo=boo' ¶ø²»Óà encodeURIComponent µÄ»°£¬Õû¸ö²ÎÊý¾Í³ÉÁË name=a&foo=boo, ÕâÑù CGI ¾Í»ñµÃÁ½¸ö²ÎÊý name ºÍ foo. Õâ²»ÊÇÎÒÃÇÏëÒªµÄ¡£
Javascript ÀﻹÓиöͬÑù¹¦Äܵĺ¯Êý encodeURI, µ«ÊÇ´Ë·½·¨²»»á¶ÔÏÂÁÐ×Ö·û½øÐбàÂ룺":"¡¢"/"¡¢";" ºÍ "?"¡£ ......
Ò»¸öajaxÇëÇóÒ»¸öjspÎļþ£¬²Ù×÷³É¹¦,jspÎļþout.println("1");µ«ÊÇÿ´Î³É¹¦ºóxmlHttp.responseText=='1'×ÜÊÇΪfalse£¬
ÓÃencodeURIComponent¿´xmlHttp.responseText£¬·¢ÏÖ×îºó¶àÁË%0A%0D£¬°Ù¶ÈһϠÓÃÀ´ÊÇ»»ÐУ¬
jspÎļþÖеÄout.println……°ÑlnÈ¥µôÔÙ´Î±È½Ï ³É¹¦ = =¡£
½âÊÍÏ encodeURIComponent µÄ×÷Ó㺽«Îı¾×Ö·û´®±àÂëΪһ¸öÓÐЧµÄͳһ×ÊÔ´±êʶ·û (URI)¡£
ΪʲôҪÓÃÕâ¸öÊÇÒòΪÎÒÏë°Ñ username Õû¸öµ±×ö²ÎÊý´«µÝ¸ø CGI, ¶ø²»Èà CGI ½« username ·Ö¸îµô¡£Õâ»°Ìý²»Ã÷°×µÄ»°ÎÒ»»ÖÖ·½Ê½À´Ëµ£¬Èç¹û username = 'a&foo=boo' ¶ø²»Óà encodeURIComponent µÄ»°£¬Õû¸ö²ÎÊý¾Í³ÉÁË name=a&foo=boo, ÕâÑù CGI ¾Í»ñµÃÁ½¸ö²ÎÊý name ºÍ foo. Õâ²»ÊÇÎÒÃÇÏëÒªµÄ¡£
Javascript ÀﻹÓиöͬÑù¹¦Äܵĺ¯Êý encodeURI, µ«ÊÇ´Ë·½·¨²»»á¶ÔÏÂÁÐ×Ö·û½øÐбàÂ룺":"¡¢"/"¡¢";" ºÍ "?"¡£ ......
JSPÄÚÖöÔÏó(9¸ö³£ÓõÄÄÚÖöÔÏó)
1.request¶ÔÏó
¿Í»§¶ËµÄÇëÇóÐÅÏ¢±»·â×°ÔÚrequest¶ÔÏóÖУ¬Í¨¹ýËü²ÅÄÜÁ˽⵽¿Í»§µÄÐèÇó£¬È»ºó×ö³öÏìÓ¦¡£ËüÊÇHttpServletRequestÀàµÄʵÀý¡£
ÐòºÅ ·½ ·¨ ˵ Ã÷
1 object getAttribute(String name) ·µ»ØÖ¸¶¨ÊôÐÔµÄÊôÐÔÖµ
2 Enumeration getAttributeNames() ·µ»ØËùÓпÉÓÃÊôÐÔÃûµÄö¾Ù
3 String getCharacterEncoding() ·µ»Ø×Ö·û±àÂ뷽ʽ
4 int getContentLength() ·µ»ØÇëÇóÌåµÄ³¤¶È£¨ÒÔ×Ö½ÚÊý£©
5 String getContentType() µÃµ½ÇëÇóÌåµÄMIMEÀàÐÍ
6 ServletInputStream getInputStream() µÃµ½ÇëÇóÌåÖÐÒ»ÐеĶþ½øÖÆÁ÷
7 String getParameter(String name) ·µ»ØnameÖ¸¶¨²ÎÊýµÄ²ÎÊýÖµ
8 Enumeration getParameterNames() ·µ»Ø¿ÉÓòÎÊýÃûµÄö¾Ù
9 String[] getParameterValues(String name) ·µ»Ø°üº¬²ÎÊýnameµÄËùÓÐÖµµÄÊý×é
10 String getProtocol() ·µ»ØÇëÇóÓõÄÐÒéÀàÐͼ°°æ±¾ºÅ
11 String getScheme() ·µ»ØÇëÇóÓõļƻ®Ãû,Èç:http.https¼°ftpµÈ
12 String getServerName() ·µ»Ø½ÓÊÜÇëÇóµÄ·þÎñÆ÷Ö÷»úÃû
13 int getServerPort() ·µ»Ø·þÎñÆ÷½ÓÊÜ´ËÇëÇóËùÓõĶ˿ںÅ
14 BufferedReader getReader() ·µ»Ø½âÂë¹ýÁ ......
1¡¢forward ºÍredirectµÄÇø±ð
´ð£ºforwardÊÇ·þÎñÆ÷ÇëÇó×ÊÔ´£¬·þÎñÆ÷Ö±½Ó·ÃÎÊÄ¿±êµØÖ·µÄURL£¬°ÑÄǸöURLµÄÏìÓ¦ÄÚÈݶÁÈ¡¹ýÀ´£¬È»ºó°ÑÕâЩÄÚÈÝÔÙ·¢¸øä¯ÀÀÆ÷£¬ä¯ÀÀÆ÷¸ù±¾²»ÖªµÀ·þÎñÆ÷·¢Ë͵ÄÄÚÈÝÊÇ´ÓÄĶùÀ´µÄ£¬ËùÒÔËüµÄµØÖ·À¸Öл¹ÊÇÔÀ´µÄµØÖ·¡£
redirect¾ÍÊÇ·þÎñ¶Ë¸ù¾ÝÂß¼,·¢ËÍÒ»¸ö״̬Âë,¸æËßä¯ÀÀÆ÷ÖØÐÂÈ¥ÇëÇóÄǸöµØÖ·£¬Ò»°ãÀ´Ëµä¯ÀÀÆ÷»áÓøղÅÇëÇóµÄËùÓвÎÊýÖØÐÂÇëÇó£¬ËùÒÔsession,request²ÎÊý¶¼¿ÉÒÔ»ñÈ¡¡£
2¡¢jspÓÐÄÄЩÄÚÖöÔÏó?×÷Ó÷ֱðÊÇʲô?
´ð£ºJSP¹²ÓÐÒÔÏÂ9ÖÖ»ù±¾ÄÚÖÃ×é¼þ£¨¿ÉÓëASPµÄ6ÖÖÄÚ²¿×é¼þÏà¶ÔÓ¦£©£º
¡¡request Óû§¶ËÇëÇ󣬴ËÇëÇó»á°üº¬À´×ÔGET/POSTÇëÇóµÄ²ÎÊý
response ÍøÒ³´«»ØÓû§¶ËµÄ»ØÓ¦
pageContext ÍøÒ³µÄÊôÐÔÊÇÔÚÕâÀï¹ÜÀí
session ÓëÇëÇóÓйصĻỰÆÚ
application servlet ÕýÔÚÖ´ÐеÄÄÚÈÝ
out ÓÃÀ´´«ËÍ»ØÓ¦µÄÊä³ö
config servletµÄ¹¹¼Ü²¿¼þ
page JSPÍøÒ³±¾Éí
exception Õë¶Ô´íÎóÍøÒ³£¬Î´²¶×½µÄÀýÍâ
3¡¢jspÓÐÄÄЩ¶¯×÷?×÷Ó÷ֱðÊÇʲô?
´ð:JSP¹²ÓÐÒÔÏÂ6ÖÖ»ù±¾¶¯×÷
jsp:incl ......
µÚÒ»½²£¨²Î¿¼¡¶Java Web³ÌÐòÉè¼Æ»ù´¡½Ì³Ì¡·µÚ1Õ£©
1 JSP ºÍ JavaµÄ¹ØÏµ
Ò»°ãJavaÖ¸µÄ±ê×¢°æ Java SE
ÁíÍâÁ½¸ö°æ±¾£ºJava EE ºÍ Java ME
JSPÊôÓÚJava EEµÄÒ»²¿·Ö¡£
Java EE£º
×é¼þ£ºWeb²ã×é¼þ£¨JSP£«Servlet£©£«ÒµÎñ²ã×é¼þ£¨EJB£©
·þÎñ£ºJNDI JDBC RMI JAAS JavaMailµÈµÈ
Java EE°üÀ¨2¸öÌåϵ£º±ê×¼£¨ÉÏÃæ½éÉܵģ©£«Á÷ÐУ¨Struts£«Hibernate£«Spring£©
Á½Ì×Ìåϵ¶¼ÊÇJSP£«ServletΪ»ù´¡¡£
2 JSP»áÉæ¼°ÄÄЩÄÚÈÝ
JSPÓï·¨»ù´¡£¨Java£«HTML£©£º
¶ÔÓÚJava£¬ÐèÒªÕÆÎÕJavaµÄ»ù±¾Óï·¨£¨ÀඨÒå ¶ÔÏó¶¨ÒåºÍʹÓà ³£ÓÃÀà¿âjava.lang.*,java.util.*£©
¶ÔÓÚHTML£¬Ö÷Òª±íµ¥ÔªËØ£¨ÊäÈ룩£«±í¸ñ£¨ÏÔʾÐÅÏ¢£©£«»ù±¾HTML
JSTL£¬±ê×¼±êÇ©¿â£¬ÓÃÓÚÊä³öºÍ¿ØÖÆ
EL£¬Í¨³£ÓëJSTLÒ»ÆðʹÓã¬Ö÷ÒªÓÃÓÚÊä³ö
Servlet£¬¼¸ºõËùÓнéÉÜJSPµÄÊéºÍ¿Î³Ì¶¼°üº¬Servlet£¬ÒòΪJSPʵ¼ÊÉÏÖ¸µÄÊÇJava Web¿ª·¢¡£ÓÃServletÖ÷Òª ......
ʹÓÃJSP´óÔ¼ÓÐÏÂÁÐÈýÖÖÌø×ª·½Ê½£º
1. response.sendRedirect();
2. response.setHeader("Location","");
3. £¼jsp:forward page="" /£¾
¾¹ýÊÔÑéµÃµ½ÏÂÃæµÄһЩ¹æÔò£º
Ò». response.sendRedirect()
´ËÓï¾äǰ²»ÔÊÐíÓÐout.flush()£¬Èç¹ûÓÐout.flush()£¬»áÓÐÒì³££º
java.lang.IllegalStateException: Can't sendRedirect() after data has committed to the client.
at com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)
...
Ìø×ªºóä¯ÀÀÆ÷µØÖ·À¸±ä»¯
Èç¹ûÒªÌøµ½²»Í¬Ö÷»úÏ£¬Ìø×ªºó£¬´ËÓï¾äºóÃæµÄÓï¾ä»á¼ÌÐøÖ´ÐУ¬ÈçͬпªÁËỊ̈߳¬µ«ÊǶÔresponseµÄ²Ù×÷ÒѾÎÞÒâÒåÁË£»
Èç¹ûÒªÌøµ½ÏàͬÖ÷»úÏ£¬´ËÓï¾äºóÃæµÄÓï¾äÖ´ÐÐÍê³Éºó²Å»áÌø×ª£»
¶þ. response.setHeader("Location","")
´ËÓï¾äǰ²»ÔÊÐíÓÐout.flush()£¬Èç¹ûÓÐout.flush()£¬Ò³Ãæ²»»áÌø×ª¡£
Ìø×ªºóä¯ÀÀÆ÷µØÖ·À¸±ä»¯
´ËÓï¾äºóÃæµÄÓï¾äÖ´ÐÐÍê³Éºó²Å»áÌø×ª
Èý. £¼jsp:forward page="" /£¾
´ËÓï¾äǰ²»ÔÊÐíÓÐout.flush()£¬Èç¹ûÓУ¬»áÓÐÒì³££º
java.lang.IllegalStateException: forward() not allowed after buffer has committed.
at com.cauc ......
£¨1£©Ö±½ÓÔÚURLÇëÇóºóÌí¼Ó
¡¡¡¡ È磺<a href="thexuan.jsp?action=transparams&detail=directe")Ö±½Ó´«µÝ²ÎÊý/a>
¡¡¡¡ ÌØ±ðµÄÔÚʹÓÃresponse.sendRedirect×öÒ³Ãæ×ªÏòµÄʱºò£¬Ò²¿ÉÒÔÓÃÈçÏ´úÂ룺
¡¡¡¡ response.sendRedirect("thexuan.jsp?action=transparams&detail=directe") £¬¿ÉÓÃrequest.getParameter(name)È¡µÃ²ÎÊý
¡¡¡¡
¡¡¡¡ £¨2£©jsp:param
¡¡¡¡ Ëü¿ÉÒÔʵÏÖÖ÷Ò³ÃæÏò°üº¬Ò³Ãæ´«µÝ²ÎÊý£¬ÈçÏ£º
¡¡¡¡ <jsp:include page="Relative URL">
¡¡¡¡ <jsp:param name="param name" value="paramvalue" />
¡¡¡¡ </jsp:include>
¡¡¡¡ »¹¿ÉÒÔʵÏÖÔÚʹÓÃjsp:forward¶¯×÷×öÒ³ÃæÌø×ªÊ±´«µÝ²ÎÊý£¬ÈçÏ£º
¡¡¡¡ <jsp:forward page="Relative URL">
¡¡¡¡ <jsp:param name="paramname" value="paramvalue" />
¡¡¡¡ </jsp:forward> ͨ¹ýÕâÖÖ·½Ê½ºÍÒ»°ãµÄ±íµ¥²ÎÊýÒ»ÑùµÄ£¬Ò²¿ÉÒÔͨ¹ýrequ ......