使用Servlet过滤器实现用户登录验证

这样对所有的页面都可以进行过滤。当然还可以为应用配置其他的过滤器,Tomcat容器会根据web.xml文件中的配置顺序将其设置称过滤器链挨个处理,处理到最后一个跳转到处理页面进行处理。后面会再配置一个控制权限的过滤器。
public class LogOrNot implements javax.servlet.Filter {
private FilterConfig config;
private String logon_page;
private String home_page;
public void destroy() {
package Filters;import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
home_page = filterconfig.getInitParameter("HOME_URI");
System.out.println(home_page);
if (null == logon_page || null == home_page) {
throw new ServletException("没有找到登录页面或主页");
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
javax.servlet.http.HttpSession session = req.getSession();
try {
req.setCharacterEncoding("utf-8");
} catch (Exception e1) {ቤተ መጻሕፍቲ ባይዱ
e1.printStackTrace();
}
String userId = (String) session.getAttribute("UserId");
String request_uri = req.getRequestURI().toUpperCase();//得到用户请求的URI
String ctxPath = req.getContextPath();//得到web应用程序的上下文路径
String uri = request_uri.substring(ctxPath.length()); //去除上下文路径,得到剩余部分的路径
</init-param>
</filter>
<filter-mapping>
<filter-name>LogOrNot</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>Code Author:Jacy.
其中两个配置参数就对应了Java文件中使用的参数log.jsp是登陆的视图页面,/model/是当前web应用的文件夹名称。mapping里面定义了对*.jsp进行过滤,如果程序中还有其他的页面,如.do或者.action等,那么可以继续添加<filter-mapping>这个选项,其中<url-pattern>就填写*.do或者*.action即可。
try {
if (request_uri.indexOf("LOGIN.JSP") == -1 && request_uri.indexOf("LOG.JSP") == -1 && userId == null)
{
rpo.sendRedirect(home_page+logon_page);
System.out.print(home_page+logon_page);
<init-param>
<param-name>LOGON_URI</param-name>
<param-value>log.jsp</param-value>
</init-param>
<init-param>
<param-name>HOME_URI</param-name>
<param-value>/model/</param-value>
return;
}
else {
chain.doFilter(request, response);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Code Author:Jacy.
这里对上面的代码稍作解释:过滤器从配置文件中读出配置选项,一个是登陆页面的url地址,另外一个是web应用的url,之所以要这样做,是因为如果程序中有iframe的话,登陆页面会默认在iframe中打开,因此这里将使用绝对地址进行跳转;判断语句中要将login.jsp和log.jsp排除,因为这两个是处理登陆的页面,若不排除将出现循环重定向;检查session中的userid选项,当然也可以设置其他的,关键看session中存的是什么了,若有,则递交给下一个过滤器,若不再有过滤器,则提交给处理页面,若未登陆,则跳转到登陆页面。
}
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse rpo = (HttpServletResponse) response;
config = null;
}
public void init(FilterConfig filterconfig) throws ServletException {
//从部署描述符中获取登录页面和首页的URI
config = filterconfig;
logon_page = filterconfig.getInitParameter("LOGON_URI");
代码写好后,就需要在web应用的web.xml文件中进行配置。filter其实就是一种Servlet,因此配置方法和Servlet是一样的。代码如下:
XML语言:临时自用代码@代码发芽网<filter>
<filter-name>LogOrNot</filter-name>
<filter-class>Filters.LogOrNot</filter-class>
合集下载

servlet过滤器工作原理

servlet过滤器工作原理

servlet过滤器工作原理
Servlet过滤器是Java Web应用程序中的一个组件,主要用于在请求到达Servlet之前或响应离开Servlet之前对请求或响应进行预
处理和后处理。

其工作原理可以分为以下几个步骤:
1. 过滤器包含了一个或多个过滤器链,每个过滤器链由多个过
滤器组成。

当一个请求到达Servlet容器时,容器会首先检查是否有
过滤器链与其对应。

2. 如果存在对应的过滤器链,则依次对请求进行预处理,如对
请求参数进行验证、对请求进行日志记录等操作。

3. 然后,过滤器链将处理后的请求传递给被过滤的Servlet,Servlet对请求进行处理并产生响应。

4. 当Servlet容器收到响应并准备发送到客户端时,它会遍历
响应所经过的过滤器链,依次对响应进行后处理,如对响应进行压缩、对响应进行加密等操作。

5. 最后,Servlet容器将处理后的响应发送到客户端。

总的来说,Servlet过滤器的作用是增强Java Web应用程序的安全性、可靠性和性能。

通过对请求和响应进行预处理和后处理,可以
有效地防范潜在的安全威胁,优化应用的性能,提高用户体验。

Servlet网络编程实验-实现登录页面

Servlet网络编程实验-实现登录页面

实现登录页面
2
在HTML代码中,先假定对此表单进行处理的 Servlet是login,因为提交的数据中包含了用户密 码,所以表单的提交方法我们采用post。
实现登录页面
3
二、 编写并部署success.html文件 将编写好的success.html文件放到 %CATALINA_HOME%\webapps\smp1目录下。
实现登录页面
6
五、 部署Servlet 将LoginServer.class文件放到 %CATALINA_HOME%\webapps\smp1\WEBINF\classes目录下,编辑WEB-INF目录下的 web.xml文件,添加本例中的Servlet配置。
实现登录页面
7
代码如下:
…… <servlet> <servlet-name>LoginServer</servlet-name> <servlet-class>LoginServer</servlet-class> </servlet> …… <servlet-mapping>
<servlet-name>LoginServer</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping>
实现登录页面
8
六、 访问LoginServlet 启动Tomcat服务器,打开IE,在地址栏中输入 http://localhost:8080/smp1/login.html 显示结果页面。
实现登录页面
0
例:编写一个登录页面,用户输入用户名和密 码后,将表单提交给Servlet进行处理。在 Servlet中,判断用户名和密码是否正确,如果 正确,利用重定向向用户返回登录成功页面; 如果失败,则向用户返回一个HTTP错误信息。

java使用过滤器实现登录拦截处理

java使用过滤器实现登录拦截处理

java使⽤过滤器实现登录拦截处理⽬录滤器实现登录拦截处理⼀、什么是过滤器⼆、⼯作原理及⽣命周期三、过滤器使⽤filter简易实现登录功能拦截LoginFlitercontroller结果图滤器实现登录拦截处理⼀、什么是过滤器过滤器是处于客户端与服务器资源⽂件之间的⼀道过滤⽹(驻留在服务器端的Web组件),在访问资源⽂件之前,通过⼀系列的过滤器对请求进⾏修改、判断等,把不符合规则的请求在中途拦截或修改。

也可以对响应进⾏过滤,拦截或修改响应⼆、⼯作原理及⽣命周期举个例⼦当我们登录系统可以访问到页⾯,当退出登录后,要访问就必须重新登录,这就是过滤器起到的作⽤。

当我们访问某个接⼝时,过滤器会拦截请求,判断当前⽤户是否是登录状态,若登录则放⾏访问,若未登录则返回指定页⾯(通常为登录页或⼀个客户友好的提⽰页)这个过程包含了过滤器的⽣命周期:1.实例化2.初始化3.执⾏过滤操作(包括访问前对request操作和返回时对response的操作处理)4.销毁三、过滤器使⽤在springboot项⽬简单使⽤过滤器进⾏登录拦截处理1.实现过滤器public class MyFilter implements Filter {private static final String CURRENT_USER = "current_user";//配置⽩名单protected static List<Pattern> patterns = new ArrayList<Pattern>();//静态代码块,在虚拟机加载类的时候就会加载执⾏,⽽且只执⾏⼀次static {patterns.add(pile("/index"));patterns.add(pile("/login"));patterns.add(pile("/register"));}@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper(httpResponse);String url = httpRequest.getRequestURI().substring(httpRequest.getContextPath().length());if (isInclude(url)) {//在⽩名单中的url,放⾏访问filterChain.doFilter(httpRequest, httpResponse);return;}if (SessionUtils.getSessionAttribute(CURRENT_USER) != null) {//若为登录状态放⾏访问filterChain.doFilter(httpRequest, httpResponse);return;} else {//否则默认访问index接⼝wrapper.sendRedirect("/index");}}@Overridepublic void destroy() {}//判断当前请求是否在⽩名单private boolean isInclude(String url) {for (Pattern pattern : patterns) {Matcher matcher = pattern.matcher(url);if (matcher.matches()) {return true;}}return false;}}2.注册过滤器@Configurationpublic class WebConfig {/*** 配置过滤器* @return*/@Beanpublic FilterRegistrationBean someFilterRegistration() {FilterRegistrationBean registration = new FilterRegistrationBean();registration.setFilter(myFilter());//拦截/*的访问多级匹配(springboot 过滤器/*以及匹配 /**多级匹配)registration.addUrlPatterns("/*");registration.setName("myFilter");return registration;}/*** 创建⼀个bean* @return*/@Bean(name = "myFilter")public Filter myFilter() {return new MyFilter();}}3.运⾏项⽬访问/index,会发现没有被拦截,返回正确结果在未登录状态,访问/update接⼝,会被拦截跳转⾄/index页在登录状态,访问/update接⼝,可以访问这⾥也可以在程序debug看下。

在jsp页面使用session来验证未经登录的访问 并完成直接跳转采用过滤器实现

在jsp页面使用session来验证未经登录的访问 并完成直接跳转采用过滤器实现

在jsp页面使用session来验证未经登录的访问并完成直接跳转1 在web.xml里增加过滤器的代码如下:<!-- 需要拦截的JSP --><filter><filter-name>sessionFilter</filter-name><filter-class>com.bai.SessionFilter</filter-class><init-param><param-name>include</param-name><!-- 在文件夹下面的所有JSP页面,都需要有session才能访问,可以配置多个,用英文半角逗号分割 --><param-value>main,organ,terrace,user</param-value> </init-param></filter><filter-mapping><filter-name>sessionFilter</filter-name><url-pattern>*.jsp</url-pattern></filter-mapping>2 编写过滤器类代码如下:import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.StringTokenizer;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;import ng3.StringUtils;/*** 用于过滤需要拦截的JSP文件** @author CHL**/public class SessionFilter implements Filter {private List<String> list = new ArrayList<String>();@Overridepublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) req;HttpServletResponse response = (HttpServletResponse) res;String servletPath = request.getServletPath();for (String url : list) {if (servletPath.indexOf(url) > -1) {// 需要过滤if(request.getSession().getAttribute("sessionInfo") == null) {// session不存在需要拦截request.setAttribute("msg", "您还没有登录或登录已超时,请重新登录,然后再刷新本功能!");request.getRequestDispatcher("/noSessionError.jsp").forward (request, response);return;}break;}}chain.doFilter(request, response);}@Overridepublic void init(FilterConfig filterConfig) throws ServletException {// 初始化需要拦截的文件夹String include = filterConfig.getInitParameter("include");if (!StringUtils.isBlank(include)) {StringTokenizer st = new StringTokenizer(include, ",");list.clear();while (st.hasMoreTokens()) {list.add(st.nextToken());}}}@Overridepublic void destroy() {} }。

onceperrequestfilter的用法

onceperrequestfilter的用法

onceperrequestfilter的用法在Java Web开发中,Filter是一种常用的技术,用于在请求处理过程中执行特定的操作,例如验证用户身份、清理输出流等。

Filter按照它们的作用方式可以分为两种:过滤所有请求的过滤器和仅过滤特定请求的过滤器。

其中,OncePerRequestFilter是一种仅过滤特定请求的过滤器,它的用法对于一些特定的场景非常重要。

OncePerRequestFilter是一种特殊的过滤器,它只对每个请求执行一次。

这意味着,无论请求被多次调用,OncePerRequestFilter只执行一次。

这对于一些需要在请求处理过程中保持状态的场景非常有用,例如缓存某些结果或跟踪用户行为。

要使用OncePerRequestFilter,需要实现javax.servlet.Filter接口,并重写其doFilter方法。

在doFilter方法中,可以实现只执行一次请求的处理逻辑。

以下是一个简单的示例,展示了如何使用OncePerRequestFilter:```javaimport javax.servlet.*;import javax.servlet.http.HttpServletRequest;import java.io.IOException;public class OncePerRequestFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {// 初始化方法,可以在这里进行一些配置}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {// 获取HttpServletRequest对象HttpServletRequest httpRequest = (HttpServletRequest) request;// 检查是否是第一次访问该请求if (!isFirstTime(httpRequest)) {// 如果不是第一次访问,直接将请求传递给下一个过滤器或Servlet处理chain.doFilter(request, response);return;}// 第一次访问时执行的处理逻辑,例如记录用户行为或缓存数据// ...// 将请求传递给下一个过滤器或Servlet处理chain.doFilter(request, response);}private boolean isFirstTime(HttpServletRequest request) { // 实现判断是否是第一次访问的逻辑,这里可以根据实际情况进行定制// 例如,可以记录请求的唯一标识符,并与之前访问的标识符进行比较String uniqueId = request.getHeader("UniqueId");return uniqueId == null|| !uniqueId.equals(getLastAccessedUniqueId(request));}private StringgetLastAccessedUniqueId(HttpServletRequest request) { // 实现获取上次访问的唯一标识符的逻辑,这里可以根据实际情况进行定制// 可以从数据库、缓存或其他数据源中获取该标识符return "123456"; // 示例值,实际应用中需要根据实际情况获取标识符}@Overridepublic void destroy() {// 销毁方法,可以在这里进行一些清理操作}}```上述示例中,OncePerRequestFilter实现了对特定请求的处理逻辑只执行一次。

06_使用Servlet过滤器

06_使用Servlet过滤器

PDF 文件使用 "pdfFactory" 试用版本创建
NoteFilter过滤器转发HTTP请求
当名叫“小精灵”的客户访 问留言簿时NoteFilter的工 作流程
日志文件位于
<CATALINA_HOME>\logs
目录下
PDF 文件使用 "pdfFactory" 试用版本创建
PDF 文件使用 "pdfFactory" 试用版本创建
NoteFilter过滤器拒绝HTTP请求
n
假定姓名中包含“捣蛋鬼”字符串的客户将 被禁止访问留言簿,并且留言簿由 NoteServlet 类 来 实 现 , 当 名 叫 “ 捣 蛋 鬼 2000”的客户访问留言簿时,将被 NoteFilter过滤器拒绝访问。
PDF 文件使用 "pdfFactory" 试用版lter的doFilter()方法中首先从request 对象中读取客户姓名,然后将客户姓名转换为 中文字符编码。如果客户姓名中包含黑名单里 的字符串,那么将直接向客户端返回一个拒绝 网页。由于在这种情况下没有调用 chain.doFilter()方法,因此客户请求不会到达 所访问的Web组件。
PDF 文件使用 "pdfFactory" 试用版本创建
发布Servlet过滤器
n
< filter-mapping> 元 素 用 于 将 过 滤 器 和 URL关联:
<filter-mapping> <filter-name>NoteFilter</filter-name> <url-pattern>/note</url-pattern> </filter-mapping>

Servlet工作原理

Servlet工作原理Servlet是Java编写的服务器端程序,用于处理客户端的请求并生成响应。

它是Java Servlet API的一部分,可以在支持Java的Web服务器上运行。

本文将详细介绍Servlet的工作原理。

1. Servlet容器Servlet容器是Web服务器或应用服务器中的一个组件,用于管理和执行Servlet。

它负责加载、初始化和销毁Servlet,以及处理客户端的请求和生成响应。

常见的Servlet容器有Tomcat、Jetty和WebLogic等。

2. Servlet生命周期Servlet的生命周期包括三个阶段:加载和初始化、请求处理和销毁。

2.1 加载和初始化当Servlet容器启动时,会加载并初始化配置的Servlet。

加载过程中,容器会查找并加载Servlet的类文件。

初始化过程中,容器会调用Servlet的init()方法,用于执行一些初始化操作,如读取配置文件、建立数据库连接等。

2.2 请求处理当客户端发送请求时,Servlet容器会创建一个Servlet实例来处理该请求。

容器会调用Servlet的service()方法,并将请求和响应对象作为参数传递给该方法。

在service()方法中,开发人员可以根据请求类型(GET、POST等)进行相应的处理逻辑,如读取请求参数、调用业务逻辑处理数据等。

2.3 销毁当Servlet容器关闭或重新加载Web应用程序时,会销毁所有已加载的Servlet 实例。

容器会调用Servlet的destroy()方法,开发人员可以在该方法中执行一些清理操作,如关闭数据库连接、释放资源等。

3. Servlet映射和URL匹配Servlet容器通过URL映射来确定哪个Servlet应该处理特定的请求。

URL映射可以通过web.xml配置文件或使用注解的方式进行定义。

例如,可以将特定URL 模式映射到某个Servlet,或将特定文件扩展名映射到某个Servlet。

简述过滤器的基本编写过程

简述过滤器的基本编写过程过滤器是Web开发中常用的一种技术,用于处理HTTP请求和响应。

它可以修改请求的参数、验证输入数据的合法性、对返回的结果进行处理等。

在本文中,我们将一步一步介绍过滤器的基本编写过程,并以中括号内的内容为主题进行讨论。

一、什么是过滤器?过滤器是Servlet规范提供的一种扩展机制,用于在HTTP请求和响应之间进行处理。

它能够截获请求和响应,并对其进行预处理或后处理。

过滤器的主要目的是在不改变原有请求和响应的情况下,对其进行增强或修改。

过滤器可以在Web应用程序的整个生命周期内起作用,并且可以应用于多个Servlet或JSP页面。

二、过滤器的分类根据其作用的对象,过滤器可以分为请求过滤器和响应过滤器。

请求过滤器用于处理HTTP请求,响应过滤器用于处理HTTP响应。

三、过滤器的基本编写步骤1. 创建一个Java类,实现javax.servlet.Filter接口。

这个接口定义了三个方法:init()、doFilter()和destroy()。

我们需要实现这些方法来处理请求和响应。

2. 实现init()方法,在这个方法中可以进行一些初始化操作。

这个方法在过滤器被加载时执行,并且只执行一次。

3. 实现doFilter()方法,在这个方法中实现过滤逻辑。

这个方法会被容器调用来处理请求和响应。

我们可以在这个方法中修改请求参数、验证输入数据、过滤敏感信息等操作。

如果需要将请求传递给下一个过滤器或Servlet,则需要调用FilterChain对象的doFilter()方法。

4. 实现destroy()方法,在这个方法中进行一些资源释放操作。

这个方法在过滤器被销毁时执行,并且只执行一次。

4. 在web.xml配置文件中配置过滤器。

在<filter>元素中配置过滤器的名称和完全限定类名。

在<filter-mapping>元素中配置过滤器的映射路径和调用顺序。

可以根据具体需求配置多个过滤器。

filter过滤器原理

filter过滤器原理Filter过滤器是Java Servlet规范中的一个重要组成部分,它主要用于Web应用程序中对请求或响应进行一些处理或修改。

Filter过滤器能够拦截客户端请求和响应,并对其进行一些预处理或后处理,同时不对底层资源进行任何的改变。

在Web应用程序中,客户端的请求会按照一定的顺序被多个过滤器拦截,最后才会到达目标Servlet或JSP页面。

过滤器的拦截顺序是由web.xml文件中的顺序决定的,顺序越靠前的过滤器越先拦截请求。

Filter过滤器的工作过程可以用下面的流程来描述:1、当客户端发起请求时,服务器会根据客户端请求的URL找到相应的Servlet或JSP 页面。

2、在Servlet或JSP页面被执行之前,在过滤器链中的第一个过滤器会被调用。

这个过滤器可以实现一些真正的过滤操作,比如验证用户身份等。

3、当第一个过滤器完成处理后,请求会按照web.xml文件中定义的顺序,依次经过它后面的过滤器。

4、如果过滤器链中有多个过滤器,请求将根据它们的顺序进行处理。

当请求到达最后一个过滤器时,如果没有被任何一个过滤器拦截,则将请求传递给目标Servlet或JSP 页面。

5、在Servlet或JSP页面处理请求并生成响应后,响应会按照相反的顺序经过过滤器链中的过滤器进行处理或修改,最终响应到达客户端。

通过使用Filter过滤器,可以有效的将Web应用程序的功能模块拆分成多个独立的模块,这些模块可以按照一定的顺序调用,扩展或修改Web应用程序的行为。

具体的优点包括:1、实现模块可复用性:在一个应用程序中,多个模块可能会需要进行相同或相似的过滤操作,而使用Filter可以将这些操作独立出来,易于重复使用。

2、抽象控制流:通过使用Filter可以抽象出整个请求和响应的控制流,实现更细粒度的控制。

3、有效的处理URL:通过Filter可以有效的处理URL,实现URL的解析和路由处理。

4、可扩展性:在Web应用程序中,Filter可以很方便的进行增加、删除或修改,从而实现Web应用程序的功能扩展。

Axis的安全访问机制

Axis的Handler和Chain机制,Handler和Chain是Axis引擎提供的一个很强大的工具。

J2EE Web 服务中的Handler技术特点非常像Servlet技术中的Filter。

我们知道,在Servlet中,当一个HTTP到达服务端时,往往要经过多个Filter对请求进行过滤,然后才到达提供服务的Servlet,这些Filter的功能往往是对请求进行统一编码,对用户进行认证,把用户的访问写入系统日志等。

相应的,Web服务中的Handler通常也提供一下的功能:●对客户端进行认证、授权;●把用户的访问写入系统日志;●对请求的SOAP消息进行加密,解密;●为Web Services对象做缓存。

在axis环境下,SOAP消息Handler必须实现org.apache.axis.Handler接口(在JAX-RPC 1.0规范中,SOAP消息Handler必须实现javax.xml.rpc.handler.Handler接口)。

为了提供开发的方便,在编写Handler 时,只要继承org.apache.axis.handlers. BasicHandler即可。

BasicHandler是一个抽象类,Axis提供了很多Handler的具体实现,BasicHandler只是其中最简单的一个。

要实现一个自己的handler首先要从继承BasicHandler这个类开始并实现其中的invoke(MessageContext arg)这个方法。

MessageContext可以看成是一个Axis的上下文,里面存储的是一些Axis和webservice的基本信息。

它通过MessageContext来获得请求或者响应的SOAPMessage对象,然后对SOAPMessage进行处理。

想了解的朋友可以看一下Axis的API。

Axis提供了很多已经实现的handler供我们使用,比如org.apache.axis.handlers.LogHandler,org.apache.axis.handlers.SimpleAuthenticationHandlerorg.apache.axis.handlers.JWSHandler一、利用handler进行客户端ip验证package com.webservice;import java.io.IOException;import java.io.InputStream;import java.util.Properties;import java.util.regex.Pattern;import javax.servlet.http.HttpServletRequest;import org.apache.axis.AxisFault;import org.apache.axis.MessageContext;import org.apache.axis.handlers.BasicHandler;import org.apache.axis.transport.http.HTTPConstants;import org.apache.axis.utils.Messages;//使用Handler对用户的访问认证public class IpAuthenticationHandler extends BasicHandler{ private static final long serialVersionUID = 1L;private static Properties p = new Properties();static{InputStream in = null;try{in =IpAuthenticationHandler.class.getResourceAsStream("/config/config.pro perties");p.load(in);}catch(IOException e){System.out.println("property配置文件加载错误!");e.printStackTrace();}finally{if (in!=null){try{in.close();}catch(Exception e){e.printStackTrace();}}}}//invoke,每一个handler都必须实现的方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档