filter-mapping

时间:2024-11-02 04:46:46编辑:莆田seo君

java Web编程技术作业求帮助,谢谢🙏

使用Java语言编写一个Servlet,从网页接收一个参数,将其设置为属性,然后将请求转发到另一个JSP页面,以显示该属性的值:然后,在web.xml文件中将Servlet映射到一个URL:最后,在显示属性值的JSP页面上使用EL表达式来访问该属性的值:当用户在网页上提交一个名为"inputValue"的参数时,该Servlet将获取该参数的值,并将其设置为名为"outputValue"的属性。然后,请求将被转发到名为"display.jsp"的JSP页面,该页面使用EL表达式"${outputValue}"来访问"outputValue"属性的值,并显示在页面上。请注意,实际代码应该包括适当的错误处理和输入验证。

不明白Filter过滤器怎么用,大家帮帮我

我来给你简单的说一下吧:)
首先要明确。Filter是JSP2.0里面的东西 ,顾名思义,也就是过滤器的意思
和你说说如何用吧。要用Filter就得在web.xml中配置
例:
//配置方法和配置普通的Servlet一样的哦

PrivFilter
com.myPriv.filter.PrivFilter



PrivFilter
/resource/*

//com.myPriv.filter.PrivFilter是这个过滤器所在的位置。当然这个过滤器必须实现接口javax.servlet.Filter。
然后就可以在过滤器这个接口方法中增加过滤条件了
public void doFilter(ServletRequset request, ServletResponse response,FilterChain chain)
thows ServletException, IOException{

然后你可以把过滤条件写出来,写在doFilter方法里面
我这里写一个简单的例子:
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session=request.getSession();
ServletContext application=session.getServletContext();

if(session.getAttribute("userSession")==null)
{
response.sendRedirect("error/priv_error.jsp");
return;
}
else
{
chain.doFilter(request, response);
}

}

在上面的这个过滤方法中,如果session.getAttribute("userSession")==null)那就跳转到错误页面。如果不为空,则继续
所以
chain.doFilter(request, response);的意思就是跳转到下个页面,
明白了吧?

如果还有不明白。,可以留下你的问题

------------------------
还有忘了回答你的问题 了。java会在处理每一个Servlet时都走一次Filter的。所以你不必担心你的过滤不起作用了
而且chain.doFilter(request.response);
是必须的。没有他,程序就不会继续了:)他是让你的request和response继续运行哦
--------------------------------
这个你就可接写/*
好了。它是说对哪些范围起作里这个过滤器


谁能帮我回答下这十个问题,关于java web,高手请进~~~~~~~~~

1. What are difference between a set of web pages and a web applications ? What technologies are currently available for the creation of such applications ?
网页与网页应用程序在于,网页只是单一的静态页面.而网页应用程序是一些服务的集合.
当前流行的创建Web应用程序的技术有. 前端:Html+CSS+javascript. XML
后台:PHP,JSP,ASP,Perl,Python,Ruby.
2. How does Javascript compare with other technologies that are available for use on client browsers?
JavaScript主要用来操作浏览器DOM给网页提供动态与交互.
3. Outline the structure of a Javascript program

4. Can JavaScript be executed without using a web browser.
可以, 现在也有很多的JavaScript解释器Shell.
5. What is the difference between a variable and a value ? How should variables be named ?
变量可以存储值,值是字面量.变量可以改变.可以被赋值.可以通过关键字var声明变量.
6. What data types does JavaScript use ?
JavaScript的简单类型包括数字,字符串,布尔值(true和false),null值和undefined值.其他所有的值都是对象.数字,字符串和布尔值”貌似”对象,因为它们拥有方法,但是它们是不可变的.JavaScript中的对象是可变的键控集合(Keyed collections).在Javascript中,数组是对象,函数是对象,正则表达式,当然,对象自然也是对象.
7. What are scoping rules – why are they so important in all programming languages ?
在编程语言中,作用域控制着变量与参数的可见性及生命周期.对程序员来说这是一个重要的帮助
因为他减少了名称冲突,并且提供了自动内存管理.
8. Why do some functions return values to the calling statement ?
因为调用函数的作用有些是为了求值!
9. How does JavaScript create HTML pages on the fly ?
什么是Fly?
10. Write a simple JavaScript that adds some numbers together, concatenating a couple of strings and then shows the result in an alert() dialog and on the page.


var a = 10;
var b = 20;

function add(var a,var b){
var result = a+b;

return result;
}
var sum=add(a,b);
alert(""+a+" + "+b+"="+sum);



/* 还有补充吗?*/


什么时候用filter,什么时候用interceptor

谈下我的看法。

你说的filter应该是指实现了javax.servlet.Filter的类,所以如这个接口所示,但凡跟servlet有关——参数url-pattern指定的目标,都可以用filter。

至于interceptor,通常的场景是利用反射来管理某个类的方法。比如但凡Service的save.*和delete.*的方法都必须开启事务处理,所有Dao方法抛出异常时统一处理等。

但是Action/controller比较特殊,因为它既是类的方法,又是映射到某个url上,容易让人困惑。
filter基于回调函数,我们需要实现的filter接口中doFilter方法就是回调函数

filter是依赖于servlet容器的,即只能在servlet容器中执行,很显然没有servlet容器就无法来回调doFilter方法。而interceptor与servlet容器无关。
Filter的过滤范围比Interceptor大,Filter除了过滤请求外通过通配符可以保护页面,图片,文件等等,而Interceptor只能过滤请求。
filter-》DispatchFilter(interceptor)-》result(jsp)
Filter的过滤例外一般是在加载的时候在init方法声明,而Interceptor可以通过在xml声明是guest请求还是user请求来辨别是否过滤。
1、比如我在大多数时候可能使用 Filter 因为这种是最通用的 比如做一个底层的用户包 需要部署N台 可能有的用struts2 有的用spring 那么我就用Filter 还有必须在某些拦截器之前执行的 可以用这个 也就是在没有很好的用Interceptor的理由的情况下 用Filter


2、如果你的拦截器只在本项目中使用 且需要注入资源等 可以用拦截器

还有一种比较细节的场景 如你要在Filter中获取parameter 但此次处理是文件上传 如果不自己去转换Request则是得不到参数的 此时可以考虑用拦截器(因为进入拦截器时已经把request转了 可以拿参数了)

如果需要在Filter注入东西 但就想用Filter 可以使用org.springframework.web.filter.DelegatingFilterProxy


syncOnlineSessionFilter
org.springframework.web.filter.DelegatingFilterProxy

targetFilterLifecycle
true



它会自动到spring容器中找syncOnlineSessionFilter(Filter类型)的bean 使用


上一篇:校园恰恰恰第二季

下一篇:没有了