一、注解
- 注解存在的意义:简化 xml 文件的开发.
- 注解在 servlet 3.0 规范之后大力推广的.如果想使用注解得话,必须是在创建得时候选择Web3.0以上。
- 注解前面的@XXX,表示引用一个@interface
- @interface 表示注解声明
- 注解可以有属性,因为注解其实就是一个接口(类)
- 每次使用注解都需要导包
- 注解语法: @XXXX(属性名= 值)
- 值的分类
- 如果值是基本数据类型或字符串: 属性名=值
- 如果值是数组类型: 属性名={值,值}
- 如果只有一个值可以省略大括号
- 如果值是类类型,属性名=@名称
- 如果注解只需要给一个属性赋值,且这个属性是默认属性,可以省略
属性名
二、路径
路径分类
- 相对路径: 从当前资源出发找到其他资源的过程
- 绝对路径: 从根目录(服务器根目录或项目根目录)出发找到其他资源的过程
标志: 只要以/开头的都是绝对路径
绝对路径:
- 如果是请求转发 / 表示项目根目录(WebContent)
- 其他重定向,<img/> <script/>,<style/>,location.href 等/都表示服务器根目录(tomcat/webapps 文件夹)
如果客户端请求的控制器,控制器转发到 JSP后,jsp中如果使用相对
路径,需要按照控制器的路径去找其他资源.
- 保险办法:使用绝对路径,可以防止上面的问题
大部分注解都有默认属性,如果注解中只给默认属性复制,可以省略属性名
否则在注解的(属性名=属性值)格式
如果一个属性是数组类型格式: 属性名={值,值} ,如果该数组只有一个值,可以省略大括号
如果类是不是基本数据类型或String而是一个类类型,语法: 属性名=@类型
注解中@表示引用注解声明
@WebServlet("/abc/b/show")
public class ShowServlet extends HttpServlet{
private PeopleService peopleService = new PeopleServiceImpl();
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<People> list = peopleService.show();
req.setAttribute("list", list);
相对路径
只要路径中以/开头的都叫做全路径. 从项目根目录(WebContent)出发找到其他资源的过程
只要不以/开头都是相对路径,相对路径是从当前资源出发找到其他资源的过程
如果请求转发 / 表示WebContent目录
如果是重定向,静态资源引用,必须<img src=""/> <a href=""> <script src=""/> css引用时 其中 /都表示的是tomcat的webapps文件夹根目录
服务器根目录
req.getRequestDispatcher("/index.jsp").forward(req, resp);
}
}