A. jsP中怎麼用正則表達式過濾HTML標簽
<xmp><font color='red'>hello</font></xmp>
加xmp標簽就行了
B. jfinal如何過濾對JSP/html的請求
jfinal對jsp或者html過濾的請求配置:
public class PermissionHandler extends Handler {
@Override
public void handle(String target, HttpServletRequest request,
HttpServletResponse response, boolean[] isHandled) {
int indexJsp= target.lastIndexOf(".jsp");
int indexHtml = target.lastIndexOf(".html");
if (indexJsp!= -1 || indexHtml!= -1) {
System.out.println(target);
if (request.getSession().getAttribute(Const.LOGINUSER) == null) {
System.out.println("沒有登陸!跳轉到login.html");
target = "/login.html";
} else {
System.out.println("登陸了,放行!");
}
}
nextHandler.handle(target, request, response, isHandled);
}
C. jsp 過濾器過濾jsp和html怎麼寫
<servlet-mapping>
<servlet-name>servletname</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>servletname</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
D. 如何在jsp網頁中的文本框內防止輸入html標簽和腳本
校驗,除了[0-9a-zA-Z]之外都不能輸入
E. jsp頁面去除html標識符,輸出純文本格式內容。能用replace,解決最好。
如果直接讀出來的話是HTML格式!我只想讀出來內容中的純文本,過濾掉HTMLstrOutput = objRegExp.Replace(strHTML, "") strOutput = Replace(strOutput
F. jsp include html 出現了亂碼是怎麼回事
關於JSP頁面中的pageEncoding和contentType兩種屬性的區別:
pageEncoding是jsp文件本身的編碼
contentType的charset是指伺服器發送給客戶端時的內容編碼
JSP要經過兩次的「編碼」,第一階段會用pageEncoding,第二階段會用utf-8至utf-8,第三階段就是在客戶端瀏覽器里看到的網頁, 用的是contentType。
第一階段是jsp編譯成.java,它會根據pageEncoding的設定讀取jsp,結果是由指定的編碼方案翻譯成統一的UTF-8 JAVA源碼(即.java),如果pageEncoding設定錯了,或沒有設定,出來的就是中文亂碼。
第二階段是由JAVAC的JAVA源碼至java byteCode的編譯,不論JSP編寫時候用的是什麼編碼方案,經過這個階段的結果全部是UTF-8的encoding的java源碼。
JAVAC用UTF-8的encoding讀取java源碼,編譯成UTF-8 encoding的二進制碼(即.class),這是JVM對常數字串在二進制碼(java encoding)內表達的規范。
第三階段是Tomcat(或其的application container)載入和執行階段二的來的JAVA二進制碼,輸出的結果,也就是在客戶端見到的,這時隱藏在階段一和階段二的參數contentType就發揮了功效
而include指令就是在第一階段之前執行的,注意這個是在第一階段之前,所以,如果包含文件和被包含文件的文件編碼不是utf-8,那麼,該指令就會工作不太正常,不能正確的把被包含的文件從原來編碼轉換為包含文件的編碼,就會出現亂碼現象.
解決的方法有很多,一種很簡單的方法就是,把包含文件的pageEncoding設置為utf-8,同時,把被包含文件的pageEncoding也設置為utf-8,如果被包含文件為html的話,如果你使用的ide是eclipse的話,那麼,可以這么做,在被包含文件名上右鍵單擊,選擇屬性 (properties),Resource下,在text file encoding里選擇utf-8,這樣就可以做到正常顯示了.如果用的是其他的編輯工具,比如Dream weaver,也有響應的修改頁面編碼的地方.
另外一種方法比較麻煩點,但是也挺好用,支持各種編碼方式,只需要修改web.xml文件就可以了.
方法為:在web.xml里添加(注意我所使用的javaee版本2.5為
<web-app xmlns:xsi=」」 xmlns=」」 xmlns:web=」」 xsi:schemaLocation=」 」 id=」WebApp_ID」 version=」2.5〃>)
<jsp-config>
<jsp-property-group>
<description>jsp encoding example</description>
<display-name>JSPConfiguration</display-name>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
<page-encoding>gbk</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude></include-prelude>
<include-coda></include-coda>
</jsp-property-group>
<jsp-property-group>
<description>html encoding example</description>
<display-name>JSPConfiguration</display-name>
<url-pattern>*.html</url-pattern>
<el-ignored>true</el-ignored>
<page-encoding>gbk</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude></include-prelude>
<include-coda></include-coda>
</jsp-property-group>
</jsp-config>
需要注意的是,這里設置的page-encoding必須與真正的被包含文件和包含文件的pageEncoding一致,修改方法見上一方法.
G. web.xml lt;filter-mapping>我不想過濾html文件,怎麼設置
不使用 /* 攔截所有,攔截想攔截的就可以了
類似下面的過濾方式
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.usl</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.view</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/jaxrs/*</url-pattern>
</filter-mapping>
在filter類中判斷一下,如果是.html結尾的就不過濾。
HttpServletRequest req = (HttpServletRequest)request;
//由於web.xml中設置Filter過濾全部請求,可以排除不需要過濾的url
String reqURI = req.getRequestURI();
if(reqURI.endsWith(".html")) chain.doFilter(request, response);
HttpServletRequest req = (HttpServletRequest)request;
//由於web.xml中設置Filter過濾全部請求,可以排除不需要過濾的url
String reqURI = req.getRequestURI();
if(reqURI.endsWith(".html")) chain.doFilter(request, response);
chain是以下過濾方法中的chain嗎?
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException{
另外, if(reqURI.endsWith(".html")) 到底是 真還是假
HttpServletRequest req = (HttpServletRequest)request;
//由於web.xml中設置Filter過濾全部請求,可以排除不需要過濾的url
String reqURI = req.getRequestURI();
if(reqURI.endsWith(".html")) chain.doFilter(request, response);
chain是以下過濾方法中的chain嗎?
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException{
另外, if(reqURI.endsWith(".html")) 到底是 真還是假
就是這個chain,這個判斷就是判斷你放問的路徑是否以.html結尾,你可以試試。
HttpServletRequest req = (HttpServletRequest)request;
//由於web.xml中設置Filter過濾全部請求,可以排除不需要過濾的url
String reqURI = req.getRequestURI();
if(reqURI.endsWith(".html")) chain.doFilter(request, response);
chain是以下過濾方法中的chain嗎?
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException{
另外, if(reqURI.endsWith(".html")) 到底是 真還是假
就是這個chain,這個判斷就是判斷你放問的路徑是否以.html結尾,你可以試試。
報錯
java.lang.IllegalStateException: getWriter() has already been called for this response
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//把ServletRequest和ServletResponse轉換成真正的類型
HttpServletRequest req = (HttpServletRequest)request;
String reqURI = req.getRequestURI();
if(reqURI.endsWith(".do")) chain.doFilter(request, response);
System.out.println(reqURI);
chain.doFilter(request, response);
}
我這里用過的原代碼,沒錯,你看下你別的地方,用到response的地方
//把ServletRequest轉換成真正的類型
HttpServletRequest req = (HttpServletRequest)request;
String reqURI = req.getRequestURI();
if(reqURI.endsWith(".html")) chain.doFilter(request, response);
else{
return;
}
這個是我剛才測試了的,只有html結尾的可以過。
H. jsp中怎麼把html中的標簽和內容按照原來的格式全部輸出不是把標簽過濾掉。
document.getElementById('...').innerHTML;
連同標簽嗎?那就:
document.getElementById('...').outerHTML;
你要用這個做什麼啊?
I. 修改index.jsp改了後綴為html,配置的<url-pattern>是/*,過濾器卻不管用了
改成html後伺服器就會按純html文件來處理,也就是把文件內容不加任何處理原樣發送給客戶端瀏覽器,這樣過濾器肯定就不起作用了。