Java Spring方法
作为备忘录留下来。
对我来说,向他人解释是一个很好的输出方式,如果有任何错误,请指正。谢谢。
将来还有计划进行的补充。
equals方法
equals方法是一个可以进行字符串比较的指令。
在比较时,我们基本上会比较整数这一基本数据类型。
与基本数据类型的整数比较不同,使用equals方法时,涉及的是引用数据类型的字符串比较。
在equals方法中,当两个对象相等时返回true,不相等时返回false。
关于应用程序属性context-path。
server.servlet.context-path=/spring_training
在HTML中设置路径时,可以采用以下方式
/spring_training/lesson01_08/login
春季训练的路由设置需要进行,因此需要在文件夹前明确说明。
控制器的命名
在给控制器命名之前必须在文件名前加上”Controller”,否则它将无法被识别为控制器。
过滤器类
「过滤器(Filter类)」是指将希望在每个控制器执行前执行的共同处理(共同处理)汇总到一个类中的操作。
在执行控制器之前,可能希望执行以下类似的共同处理。
只需一個選項:
❑ 確認正在訪問的使用者的登入資訊是否存在於此會話中(登入檢查)
❑ 確認正在登入的使用者是否擁有足夠權限以存取目標控制器(權限檢查)
如果在每个控制器内编写这样的处理,会导致冗余的代码增加,修复时需要修改的地方也会增多,这样会有诸多的缺点。因此,通常将这样的处理编写成过滤器。
package jp.co.sss.shop.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.springframework.stereotype.Component;
@Component
public class Message01Filter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System. out .println("Done Message01Filter");
chain.doFilter(request, response);
}
}
@Component 注解
为了将过滤器注册到Spring的DI容器中,需要在类块中添加@Component注解。
过滤器接口
为了将类作为过滤器进行功能操作,需要实现(implements)Filter接口。
Filter#doFilter()方法
doFilter() 是一个从 Filter 接口重写的方法。在调用过滤器时会执行此方法。
以下表格中列出了 doFilter() 方法的参数。
doFilter()方法的参数。
Servlet异常类
ServletException类是Spring框架中基于Servlet技术的错误异常类。它是与IOException类一起在Filter#doFilter()方法中定义的,因此在处理这些异常类时,需要编写代码来抛出或处理异常。
FilterChain的doFilter()方法的功能
在过滤器的doFilter()方法中调用了与参数chain同名的方法。
这个doFilter()方法是在FilterChain接口中定义的,它与Filter#doFilter()方法有不同的功能。
这个方法将搜索是否存在其他可执行的过滤器。
当存在时,将调用并执行目标过滤器中的doFilter()方法。
同时,如果没有其他可执行的过滤器存在,则将执行原来被请求的程序的处理。
通过FilterChain#doFilter()方法可以执行多个过滤器,并执行请求目标程序。