项目团队的构成
- 前段开发工程师
- 把设计(效果)图切成 HTML+CSS+image+js...
- 使用前段框架(Vue.js、Angular、React)开发前端应用(手机、桌面)
- 需要服务端提供接口
- 美术设计师(美工)
- 把产品经理/项目经理设计的原型 转变成 效果图(App、桌面网站、系统)
- 设计宣传资料(产品、公司、项目)
- 杂事(名片、PPT...)
- 项目经理
- 管理项目需求,与客户及项目团队沟通,制定项目计划、监管项目进度...
- 一个项目经理可能同时管理多个项目
- 产品经理
- 自己研发产品的公司通常有产品经理,规划、设计产品(面向什么用户、满足什么需要、如何在竞争中胜出、如何盈利)
- 互联网公司一般都有产品经理
- 部门经理
- 团队组建(面试、招聘、优化)、培训、日常行政管理(请假审批等)
- 绩效考核
- 测试工程师
- 找BUG、管理BUG
- 写文档(测试文档,产品说明书<使用手册、帮助文档>)
绝对路径和相对路径
- 绝对路径:是以 / 开头或者以协议开头
- 例:/api/user/login
- http://www.baidu.com/abc
- 以主机根目录为固定参照点
- 使用绝对路径的代码,可以在项目中随意移动而不用修改地址
- 相对路径:是以 字母数字等非/开头,或者以. .. 开头
- user/login
- ../login
- 以当前目录为参照点
- 使用相对路径的代码,移动位置时需要检查地址是否正确
- 在JSP中使用绝对路径,首先要解决应用路径(Content root)的问题
- 获取应用路径可以使用代码块定义一个变量
<%
String basePath = request.getContextPath();
%>
<link rel="stylesheet" href="<%= basePath%>/css/index.css">
- 使用JSTL
- <link rel="stylesheet" href="<c:url value="/css/index.css">">
- c:url:是一个特殊的标签,它可以将value中的url变成包含应用路径的绝对地址
- 步骤
- 导入Jar包
- 把标签库tld文件都导入项目中(WEB-INF)
- 在web.xml中配置jspl
- 在jsp页面上添加taglib指令
-
- 实际上是命名空间声明
- prefix="c" 命名空间的前缀,前缀名称可以随意写,越短越好
- uri="uri":uri不是一个真实的网址,只是一个;以网址形式存在的唯一名称
- <c:url value>:当页面上写该标签时,需要找到url标签的解释者。
- 需要找url标签的命名空间 c
- 而c在页面开头由taglib指令声明,而且它与后面的uri关联起来、uri在jar包中有相应的声明(tld中声明了相应的标签名,以及对应的类。)
- 找到类之后会调用类中的渲染方法生成html
- JSTL语法
- 使用的是严格的xml语法,标签需要闭合
- <c:url ...../>
- <c:when ...> .... </c:when>
- 使用的是严格的xml语法,标签需要闭合
- JSTL常用的标签大类是
- 核心标签:用来控制HTML的生成,提供了分支判断、循环生成复杂HTML的功能(根据数据生成)、 还包括生成URL及跳转
- 格式化标签:用来格式化数据
- 函数:用来截取字符串等。
JNDI(Java Naming and Diectory Interface)
- Java的名字和目录服务的接口,JDK只定义了规范,而没有给出具体实现。
- 具体实现有Tomcat等应用容器实现。
- 名字和服务的服务的目标是:
- 通过提供字符串形式的名字即可获得想要对象,对象已经被初始化好,初始化是通过配置文件中提供配置信息实现的。
- 不需要程序员自己new一个对象,也不需要程序员自己给构造方法传参,也不需要调用setter给属性赋值
- 它带来的好处
- 将对象的创建需要的信息转移到配置文件中,从Java中脱离出来,方便之后的修改(不需要修改和编译代码)
- JNDI底层有很多提供程序,可以支持创建多种对象,提供程序是可以扩展的
XML
- 可扩展标记语言(Extensible Markup Language)
- 标签名可以自定义标签标记语言
- XML是语法严格的,如果语法不正确,就无法通过验证器验证。使用XML解析器解析数据时也会出错
- 因为XML标签是可扩展的,所以XML有文档类型定义(DTD)语言和Schema语言两种,帮助程序员定义新标签
- 既然XML可以自定义标签,那么如果出现A程序员定义的标签和B程序员定义的标签同名,怎么解决?
- 解决方法是:标签都定义在命名空间中,命名空间相当于Java中的包
- 每个XML都有一个默认命名空间,迷人命名空间不用加前缀,当引入其他命名空间的标签时,必须加前缀
- XML实体符号
- SML Entities(Entity)
- 因为XML使用了:< > &
- 当节点内部(标签内容区域)需要表示< >这种语法符号时,需要写实体代码,而不能直接写语法符合
- 例:
- <expr> a<b </expr>
- 变成
- <expr> a<b </expr>
- 例:
- 实体符号以&开头
- &——>&
从Servlet向JSP/Servlet传数据
- 使用转发跳转时,可以将数据放在request对象中
- request.setAttribute("key","value");value可以是对象
- 使用重定向时,需要将数据放在URL中
- response.senfRedirect(".../index.jsp?errorMessage=xxxx");
- 这种方法只能传字符串,而且不能太长
try/with/resource
- Java7支持新语法
- 可与自动帮助我们调用close方法,close方法在AutoClosable这个接口中定义的
- try(资源1;资源2;资源3;){
- 资源3关闭
- 资源2关闭
- 资源3关闭
- }
- catch(){
- }
- try(资源1;资源2;资源3;){
WEB-INF和META-INF
- 其中的文件或资源不能通过浏览器直接访问