❶ jsp filter 過濾器怎麼用
1、在Jsp頁面將文本框輸入域放在html表岩余單form之中提交 2、後台定義一個過濾器繼承Filter.java 3、在過濾器中的doFilter方法中,將參數ServletRequest轉化為HttpServletRequest 4、粗敗滾利用HttpServletRequest.getParameter();方枯鍵法即可獲取對應輸入域
❷ jsp servlet 過濾器配置方式
過濾器的配置和servlet格式基本一樣消沖
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>orfilter.CharacterEncodingFilter</filter-class>
<告橋族/filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>襪弊
❸ JSP filter過濾器,怎樣可以配置成除某幾個jsp文件外,所有的jsp文件都過濾呢
你可以在xml文件裡面去更改
你在裡面好好的找找你過濾器的名字
過濾器默認的都是/*
你想保護什麼就吧*換成什麼或者是換成一個文件夾
如果你是昨晚項目在放的過濾器那就多弄幾個過濾器
一個個來(麻煩,最好提前想好,把需要保護的放在一個包裡面)
❹ jsp過濾器的web.xml如何指定不想過濾的頁面
在filter類中判斷一下
如果URL是以page/index.jsp結頃李尾的,謹乎歲直接就過了,不做驗證
不過感覺祥睜這種方法治標不治本
我也在等達人出現。。。
❺ 在JSP中如何利用過濾器實現從SQL表中登錄
jsp中實現過濾器登錄的方法是配置filter:
在servlet中實現代碼如下:
HttpSession
session
=
request.getSession(false);
User
user
=
(session
!=
null)
?
session.getAttribute("user")
:
null;
if
(user
!=
null)
{
chain.doFilter(request,
response);
}
else
{
response.sendRedirect(request.getContextPath()
+
"消掘/login");
}
jsp頁面提交後到驗證servlet:
String
username
=
request.getParameter("username");
String
password
=
request.getParameter("password");
Map<String,
String>
messages
=
new
HashMap<String,
String>();
if
(username
==
null
||
username.isEmpty())
{
messages.put("username",
"灶殲Please
enter
username");
}
if
(password
==
null
||
password.isEmpty())
{
messages.put("password",
"拿辯核Please
enter
password");
}
if
(messages.isEmpty())
{
User
user
=
userService.find(username,
password);
if
(user
!=
null)
{
request.getSession().setAttribute("user",
user);
response.sendRedirect(request.getContextPath()
+
"/home");
return;
}
else
{
messages.put("login",
"Unknown
login,
please
try
again");
}
}
request.setAttribute("messages",
messages);
request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request,
response);
❻ jsp\java如何編寫過濾器過濾特殊字元
package com.jing.common;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
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;
public class IllegalCharacterFilter implements Filter {
private String[] characterParams = null;
private boolean OK=true;
public void init(FilterConfig config) throws ServletException {
// if(config.getInitParameter("characterParams").length()<1)
// OK=false;
// else
// this.characterParams = config.getInitParameter("characterParams").split(",");
System.out.println("初始化");
}
@SuppressWarnings("unchecked")
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest servletrequest = (HttpServletRequest) request;
HttpServletResponse servletresponse = (HttpServletResponse) response;
String param = "";
String paramValue = "";
//設置請求編碼格式
servletresponse.setContentType("text/html");
servletresponse.setCharacterEncoding("UTF-8");
servletrequest.setCharacterEncoding("UTF-8");
java.util.Enumeration params = request.getParameterNames();
//循環讀取參數
while (params.hasMoreElements()){
param = (String) params.nextElement(); //獲取請求中的參數
String[] values = servletrequest.getParameterValues(param);//獲得每個參數對應的值
for (int i = 0; i < values.length; i++) {
paramValue = values[i];
//轉換目標字元變成對象字元,可以多個。後期擴展特殊字元庫用於管理
paramValue = paramValue.replaceAll("'","");
paramValue = paramValue.replaceAll("@","");
paramValue = paramValue.replaceAll("胡錦濤","***");
//這里還可以增加,如領導人 自動轉義成****,可以從資料庫中讀取非法關鍵字。
values[i] = paramValue;
}
//把轉義後的參數重新放回request中
request.setAttribute(param, paramValue);
}
//繼續向下 執行請求,如果有其他過濾器則執行過濾器
arg2.doFilter(request, response);
}
public void destroy() {
// TODO Auto-generated method stub
}
}
❼ jsp中添加過濾器
1.首先建一個類(例charset.java),該類實現Filter介面
package com; //com包
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class charset implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
//方法拷貝過來即可
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
2.在工程WebRoot/WEB-INIF/web.xml配置文件中寫入以下代碼:
<filter>
<filter-name>名字(可自定義)</filter-name>
<filter-class>類名</filter-class>
</filter>
<filter-mapping>
<filter-name>同上</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
❽ JSP過濾器這樣設置過濾一個次級路徑下的所有URL
/sites/*這樣就可以了,如果這個文件夾是某個子目錄的話還需要添加它的父目歲姿錄;
乎納
下面是些例子
<url-pattern>:指定和過濾乎頃絕器關聯的URL,為」/*」表示所有URL;
例子1:單個過濾器配置:容器將其應用於所有接收的請求
<url-pattern>/*</url-pattern>
例子2:過濾器應用到特定目錄或資源(文件)的配置:此容器只有在接收到對/mydocs目錄中的資源的請求時才會應用該過濾器。
<url-pattern>/mydocs/*</url-pattern>
❾ 如何使用過濾器解決jsp亂碼
打開web項目,在src中新建一個類,規孫散碼范一下編程習慣我們就把它放到一個包中去,項目右鍵則哪新建「class」,包名填寫例如「com.test.struts.filters」(習慣是域名反轉),文件名首字母大寫,例如「SetCharacterEncoding」。下面是類中的代碼,實際上就是實現了Filter介面,重寫了一下doFilter函數。
packagecom.test.hibernate.filters;
importjava.io.IOException;
importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;{
/*(non-Javadoc)
*@seecom.sun.net.httpserver.Filter#doFilter(com.sun.net.httpserver.HttpExchange,com.sun.net.httpserver.Filter.Chain)
*/
publicvoiddoFilter(ServletRequestsrequest,ServletResponsesresponse,
FilterChainchain)throwsIOException,ServletException{
HttpServletRequestrequest=(HttpServletRequest)srequest;
HttpServletResponseresponse=(HttpServletResponse)sresponse;
//注意這里請求和響應都強制轉掘腔化了一下
request.setCharacterEncoding("UTF-8"); //設置請求編碼「UTF-8」比較通用
response.setCharacterEncoding("UTF-8"); //設置相應編碼
chain.doFilter(srequest,sresponse);//轉發請求
}
publicvoiddestroy(){
//TODOAuto-generatedmethodstub
}
publicvoidinit(FilterConfigarg0)throwsServletException{
//TODOAuto-generatedmethodstub
}
}
web配置文件配置filter文件,打開web.xml文件,在<web-app></web-app>之間加入如下配置,<filter></filter>是設置類路徑的,<filter-mapping></filter-mapping>是用來映射指定路徑文件到filter的。
<filter>
<filter-name>setEncoding</filter-name>
<filter-class>com.test.struts.filters.SetCharacterEncodingFilter</filter-class>
<!--這里還可以使用初始變數
<init-param>
<param-name>name</param-name>
<param-value>value</param-value>
</init-param>
再在SetCharacterEncoding.java的定義一個privateStringencoding=null;
在init函數中加一句this.encoding=filterConfig.getInitParameter("encoding");
-->
</filter>
<filter-mapping>
<filter-name>setEncoding</filter-name><!--這個名稱和上面的要相同-->
<url-pattern>/*</url-pattern><!--所有文件-->
</filter-mapping>
配置完後運行一下項目就不再看到那煩人的亂碼了!
❿ JSP中,過濾器的web.xml配置文件中指定過濾器應用的URL用什麼符號隔開。請指教!
不支持用雹盯盯符號隔開,如果想達到類似的效果,請配置兩個 <url-pattert>源和 節則哪點即可。 GOOD LUCK!