welcome-file
welcome-file-list元素是一个计算机名词,当用户在浏览器中输入的URL不包含某个servlet名或JSP页面时,welcome-file-list元素可指定显示的默认文件
welcome-file-list的工作原理是,按照welcome-file的.list一个一个去检查是否web目录下面存在这个文件,如果存在,继续下面的工作,先去webcontent(这里是Eclipse的工程目录根目录)下是否真的存在index.html这个文件,如果不存在去找是否存在index.jsp这个文件,以此类推。
还要说的是welcome-file不一定是html或者jsp等文件,也可以是直接访问一个action。就像我上面配置的一样,但要注意的是,一定要在webcontent下面建立一个index.action的空文件,然后使用struts配置去跳转,不然web找不到index.action这个文件,会报404错误,原因就是我之前说的那样。
如果配置了servlet的url-pattern是/*,那么访问localhost:8080/会匹配到该servlet上,而不是匹配welcome-file-list;如果url-pattern是/(该servlet为默认servlet),如果其他匹配模式都没有匹配到,则会匹配welcome-file-list。如果访问到了welcome-file,项目会自动跳转到欢迎页!
/和 /* 对于所用请求都拦截,但是 / 对于 .jsp 的不拦截,直接访问到真实的jsp页面。
@Override
java 开发时经常会碰到@Override注解,从字面上来理解就是覆盖的意思
该注解的作用主要有两个:
-
帮助自己检查是否正确的重写了父类中已有的方法
-
告诉读代码的人,这是一个重写的方法
-
编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。
如果想重写父类的方法,比如toString()方法的话,在方法前面加上@Override 系统可以帮你检查方法的正确性。
@Override的产生是为了解决误把重写写成重载的情况。重写要求方法的签名完全一样,如果调用重写的方法,一定是调用子类的方法。但是重载方法签名是不同的,调用的可以是父类或子类的方法,会让人比较迷惑。因此,我们通常都是在用重写而不是重载,因此加上@Override,当你手误写错的时候,编译器会帮你检查报错提醒。