其然IT教育集团是广州腾科网络技术有限公司旗下运营的网站平台。其然IT
教育集团是一家以提供新型、**的IT技术培训(教育)解决方案为主要经营目标的专业公司,是中国高端IT培训的**品牌。联合思科(Cisco)、甲
骨文(Oracle)、红帽(Red Hat)、华为(Huawei)、微软(Microsoft)、美国计算机行业协会(CompTIA)等国际知名IT厂商以 及国内300多家高等院校,
开展IT认证技能培训和IT职业课程教育,培养新型IT高级人才,是Pearson VUE国际电子考试中心和Prometric(普尔文)授权考试中心,并是达索
(solidworks)、安氏(LinkTrust)的授权经销商。
其然IT教育集团下辖上海分公司、深圳分公司、武汉分公司、杭州分公司等
8个分支机构。以及30多个培训网点,业务涵盖全国主要大、中型城市。
培训Java与自学Java的差距
我以前也是自学Java,在一家公司跟着别人学,以前是别人眼中的菜鸟,现
在是别人眼中的大神,Java很简单的,贵在坚持和多练,没必要花那培训钱。如果真的要去学的话,
选择Java培训机构要注意这两点基本上就能避免一些坑:
1. 老师没有正经公司工作经历,或者没有已经在线上正常运转的产品。一
些所谓培训班的老师水平往往比较一般,甚至还有培训出来后又接着培训别人的。
2、是不是会承诺帮你找到工作,要找到好的工作,不是靠别人给你保证的
,还是要靠自己提升能力。
建议多自己学习加上找些好的代码主动学习。例如github,多练习网上很多
网站里真正好的代码。作为Java工程师,可以多看看spring文档,看看很多已经成熟的框架,深入去体会。另外,学软件等等**好还是自己多学,找点
视频教程之类,也省点钱。
Java设计和编程思想
Java基础
环境搭建(包括Windows下和
Linux下的Java环境搭建)
Java语言基础
Java流程控制
Java常用类
Java面向对象
Java类与对象
介绍面向对象多态
接口与抽象类
Java高级
异常处理
I/O、JavaBean
反射
多线程
网络编程
泛型/Java集合类
Java与数据库
MySQL
ORACLE
JDBC开发与应用
Redis
课程优势
1.行业一线讲师讲解,深入浅出。
2.全面、完善的java课程体系,帮助学员更深更广的体验java魅力。
本阶段学习目标
1.精通java面向对象思想和基础语法。
2.熟练java中异常处理。
3.精通java中I/O操作。
4.掌握java中多线程操作。
5.精通java中集合类的使用。
6.掌握java中网络编程。
7.精通数据库/JDBC/redis/mysql的使用
本阶段学习效果
1.精通Java语言及其高级特性。
2.具备本地应用开发能力,能够开发一些本地软件,例如:聊天室,文件传
输助手等。
JSTL标签和EL表达式学习
>
JSTL简单介绍
什么是JSTL?
JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便,它与jsp动作标签一样,只不过它不是JSP内置的标签,需要我们自己导包,以及指定标签库而已!,JSTL是有tld文件(JSTL1.1含有5个tld文件)和标准处理类组成
如果你使用MyEclipse开发javaWeb,那么在把项目发布到Tomcat时,你会发现,MyEclipse会在lib目录下存放jstl的Jar包!如果你没有使用MyEclipse开发那么需要自己来导入这个JSTL的Jar包:jstl-1.2.jar
JSLT的**:
**之后解压导入jstl.jar和standard.jsr包导入lib目录下:
http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
JSTL标签介绍和使用
JSTL标签库:
JSTL一共包含四大标签库:
core:核心标签库,我们学习的重点
fmt:格式化标签库,只需要学习两个标签即可
sql:数据库标签库,不需要学习了,它过时了
xml:xml标签库,不需要学习了,它过时了
使用taglib指令导入标签库:
除了JSP动作标签外,使用其他第三方的标签库都需要:
导包
在使用标签的JSP页面中使用taglib指令导入标签库
下面是导入JSTL的core标签库:
<%@ taglib PRefix="c"uri="http://java.sun.com/jstl/core" %>
prefix=”c”:指定标签库的前缀,这个前缀可以随便给值,但大家都会在使用core标签库时指定前缀为c
uri=”http://java.sun.com/jstl/core”:指定标签库的uri,它不一定是真实存在的网址,但它可以让JSP找到标签库的描述文件
core标签库常用标签:
out和set标签:
<c:out value=”aaa”/> //输出aaa字符串常量
<c:out value=”${aaa}”/> //与${aaa}相同
<c:out value=”${aaa}” default=”xxx”/> //当${aaa}不存在时,输出xxx字符串
<%request.setAttribute("a","<script>alert( hello );</script>");%>
<c:out value="${a }" default="xxx" escapeXml="false" />
如果为escapeXml="false",则将其中的html、xml解析出来,还可以输出转义字符,所以会输出hello
<c:set var=”a” value=”hello”/> //在pageContext中添加name为a,value为hello的数据
<c:set var="a" scope="session">hello</c:set> //也是输出hello
<c:set var=”a” value=”hello” scope=”session”/> //在session中添加name为a,value为hello的数据
remove标签:
<%
pageContext.setAttribute("a","pageContext");
request.setAttribute("a","session");
session.setAttribute("a","session");
application.setAttribute("a","application");
%>
<c:remove var="a"/> //删除所有域中name为a的数据!
<c:out value="${a}" default="none"/>
<c:remove var="a" scope=”page”/> //删除pageContext中name为a的数据
catch标签:
<c:catch var="error">
<%=10/0>
</c:catch>//捕获异常,后面的代码继续执行
<c:out value="${error}"/> //输出异常信息
if标签:
if标签的test属性必须是一个boolean类型的值,如果test的值为true,那么执行if标签的内容,否则不执行
<c:set var="a" value="hello"/>
<c:if test="${not empty a }" var="result" scope="session">
<c:out value="正确"/>
</c:if>
<c:out value="${result}"></c:out> //输出"正确"
choose,when,otherwise标签:
choose标签对应Java中的if/else,when标签的test为true时,会执行这个when的内容,当所有when标签的test都为false时,才会执行otherwise标签的内容,choose标签可以省略不写
<c:set var="score" value="${param.score }"/>
<c:choose>
<c:when test="${score > 100 || score < 0}">错误的分数:${score }</c:when>
<c:when test="${score >= 90 }">A级</c:when>
<c:when test="${score >= 80 }">B级</c:when>
<c:when test="${score >= 70 }">C级</c:when>
<c:when test="${score >= 60 }">D级</c:when>
<c:otherwise>E级</c:otherwise>
</c:choose>
forEach标签:
forEach当前就是循环标签了,forEach标签有多种两种使用方式:
使用循环变量,指定开始和结束值,类似for(int i = 1; i <= 10; i ) {}
循环遍历集合,类似for(Object o : 集合)
循环变量:
<c:set var="sum" value="0" />
<c:forEach var="i" begin="1" end="10">
<c:set var="sum" value="${sum i}" />
</c:forEach>
<c:set var="sum" value="0" />
<c:forEach var="i" begin="1" end="10" step ="2">
<c:set var="sum" value="${sum i}" />
</c:forEach>
遍历集合或数组方式:
<%
String[] names = {"zhangSan", "liSi", "wangWu", "zhaoLiu"};
pageContext.setAttribute("ns", names);
%>
<c:forEach var="item" items="${ns }">
<c:out value="name: ${item }"/><br/>
</c:forEach>
遍历List:
<%
List<String> names = new ArrayList<String>();
names.add("zhangSan");
names.add("liSi");
names.add("wangWu");
names.add("zhaoLiu");
pageContext.setAttribute("ns", names);
%>
<c:forEach var="item" items="${ns }" begin="1" end="3">
<c:out value="name: ${item }"/><br/>
</c:forEach>
遍历Map:
<%
Map<String,String> stu = new LinkedHashMap<String,String>();
stu.put("number", "N_1001");
stu.put("name", "zhangSan");
stu.put("age", "23");
stu.put("sex", "male");
pageContext.setAttribute("stu", stu);
%>
<c:forEach var="item" items="${stu }">
<c:out value="${item.key }: ${item.value }"/><br/>
</c:forEach>
forEach标签还有一个属性:varStatus,这个属性用来指定接收”循环状态”的变量名,例如:<forEach varStatus=”vs” …/>,
这时就可以使用vs这个变量来获取循环的状态了
count:int类型,当前以遍历元素的个数
index:int类型,当前元素的下标
first:boolean类型,是否为**个元素
last:boolean类型,是否为**后一个元素
current:Object类型,表示当前项目
<c:forEach var="item" items="${ns }" varStatus="vs">
<c:if test="${vs.first }">**行:</c:if>
<c:if test="${vs.last }">**后一行:</c:if>
<c:out value="第${vs.count }行: "/>
<c:out value="[${vs.index }]: "/>
<c:out value="name: ${vs.current }"/><br/>
</c:forEach>
forTokens标签:
通过指定分隔符将字符串分隔为一个数组然后迭代它们,delims:分隔符
<c:forTokens items="google,runoob,taobao" delims="," var="name">
<c:out value="${name}"/><p>
</c:forTokens> //输出google runoob taobao
c:import 标签:
使用c:import标签可以包含一个FTP服务器中不同的网页内容
<c:import var="data" url="http://www.runoob.com"/>
<c:out value="${data}"/> //以上程序将会打印http://www.runoob.com"页面的源代码
<c:import url="/import.jsp" context="/WebProjext"/> //引入同一个服务器下的另外一个Project
c:redirect>标签:
c:redirect标签通过自动重写URL来将浏览器重定向至一个新的URL,它提供内容相关的URL,并且支持c:param标签,context:紧接着一个本地网络应用程序的名称
<c:redirect url="if.jsp">
<c:param name="aa" value="123"></c:param>//传参数
</c:redirect> //用${param.aa}可以获得
url标签:该标签会在需要重写URL时添加
<c:url value="/"/> //输出上下文路径:/项目名/
<c:url value="/" var="a" scope="request"/> //把本该输出的结果赋给变量a,范围为request
<c:url value="/AServlet">
<c:param name="username" value="abc"/>
<c:param name="passWord" value="123"/>
</c:url> //输出:/项目名/AServlet?username=abc&password=123,如果参数中包含中文,那么会自动使用URL编码!
fmt标签库常用标签:
fmt标签库是用来格式化输出的,通常需要格式化的有时间和数字
格式化时间:
<%
Date date = new Date();
pageContext.setAttribute("d", date);
%>
<fmt:formatDate value="${d }" pattern="yyyy-MM-dd HH:mm:ss"/>
格式化数字:
<%
double d1 = 3.5;
double d2 = 4.4;
pageContext.setAttribute("d1", d1);
pageContext.setAttribute("d2", d2);
%>
<fmt:formatNumber value="${d1 }" pattern="0.00"/><br/>
<fmt:formatNumber value="${d2 }" pattern="#.##"/>
JSTL(fn函数):
首先,我们要在页面的**上方引用:
<%@ taglib prefix="fn" uri="http://Java.sun.com/jsp/jstl/functions" %>
基本函数使用:
fn:contains(string, substring)
<c:if test="${fn:contains("你好","你好了吗")}"/> //前面的字符串是否包含后面的
fn:containsIgnoreCase(string, substring) //忽略大小写的包含
fn:endsWith(string, suffix) //假如参数string以参数suffix结尾,返回true
fn:indexOf(string, substring) //返回参数substring在参数string中**次出现的位置
fn:escapeXml(string)
将有非凡意义的XML (和HTML)转换为对应的XML,character entity code,并返回
<c:out value="${fn:excapeXml( <book>歌曲</book> )}"/> <!--输出<book>歌曲<book>-->
JSP访问JavaBean:
1.导入javaBean类
<%@ page import="com.anllin.bean.Person" %>
2.声明javaBean对象
<jsp:useBean id="person" class="com.anllin.bean.Person"></jsp:useBean>
其实相当于
<% Person person = new Person(); %>
Id表示生成一个类的实例,一般id不能重复,用于表示不同的对象,如果相同则表示同一个对象,这种情况下jsp会报错
3.访问javaBean属性
<jsp:setProperty property="name" name="person" value="jack"/>
<jsp:getProperty property="name" name="person"/><br>
其实相当于
<%
person.setName("jack");
person.getName();
%>
也可以使用JSTL:
<c:set target="${person}" property="name" value="jark"/>//相当于:<c:set target="${person}" property="name">jark</c:set>
<c:out value="${person.name}"/>
具体介绍:http://www.cnblogs.com/zfc2201/archive/2011/08/17/2143615.html
EL表达式介绍
EL(Expression Language)表达式语言:用于计算和输出存储在标志位置(page、request、session、application)的java对象的值
EL是JSP2.0规范的一部分,只要容器支持Servlet2.4/JSP2.0,就可以在JSP2.0网页中直接使用EL
EL表达式的使用
基本格式:${表达式}
所有的EL都是以"${"开始,以"}"结尾
表达式与开始符和终结符的空格被忽略
表达式的值为null,则在页面中显示为一个空字符串,而不是null
运算符的介绍:
算术运算: 、-、*、/或div、%或mod
关系运算:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge
逻辑运算:&&或and、||或or、!或not
特殊运算:empty(是否为null或空字符串)、?:(三元运算符)
转义符:\${变量}
EL 提供”.”和”[ ]”两种运算符来存取数据:
当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用”[ ]”,例如:
${user.My-Name}应当改为${user["My-Name"] }
如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值,例如:
${sessionScope.user[data]}中data 是一个变量
EL常用的隐式对象:
作用域(以下11个EL作用域名称也是EL提供的隐式对象):
EL中存取变量:
EL存取变量数据的方法很简单,例如:${username},它的意思是取出某一范围中名称为username的变量
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null
属性范围在EL中的名称:
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope
特别强调:
1.注意当表达式根据名称引用这些对象之一时,返回的是相应的对象而不是相应的属性,例如:即使现有的pageContext 属性包含某些其他值,${pageContext}也返回 PageContext 对象
2.注意 <%@ page isELIgnored=”true” %> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言
基本使用举例:
< %=request.getParameter(“username”)% >等价于${ param.username } //注意EL会进行自动类型转换
相关推荐:
苏州JAVA培训 苏州JAVA培训班 苏州JAVA培训机构