Java-Web应用杂记

一.web应用的初始化

1.从Servlet继承用于完成初始化的类,在ini()方法实现初始化的代码。如果是从HttpServlet继承,在ini()过程中注意实现super.ini(config),以完成父类的设置。

2.在web.xml中指明初始化类信息,并且说明在应用启动时装载

<Sevlet>

 <Servlet-name>sname</Servlet-name>

 <Servlet-class>classpath</Servlet-class>

<load-on-startup>1<load-on-startup>  <!--这里说明在应用启动时加载,应用服务器会调用ini()方法。其中的数字表示在有多个初始化类时候的加载顺序。-->

</Servlet>

二、使用Servlet实现url过滤

1.一般从HttpServlet继承一个用于处理的类,在doGet或者doPost中实现处理代码

2.在web.xml中配置类、制定url模版

<Sevlet>

 <Servlet-name>sname</Servlet-name>

 <Servlet-class>classpath</Servlet-class>

</Servlet>

<Servlet-mapping>

  <Servlet-name>sname</Servlet-name> <!--使用sname命名的servlet过滤-->

 <url-pattern>/dir/*.cold</url-pattern> <!--过滤/dir/目录下的所有.cold的请求-->

</Servlet-mapping>

说明:可以配置多个过滤模版

三、转向/重定向

1.使用response.sendRedirect(url)实现;

2.使用RequestDispatcher实现;getServletContext().getRequestDispatcher("url").forwar()。该方法中的参数必须使用"/"开始,而且,该方法总是以root作为当前目录,但是在客户端的地址栏看到的依然是请求的url,而不是重定向的url。

struts实现的ActionForwad中有一个setRedirect方法,如果设置false,框架就是使用RequestDispatcher来实现转向,true,框架就是使用Response.SendRedirect方法。可以参看ActionServlet.processActionForward()方法。

四、使用Filter过滤

Filter接口的过滤行为作用在Servlet过滤前,也就是说,如果Filter和Servlet对同一个url模版过滤,那么框架首先使用Filter,通过Filter之后再到Servlet。从功能上讲,Filter是用于检测请求,比如检测是否为一个合法的请求,但是不处理请求,Servlet用于处理请求。

其实现是实现Filter接口,关键方法是doFileter(),在该方法内完成对请求的检测,可以通过response重定向,或者使用filterChain.doFiler(request, response)将请求继续传递。

web.xml中Filter的配置基本和Sevlet一致,只是把Servlet替换成Filter就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值