锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 銆銆<FRAMESET> <FRAME> 銆銆嬈叉槑鐧芥湰綃囥?/span>HTML褰誨簳鍓栨瀽銆戜箣鏍囪鍒嗙被錛岃鐪?/span> 銆愭爣璁頒竴瑙堛戙?/span> 銆銆璋撴鏋朵究鏄綉欏電敾闈㈠垎鎴愬嚑涓紿楋紝鍚屾椂鍙栧緱澶氫釜 URL銆傚彧闇瑕?/span> <FRAMESET> <FRAME> 鍗沖彲錛岄潰鎵鏈夋鏋舵爣璁伴渶瑕佹斁鍦ㄤ竴涓昏搗鐨?/span> html 妗o紝榪欎釜妗f鍙褰曚簡璇ユ鏋跺浣曞垎鍓?/span> 錛屼笉浼氭樉紺轟換浣曡祫鏂欙紝鎵浠ヤ笉蹇呮斁鍏?/span> <BODY> 鏍囪錛屾祻瑙堣繖妗嗘灦蹇呴』璇誨彇榪欐。妗?/span> 闈笉鏄叾浠栨紿楃殑妗f銆?/span><FRAMESET> 鏄敤鏉ュ垝鍒嗘紿楋紝姣忎竴紿楁鐢變竴涓?/span> <FRAME> 鏍?/span> 璁版墍鏍囩ず錛?/span><FRAME>蹇呴』鍦?/span> <FRAMESET> 鑼冨洿涓嬌鐢ㄣ傚涓嬩緥錛?/span> 銆銆<frameset cols="50%,*"> <frame name="hello" src="up2u.html"> <frame name="hi" src="me2.html"> 銆銆姝や緥涓?/span> <FRAMESET> 鎶婄敾闈㈠垎鎴愬乏鍙充袱鐩哥瓑閮ㄥ垎錛屽乏渚挎槸鏄劇ず up2u.html錛屽彸杈瑰垯浼氭樉紺?/span> me2.html 榪欐。妗堬紝<FRAME> 鏍囪鎵鏍囩ず鐨勬紿楁案榪滄槸鎸夌敱涓婅屼笅銆佺敱宸﹁嚦鍙崇殑嬈″簭 <FRAME> 銆銆鍙傛暟錛?/span> COLS="90,*" ROWS="120,*" frameborder="no" border="0" bordercolor="#008000" framespacing="5" NAME="top" frameborder=0 framespacing="6" bordercolor="#008000" scrolling="Auto" noresize marginhight=5 marginwidth=5 /** import java.io.IOException; import javax.servlet.Filter; /** @Override } @Override HttpSession session = req.getSession(); if (username == null) { } /* @Override /* }
浜屻侀厤緗甌omcat鏈嶅姟绔彛
鎵撳紑Tomcat/conf鐩綍涓嬬殑server.xml銆傛壘鍒板涓嬩唬鐮侊細
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
鍏朵腑port="8080"灝辨槸Tomcat榛樿鐨勭鍙o紝灝?080淇敼鎴愪換鎰忕殑绔彛銆?br />
娉細灝介噺涓嶈浣跨敤1000浠ヤ笅鐨勭鍙o紝閬垮厤涓庡叕鐢ㄧ鍙e啿紿併?br />
涓夈佽繘鍏ユ帶鍒跺彴
鎵撳紑Tomcat/conf鐩綍涓嬬殑tomcat-users.xml銆備慨鏀規垚濡備笅浠g爜錛?br />
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<user username="manager" password="manager" roles="manager"/>
</tomcat-users>
榪欐牱灝辨坊鍔犱簡涓涓敤鎴峰悕涓猴細manager銆佸瘑鐮佷負錛歮anager鐨勬帶鍒跺彴鐢ㄦ埛銆?br />
鎺у埗鍙扮殑鐢ㄦ埛鍚嶅拰瀵嗙爜鏃墮氳繃Tomcat鐨凧AAS鎺у埗銆?br />
鐒跺悗錛岄噸鍚疶omcat錛屽湪鍦板潃鏍忚緭鍏?lt;http://localhost:8080/>
鐐瑰嚮宸︿笂瑙掔殑Tomcat Manager錛屽涓嬪浘錛?br />
杈撳叆璁劇疆鐨勭敤鎴峰悕錛歮anager銆佸瘑鐮侊細manager錛屽涓嬪浘錛?br />
鐧誨綍鍚庯紝鎺у埗鍙頒負錛屽涓嬪浘錛?br />
榪欐牱灝卞彲浠ユ柟渚垮湴綆$悊鑷繁寮鍙戠殑WEB欏圭洰銆?br />
2..鍦╰omcat鏍圭洰褰曠殑conf\catalina\localhost(瀵逛簬Tomcat6鍙婂叾浠ヤ笂鐗堟湰錛岄渶瑕佽嚜宸卞垱寤篶atalina鍜宭ocalhost榪欎袱涓洰褰?涓嬪鍔爓ind.xml鏂囦歡(璇ユ枃浠跺悕涓轟簡鏇村ソ鐨勫彲璇繪ф渶濂藉拰涓嬮潰鐨刾ath="/xxx"鐨剎xx鐩稿悓)
3.璇ユ枃浠跺唴瀹?
------------------------------------------------
<Context path="/wind"
docBase="E:/StartPortableApps/jspTest"
debug="5"
reloadable="true"
crossContext="true">
<Resource name="jdbc/wind"
auth="Container"
type="javax.sql.DataSource"
maxActive="5"
maxIdle="2"
maxWait="10000"
username="root"
password="wind"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"/>
</Context>
------------------------------------------------
璇存槑錛?br />
path="铏氭嫙璺緞" docBase="緇濆璺緞"銆?br />
鍏朵腑name 鎸囧畾鏁版嵁婧愬湪瀹瑰櫒涓殑JNDI鍚嶃?br />
maxActive 鎸囧畾鏁版嵁婧愭渶澶ф椿鍔ㄨ繛鎺ユ暟銆?br />
maxIdle 鎸囧畾鏁版嵁姹犱腑鏈澶х┖闂茶繛鎺ユ暟銆?br />
maxWait 鎸囧畾鏁版嵁姹犱腑鏈澶х瓑寰呰幏鍙栬繛鎺ョ殑瀹㈡埛绔?br />
username 鎸囧畾榪炴帴鏁版嵁搴撶殑鐢ㄦ埛鍚嶃?br />
password 鎸囧畾榪炴帴鏁版嵁搴撶殑瀵嗙爜銆?br />
driverClassName 鎸囧畾榪炴帴鏁版嵁搴撶殑椹卞姩銆?br />
url 鎸囧畾鏁版嵁搴撴湇鍔$殑URL
闂錛?br />
*****涓轟粈涔堣涓嶄慨鏀箂erver.xml鍛紵*****
鍦═omcat6鐨刣oc甯姪鏂囨。涓紝瀹樻柟鏄笉鎻愬′慨鏀箂erver.xml鏉ユ坊鍔犺櫄鎷熺洰褰曠殑錛佸洜涓轟慨鏀硅鏂囦歡鍙兘寮曞叆棰濆鐨勯闄╋紝渚嬪瀵艱嚧Tomcat褰誨簳宕╂簝銆傝繖鏍峰仛榪樻湁涓涓ソ澶勬槸闈炲父鏂逛究浜庨」鐩殑縐繪銆?br />
4.鍦ㄤ笂闈㈢殑docBase璺緞(榪欓噷鏄疎:/StartPortableApps/jspTest)涓嬪垱寤篿ndex.jsp鏉ユ祴璇曟暟鎹簮
------------------------------------------------
<%@ page language="java" pageEncoding="GB2312"%>
<%@ page import="java.sql.Connection"%>
<%@ page import="java.sql.ResultSet"%>
<%@ page import="java.sql.Statement"%>
<%@ page import="javax.naming.Context"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="javax.sql.DataSource"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>index.jsp</title>
</head>
<body>
<h2>嫻嬭瘯鏁版嵁婧?lt;/h2>
<%
Context ctx = new InitialContext();
// 閫氳繃JNDI鏌ユ壘鏁版嵁婧愶紝璇NDI涓簀ava:comp/env/jdbc/wind錛屽垎涓轟袱閮ㄥ垎錛?br />
// java:comp/env鏄疶omcat鍥哄畾鐨勶紝蹇呴渶鍔犵殑鍓嶇紑錛?br />
// jdbc/wind鏄畾涔夋暟鎹簮鏃剁殑鏁版嵁婧愬悕錛?br />
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/wind");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from echo_message");
while(rs.next()) {
%>
<%=rs.getString(2)%><br>
<%}
%>
</body>
</html>
------------------------------------------------
娉ㄦ剰錛?br />
Tomcat鏁版嵁婧愮殑閰嶇疆鍒嗕負涓ょ錛?br />
鍏ㄥ眬鏁版嵁婧愶細瀵規墍鏈夌殑web搴旂敤閮藉彲浠ヨ闂傚眬閮ㄦ暟鎹簮錛氬彧鑳藉湪鏌愪釜web搴旂敤涓嬭闂?br />
榪欓噷鏄嬌鐢ㄥ眬閮ㄦ暟鎹簮銆傚敖閲忎笉瑕佷嬌鐢ㄥ叏灞鏁版嵁婧愶紝鍥犱負浣跨敤鍏ㄥ眬鏁版嵁婧愪細鐮村潖Tomcat鍘熸湁鐨勯厤緗枃浠?鍙兘浼氱牬鍧廡omcat緋葷粺銆?br />
4.鍚姩Tomcat錛屽湴鍧鏍忚緭鍏ttp://localhost:8080/wind/index.jsp
銆銆<NOFRAMES>
銆銆<IFRAME>
銆銆涔熻鍏堟槑鐧藉洿鍫墊爣璁頒笌絀烘爣璁扮殑鍒嗗埆錛岃鐪?/span> 銆?/span>HTML姒傚康銆戙?/span>
鈻?妗嗘灦姒傚康 錛?/span>
銆銆</frameset>
鐢ㄦ硶錛氥銆銆銆銆銆瀹氫箟涓涓撫
寮濮嬶紡緇撴潫鏍囪瘑錛氥蹇呴』錛忛潪娉?/span>
灞炴э細銆銆銆銆銆銆name="..."瀹氫箟甯х殑鍚嶅瓧
銆銆銆銆銆銆銆銆銆scr="..."瀹氫箟鍦ㄥ撫涓樉紺虹殑鍐呭鐨勬潵婧?/span>
銆銆銆銆銆銆銆銆銆frameborder="..."瀹氫箟甯т箣闂寸殑杈圭晫(0鎴?/span>1)
銆銆銆銆銆銆銆銆銆margwidth="..."璁劇疆甯х殑杈圭晫鍜屽叾涓唴瀹逛箣闂寸殑闂磋窛
銆銆銆銆銆銆銆銆銆margheight="..."璁劇疆甯х殑杈圭晫鍜屽叾涓唴瀹逛箣闂寸殑闂磋窛鍖?/span>
銆銆銆銆銆銆銆銆銆noresize="..."浣垮撫鐨勫昂瀵鎬笉鑳藉彉
銆銆銆銆銆銆銆銆銆scrolling="..."璁劇疆婊氬姩鏉$殑琛ㄧず鏂瑰紡(auto, yes, no)
絀猴細銆銆銆銆銆銆銆涓嶅厑璁?/span>
<FRAMESET>...</FRAMESET>
鐢ㄦ硶錛氥銆銆銆銆銆瀹氫箟鍦ㄤ竴涓獥鍙d腑甯х殑甯冨眬
寮濮嬶紡緇撴潫鏍囪瘑錛氥蹇呴』錛忓繀欏?/span>
灞炴э細銆銆銆銆銆銆rows="..."璁懼畾琛岀殑鏁扮洰
銆銆銆銆銆銆銆銆銆cols="..."璁懼畾鍒楃殑鏁扮洰
銆銆銆銆銆銆銆銆銆onload="..."褰撹澆鍏ユ枃妗f椂鐨勫唴閮ㄤ簨浠惰Е鍙戝櫒
銆銆銆銆銆銆銆銆銆onunload="..."褰撳嵏杞芥枃妗f椂鐨勫唴閮ㄤ簨浠惰Е鍙戝櫒
絀猴細銆銆銆銆銆銆銆涓嶅厑璁?/span>
娉ㄩ噴錛氥銆銆銆銆銆FRAMESET鍙互宓屽
浠ヤ笂鎵榪板彧鏄渶綆鍗曠殑妗嗘灦璁懼畾錛岃嫢甯屾湜杈懼埌鏇村悎閫傜殑鏁堟灉璇峰姞鍏ユ垨淇敼浠ヤ笅鍚勫弬鏁般?/span>
銆銆鏍囪錛?/span><FRAMESET>
銆銆渚嬪瓙錛?/span><frameset rows="90,*" frameborder="0" border=0 framespacing="2" border="2" bordercolor="#008000"></frameset>
銆銆鍔熺敤錛氬鍛?/span>HTML鏂囦歡涓烘鏋舵ā寮忥紝騫惰瀹氳紿楀浣曞垎鍓層?/span>
鍨傜洿鍒囧壊鐢婚潰(濡傚垎宸﹀彸涓や釜鐢婚潰)錛屾帴鍙楁暣鏁板箋佺櫨鍒嗘暟錛?/span> * 鍒欎唬琛ㄥ崰鐢ㄥ墿浣欑殑絀洪棿銆傛暟鍊肩殑涓暟浠h〃鍒嗘垚鐨勮紿楁暟鐩笖浠ラ楀彿鍒嗛殧銆備緥濡?/span> COLS="30,*,50%" 鍙互鍒囨垚涓変釜瑙嗙獥錛岀涓涓紿楁槸 30 pixels 鐨勫搴︼紝涓轟竴緇濆鍒嗗壊錛岀浜屼釜瑙嗙獥鏄綋鍒嗛厤瀹岀涓鍙婄涓変釜瑙嗙獥鍚庡墿涓嬬殑絀洪棿錛岀涓変釜瑙嗙獥鍒欏崰鏁翠釜瑙嗙獥鐢婚潰鐨?/span> 50% 瀹藉害涓轟竴鐩稿鍒嗗壊銆備綘鍙嚜宸辮皟鏁存暟瀛椼?/span>
榪欐槸妯悜鍒囧壊錛屽皢鐢婚潰涓婁笅鍒嗗紑錛屾暟鍊艱瀹氬悓涓娿?/span> COLS 涓?/span> ROWS 涓ゅ弬鏁板敖閲忎笉瑕佹斁鍦ㄥ悓涓涓?/span> <FRAMESET> 鏍囪涓紝鍥?/span> Netacape 鍋剁劧涓嶈兘鏄劇ず榪欑被鍨嬬殑妗嗘灦錛屽敖閲忛噰鐢ㄥ閲嶅垎鍓詫紝濡備互涓婂悇渚嬨?/span>
璁懼畾妗嗘灦鐨勮竟妗嗭紝鍏跺煎彧鏈?/span> no 鍜?/span> yes 錛?/span> no 琛ㄧず涓嶈杈規錛?/span> yes 琛ㄧず瑕佹樉紺鴻竟妗嗐?/span>
璁懼畾妗嗘灦鐨勮竟妗嗗帤搴︼紝浠?/span> pixels 涓哄崟浣嶃?/span>
璁懼畾妗嗘灦鐨勮竟妗嗛鑹層傞鑹插艱鍙傝冦愯皟鑹插師鐞嗐戙?/span>
琛ㄧず妗嗘灦涓庢鏋墮棿淇濈暀鐨勭┖鐧界殑璺濈銆?/span>
銆銆鏍囪錛?/span><FRAME>
銆銆渚嬪瓙錛?/span><frame name="top" src="a.html" marginwidth="5" marginheight="5" scrolling="Auto" frameborder="0" noresize framespacing="6" bordercolor="#0000FF">
銆銆鍔熻兘錛氳瀹氭瘡涓涓紿楀唴鐨勫弬鏁板睘鎬с?/span>
銆銆鍙傛暟錛?/span>
SRC="a.html"
璁懼畾姝ゆ紿椾腑瑕佹樉紺虹殑緗戦〉妗f鍚嶇О錛屾瘡涓紿椾竴瀹氳瀵瑰簲涓涓綉欏墊。妗堛?/span>
璁懼畾榪欎釜妗嗙獥鐨勫悕縐幫紝榪欐牱鎵嶈兘鎸囧畾妗嗘灦鏉ヤ綔閾炬帴錛屽繀欏諱絾浠繪剰鍛藉悕銆?/span>
璁懼畾妗嗘灦鐨勮竟妗嗭紝鍏跺煎彧鏈?/span> 0 鍜?/span> 1 錛?/span> 0 琛ㄧず涓嶈杈規錛?/span> 1 琛ㄧず瑕佽竟妗嗐?/span>
琛ㄧず妗嗘灦涓庢鏋墮棿鐨勪繚鐣欑殑絀虹櫧鐨勮窛紱匯?/span>
璁懼畾妗嗘灦鐨勮竟妗嗛鑹層?/span>
璁懼畾鏄惁瑕佹樉紺哄嵎杞達紝YES 琛ㄧず瑕佹樉紺哄嵎杞達紝NO 琛ㄧず鏃犺濡備綍閮戒笉瑕佹樉紺哄嵎杞達紝AUTO 瑙嗘儏鍐佃屽畾銆?/span>
璁懼畾涓嶈浣跨敤鑰呭彲浠ユ敼鍙樿繖涓妗嗙殑澶у皬錛屽娌℃湁璁懼畾姝ゅ弬鏁幫紝浣跨敤鑰呭彲闅忔剰鍦版媺鍔ㄦ鏋舵敼鍙樺叾澶у皬銆?/span>
琛ㄧず妗嗘灦楂樺害閮ㄥ垎杈圭紭鎵淇濈暀鐨勭┖闂淬?/span>
琛ㄧず妗嗘灦瀹藉害閮ㄥ垎杈圭紭鎵淇濈暀鐨勭┖闂淬?/span>
* loginFilter.java
*/
package myFilter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
* 媯鏌?session 涓殑 username 鍐呭鏄惁涓虹┖錛屼負絀哄垯娌℃湁鐧誨綍錛岃漿鍙戝埌鐧誨綍欏甸潰錛?濡傛灉涓嶄負絀猴紝鍒欏垎鍙戣姹傘?br />
* @author wind
*
*/
public class loginFilter implements Filter {
private String onErrorUrl;
public void destroy() {
// TODO Auto-generated method stub
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
String username = (String) session.getAttribute("username");
boolean flag = true;
flag = false;
} else {
if (flag) {
* Causes the next filter in the chain to be invoked, or if the
* calling filter is the last filter in the chain, causes the
* resource at the end of the chain to be invoked.
*/
chain.doFilter(request, response);
} else {
/*
* Forwards a request from a servlet to JSP file on the server.
*/
req.getRequestDispatcher(onErrorUrl).forward(req, res);
}
}
public void init(FilterConfig filterConfig) throws ServletException {
* Returns a String containing the value of the named initialization
* parameter, or null if the parameter does not exist.
*/
onErrorUrl = filterConfig.getInitParameter("onError");
if (onErrorUrl == null || "".equals(onErrorUrl)) {
onErrorUrl = "/index.jsp";
}
}
web.xml娣誨姞浠ヤ笅浠g爜錛?br />
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>myFilter.loginFilter</filter-class>
<init-param>
<param-name>onError</param-name>
<param-value>/index.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/havesession/*</url-pattern>
</filter-mapping>
鐗瑰埆娉ㄦ剰錛?lt;url-pattern>/havesession/*</url-pattern>榪欓噷鎰忔濇槸榪囨護/havasession/璺緞涓殑鎵鏈塇TTP璇鋒眰銆?/p>
out.println("鏍圭洰褰曟墍瀵瑰簲鐨勭粷瀵硅礬寰?" + request.getRequestURI() + "<br/>");
String strPathFile = application.getRealPath(request.getRequestURI());
out.println("鏂囦歡鐨勭粷瀵硅礬寰?" + strPathFile + "<br/>");
String strDirPath = new File(application.getRealPath(request.getRequestURI())).getParent();
out.println("鐩綍鐨勭粷瀵硅礬寰?" + strDirPath + "<br/>");
%>
//Servlet涓?nbsp;
//JSP涓殑application瀵硅薄灝辨槸Servlet涓殑ServerContext錛屾墍浠ュ湪Servlet涓槸濡傛鑾峰緱
System.out.println("鏍圭洰褰曟墍瀵瑰簲鐨勭粷瀵硅礬寰?" + request.getServletPath());
String strFullPath = request.getSession().getServletContext().getRealPath("");
System.out.println("鐩綍鐨勭粷瀵硅礬寰? + strFullPath);
String strContextPath = request.getContextPath();
System.out.println("鑾峰緱Web欏圭洰鐨勪笂涓嬫枃璺緞" + strContextPath);
System.out.println("鑾峰彇璁塊棶绔欑偣鐨勭浉瀵硅礬寰? + request.getRequestURI());
System.out.println("鑾峰彇璁塊棶绔欑偣鐨勭粷瀵硅礬寰? + request.getRequestURL());