⑴ 如何在过滤器Filter.java中获取jsp页面文本框的值
1、在Jsp页面将文本框输入域放在html表单form之中提交
2、后台定义一个过滤器继承Filter.java
3、在过滤器中的doFilter方法中,将参数ServletRequest转化为HttpServletRequest
4、利用HttpServletRequest.getParameter();方法即可获取对应输入域的value值。
示例:
在Jsp页面:
<form>
<input type="text" name="username" value="zhangsan"/>
</form>
后台过滤器:
public class TestFilter implements Filter{
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filter) throws IOException, ServletException {
HttpServletRequest res = (HttpServletRequest) request;
//获取页面的username输入框的值
String username = request.getParameter("username");
return;
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
⑵ 要过滤所有的jsp页面和action的session是否过时 web里面怎么配置
你是要配置filter来检查是否session过期, 如果过期就跳回登陆页面?
无非就是写一个SessionFilter(一般都会叫AuthFilter)实现Filter接口, 然后实现里面的doFIlter()方法
这个方法自然会传两个参数, 一个request, 一个response, request参数就可以得到url和session例如
request.getURI(); request.getSession();
response可以用来重定向, response.sendRedirect();
filter写好后在web.xml中配置一下过滤那些页面,
首先顶一个filter对应到你上面写的那个类, 然后定义一个filter-mapping, 来说明过滤哪些页面, 一般要看你工程中页面是用的.do返回还是用的jsp返回, 或者直接写成/*都可以...
⑶ JSP中用filter 过滤某个包中的所有servlet
web.xml中这样配置:
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>com.zq.servlet.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/servlet/Login</url-pattern>
</servlet-mapping>
或者不配置web.xml在servlet中写注解:
@WebServlet("/servlet/Login")
配置fliter可以在web.xml中这样写:
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.zy.filter.UserLoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/servlet/*</url-pattern>
</filter-mapping>
或者不配置web.xml在filter中写注解:
@WebFilter(filterName="/MyFilter",urlPatterns="/servlet/*")
即在所有想过滤的servlet名字前加上“/setvlet”在过滤的时候过滤路径就可以写成“/servlet/*”这样就能过滤所有的Servlet。
⑷ 在filter中,我要过滤所有JSP和action,但登录页login.jsp和login.action不能过滤,这样的话怎么配置
把login.jsp换一个后缀嘛,比如login.htm
⑸ web配置问题 过滤所有的jsp文件该怎么搞啊
写个过滤器(创建一个类实现Filter接口)
在web.xml中配置如下
添加以下代码
<filter>
<filter-name>encoding</filter-name> //名字任意
<filter-class>全类路径</filter-class> //实现filter接口的类的路径
</filter>
<filter-mapping>
<filter-name>encoding</filter-name> //与上面的名字匹配
<url-pattern>*.jsp</url-pattern> //*.jsp表示任意jsp文件
</filter-mapping>
⑹ JSP filter过滤器,怎样可以配置成除某几个jsp文件外,所有的jsp文件都过滤呢
你可以在xml文件里面去抄更改袭
你在里面好好的找找你过滤器的名字
过滤器默认的都是/*
你想保护什么就吧*换成什么或者是换成一个文件夹
如果你是昨晚项目在放的过滤器那就多弄几个过滤器
一个个来(麻烦,最好提前想好,把需要保护的放在一个包里面)
⑺ 如何配置Filter过滤器处理JSP中文乱码
注意问题:在学习用selvert的过滤器filter处理中文乱码时,在filter配置初始化时用了utf-8处理中文乱码,而在提交的jsp页面中却用了gbk。虽然两种都可以出来中文乱码,但是却造成了处理乱码的格式不一致。所以编译出错。
解决方法:所有地方都用utf-8或gbk
//过滤器类
CharactorFilter.jsp
package cn.com.Filter;
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 CharactorFilter implements Filter { //继承Filter类
//字符编码
String encoding=null;
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(encoding!=null){
//设置request字符编码
request.setCharacterEncoding(encoding);
//设置response字符编码
response.setContentType("text/html;charset="+encoding);
}
//传递给下一个过滤器
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
//获取初始化参数
encoding=filterConfig.getInitParameter("encoding");
}
public void destroy() {
// TODO Auto-generated method stub
encoding=null;
}
}
web.xml
<filter> <!--注意这里是filter,不要配置成servlet-->
<filter-name>CharactorFilter</filter-name> <!--过滤器名称-->
<filter-class>cn.com.Filter.CharactorFilter</filter-class> <!--过滤器的完整类名-->
<init-param> <!--初始化参数-->
<param-name>encoding</param-name> <!--参数名称-->
<param-value>utf-8</param-value> <!--参数值-->
</init-param>
</filter>
<filter-mapping> <!--过滤器映射-->
<filter-name>CharactorFilter</filter-name><!--过滤器名称-->
<url-pattern>/*</url-pattern><!--URL映射,给所有页面处理乱码-->
</filter-mapping>
⑻ 在 java EE中怎么实现对哪一个.jsp文件进行过滤
先写个过滤的bean,然后在web.xml里配置,如下面是字符过滤:
<!-- 字符编码过滤器 -->
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>filters.ChangeCharsetFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
<!-- 指定编码为UTF-8 -->
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern> //注:把要过滤的jsp页面添加到这里,*则对所有的页面过滤
<!-- 对于所有的request改变其编码 -->
</filter-mapping>
我只是个初学者,不知道说得对不对,嘿嘿。。。
⑼ struts2用过滤器过滤非法jsp请求的时候,对于根文件夹下的请求如何过滤
<filter>
<filter-name>authority</filter-name>
<filter-class>com.bstek.test.demo.filter.AuthorityFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>authority</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--可以匹配多个的,不过只要上面那种就回可以拦截所有的了答<filter-mapping>
<filter-name>authority</filter-name>
<url-pattern>/jsp/*</url-pattern>
</filter-mapping>-->
⑽ struts2中怎样实现过滤jsp页面的过滤器
如下所示:
package test;
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 LoginFilter implements Filter
{
public void destroy()
{
}
public void doFilter(ServletRequest req, ServletResponse rsp,
FilterChain chain) throws IOException, ServletException
{
chain.doFilter(req, rsp);
}
public void init(FilterConfig arg0) throws ServletException
{
}
}
在web.xml里面配置
<filter>
<filter-name>logFilter</filter-name>
<filter-class>test.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>logFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>