❶ 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!