【黑马程序员】第10课:JSP+EL表达式+JavaBean

<pre>

day10

上节内容回顾

1、jsp的入门

*在jsp里面如何嵌入java代码

**有三种 <%!  %>  <%= %> <%  %>

*jsp就是servlet,最终也会被编译成servlet,放到tomcat的work目录里面

2、el入门

*获取域对象里面的值

*${域对象的名称}

3、cookie

*cookie分类

**有两种:会话级别的cookie和持久性的cookie(使用方法setMaxAge方法)

*创建cookie:new Cookie("","")

*把cookie回写到浏览器里面 response.addCookie(cookie);

*销毁持久性的cookie

第一:创建一个和要删除cookie相同名称的cookie,值""

第二:设置有效时长是0

第三:设置有效路径

第四:把cookie回写到浏览器内存

4、session

*session是服务器端技术,依赖于cookie。

*session的创建、销毁

**创建:执行request.getSession()

**销毁有三种

*tomcat里面进行配置、先编码再解码

**第三种:调用方法

*禁用cookie之后,使用session

**在地址后面加一个;jsessionid=id值

思维导图

1jsp

(1)java  server pages:java服务器端的页面,jsp运行在服务器(tomcat里面)

*之前学过servlet,sun公司开发用于动态网站的技术,还有一个jsp

**先有的servlet,因为servlet如果向页面输出内容太麻烦了,所以sun公司开发jsp可以方便向页面进行输出

(2)jsp就是servlet,jsp最终也会被编译成servlet,会放到tomcat的work目录里面

*jsp在什么时候编译成servlet:请求jsp时候编译成servlet

(3)jsp组成:html+java代码+jsp自身

(4)在jsp里面要嵌入java代码有三种方式

第一种:<%!  %>,如果定义变量是成员变量

第二种:<%=  %>,向页面输出,生成servlet在service方法里面out.print("hello" );

第三种:<%  %>,写java代码,生成的servlet也在service方法里面

(4)jsp的注释

*jsp组成:html+java代码+jsp自身

**html的注释

**java的注释

**jsp自身的注释  <%-- jsp自身的注释 --%>

* 在jsp的源代码阶段:这三类注释都存在

* 在jsp编译成servlet之后:html注释和java注释存在,JSP注释会消失。

* jsp最终向页面输出之后:只是html注释存在

*在jsp里面如果嵌入java代码,不能使用html的注释,而要是jsp自身的注释

<%--

<%

for(inti=0;i<2;i++) {}

%>

--%>

(5)jsp的有三个指令

*jsp指令的语法:首先jsp里面的指令要写在jsp页面最上面(不包括include指令)

<%@ 指令的名称  属性的名称="属性的值"%>

属性名称写的时候严格区分大小写。

第一个:page指令,设置jsp页面的一些信息

<%@page 属性名称="属性的值"%>

*page指令里面的属性

**language属性:表示jsp支持的语言的类型,目前只支持java

**extends属性:表示jsp编译成servlet,继承的类,一般不需要修改,默认继承的类HttpJspBase

***原则:可以改变这个继承的类,但是这个类必须要是一个servlet

**session属性:表示在jsp里面是否可以直接使用session对象,属性的值是true和false

***在默认的情况下,session属性的值是true

=代码

<%

//request.getSession().setAttribute("aa","itheima");

session.setAttribute("aa","itcast");

%>

<%=session.getAttribute("aa")%>

**import属性:表示在jsp导入依赖的包

=代码(可以分别写,也可以写在一起)

与java不同,jsp快速导包不是ctrl+shift+o,而是将光标放在类名的后面,alt+/。

<%@page import="java.util.Date"%>

<%@page import="java.util.List,java.util.ArrayList"%>

**buffer:jsp输出的缓冲区的大小,默认的值 8kb

**autoFlush:jsp输出如果超出了缓冲区的大小,是否会正常输出

**errorPage属性:如果jsp运行的时候出现了异常,设置异常跳转到错误页面(虽然

页面的内容发生了变化,但是地址栏没有发生变化,说明跳转采用的

转发机制。)

**isErrorPage属性:在错误页面里面,是否显示错误信息,默认false.

***一般用在程序员调试程序时候,但是如果系统要给客户,isErrorPage一定要设置成false

=当在错误页面里面把属性的值设置成true之后,才能在errorPage页面来使用

exception这个内置对象。

==编译的servlet里面生成了代码

java.lang.Throwable exception =org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);

if (exception != null) {

response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

}

* contentType:设置打开jsp时候浏览器的编码

* pageEncoding:jsp编译成servlet,编译成servlet时候采用的编码

pageEncoding="utf-8",默认的编码是iso8859-1

*isELIgnored:jsp里面是否忽略el表示(jsp是否可以使用el表达式),默认值false,表示不忽略(可以使用)

**如果想要在jsp里面使用el表达式,需要把这个属性值设置成false。如果设置成true,会把el表达式当做普通文本输出

**重点掌握的属性: session 、import 、 errorPage 、 pageEncoding

第二个:include指令,用于包含页面的指令(静态包含)

*支持多层嵌套,这样除了最外层的JSP,其它的JSP页面都可以不用写html代码,

直接写内容即可。

*在一个jsp里面包含其他的jsp里面内容

*语法: <%@ include 属性="属性值"%>

=  <%@ include file="head.jsp"%>

*注意一:当包含某个jsp页面时候,在包含的的页面里面不需要写html的代码了,只需要写包含的内容

*注意二:在include指令的file属性里面不能写参数,即加上?id=1等等内容。

*注意三:在include的file属性里面不能写变量

*注意四:在include的file属性里面路径不能加项目名。

*jsp最终要编译成servlet,有多个jsp页面,最终会编译成几个servlet?

*使用include指令包含多个页面,最终会编译成一个servlet

*静态包含相当于代码复制把多个jsp里面的内容复制到一个jsp里面,生成一个servlet

第三个:taglib指令

*作用:经常和jstl标签库一起使用,替代页面中的<% %>

*语法:<%@ taglib uri="jstl标签库的路径"prefix="标签库的别名"%>

*掌握程度:

第一:知道jsp里面有三个指令以及这三个指令的名称

第二:三个指令分别可以做什么以及如何做

问题:jsp里面有哪些指令?

答:jsp里面有三个指令,这三个指令分别是 page、include和taglib

page指令可以设置页面的信息,里面重要的属性是session、import、errorPage、pageEncoding

include表示包含其他的jsp页面

taglib可以和jstl使用替代页面中<%%>

(6)jsp的内置对象

*什么是内置对象:在jsp里面可以直接使用的对象称为内置对象

*在jsp里面有九个内置对象

request就是servlet里面HttpServletRequest对象,代表请求,域对象,获取提交的数据,获取客户机信息

response:就是servlet里面HttpServletResponse对象,代表响应,回写cookie,向页面输出

sesssion:就是servlet里面HttpSession对象,域对象

config就是servlet里面ServletConfig对象,获取servlet名称,获取初始化参数

application:是servlet里面的ServletContext对象,域对象,获取全局初始化参数,读取web项目中文件

exception代表异常对象

*如果想要使用,必须要把属性isErrorPage设置成ture才可以使用

java.lang.Throwable exception =org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);

if (exception != null) {

response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

}

page代表jsp编译成servlet,当前运行的servlet这个对象

out向页面输出的对象

* out和response.getWriter()区别

**out使用的是JspWriter,response.getWriter()使用的是 PrintWriter

*out和response.getWriter()输出机制

**产生两个缓冲区out和response

***out不能直接向页面输出,把out里面的值放到response缓冲区里面,通过response向页面输出

pageContext(****)

第一:本身就是一个域对象

**pageContext只是在jsp里面可以使用,当前页面。

**设置值 setAttribute(String name, Object value)

**取值 getAttribute(String name)

=代码

<%

pageContext.setAttribute("msg","itcast100");

%>

<%=pageContext.getAttribute("msg") %>

第二:pageContext可以向域对象里面设置值

*servletContext(在jsp里面application)、session、request

(1)设置值的方法:setAttribute(String name, Object value, int scope)

第三个参数:表示是哪个域

*使用pageContext的常量表示不同的域

*如果是application,使用APPLICATION_SCOPE

*如果是session,使用SESSION_SCOPE

*如果是request,使用REQUEST_SCOPE

*如果是pageContext,使用PAGE_SCOPE

(2)取值的方法:getAttribute(String name,int scope)

第二个参数:表示是哪个域

*使用pageContext的常量表示不同的域

*如果是application,使用APPLICATION_SCOPE

*如果是session,使用SESSION_SCOPE

*如果是request,使用REQUEST_SCOPE

*如果是pageContext,使用PAGE_SCOPE

=代码

<%

pageContext.setAttribute("app","appvalue", pageContext.APPLICATION_SCOPE);

pageContext.setAttribute("sess","sessvalue",pageContext.SESSION_SCOPE);

pageContext.setAttribute("req","reqvalue", pageContext.REQUEST_SCOPE);

pageContext.setAttribute("page1","page1value", pageContext.PAGE_SCOPE);

%>

<%=pageContext.getAttribute("app",pageContext.APPLICATION_SCOPE) %>

<%=pageContext.getAttribute("sess",pageContext.SESSION_SCOPE) %>

<%=pageContext.getAttribute("req",pageContext.REQUEST_SCOPE) %>

<%=pageContext.getAttribute("page1",pageContext.PAGE_SCOPE) %>

(3)findAttribute(String name) 方法(注意这个方法是pageContext对象

                                               所特有的方法)

*表示从域对象里面获取值,如果多个域对象里面的值相同的,得到域范

                                     围小的里面的值《** 如果只设置 了application域的属性值,在360

                                     览器中获取不到值!!****

*四个域对象!!!!!!!!!!!!!!!!!!!!!!!!!

**pageContext:范围当前的页面有效(这个域对象只是在jsp里面使用)

**request:范围一次请求

**session:范围是一次会话

**application:范围是整个web项目

第三:pageContext可以获取其他八个内置对象

*只需要得到pageContext,就可以得到jsp里面的其他的八个内置对象

*  <%

pageContext.getRequest();

pageContext.getResponse();

pageContext.getSession();

//....

%>

*掌握程度:九个内置对象是什么,九个内置对象分别可以做什么

==========================================================================================

上午内容的总结

1、jsp的三个指令

*page 、include、taglib

2jsp的九个内置对象

request

response

session

config

application

exception

page

out

*out和response输出机制

pageContext

*第一:域对象,这个域对象只能在jsp里面使用

*第二:向其他域对象里面设置值

*第三:获取其他的八个内置对象

(7)jsp的动作标签

(代码位置:/day10/WebRoot/jsp)

*语法: <jsp:标签名称属性="属性值"></jsp:标签名称>

*在jsp里面可以实现的一些功能

*在jsp里面有六个动作标签

第一类:与javabean没有关系的动作标签(有三个)

**<jsp:forward></<jsp:forward>:实现在jsp里面转发的操作(注意路径不能有项目          名)

***<jsp:forward   page="/jsp/hello.jsp" ></jsp:forward>

***类似于servlet里面执行request.getRequestDispatcher(...).forward(....);

** <jsp:include></jsp:include>: 表示包含页面(动态包含)

***有多个jsp,多个jsp会编译成几个servlet?

***有多个jsp会编译成多个servlet。

=代码 <jsp:include page="head.jsp"></jsp:include>

**已经有一个include标签的jsp页面,不能再被其它的jsp页面的jsp:forward

                            jsp:include页面使用。

** <jsp:param></jsp:param>: 传递参数

***一般用在有路径的动作标签里面

***类似于get提交

****http://127.0.0.1/day10/login?id=1

=代码

<!-- 使用动作标签实现转发 -->

<!-- 类似于进行转发的操作,在地址后面添加参数hello.jsp?id11=zhangsan -->

<jsp:forwardpage="/jsp/hello.jsp">

<jsp:paramvalue="zhangsan" name="id11"></jsp:param>

</jsp:forward>

****标签中有中文提交的数据乱码。

第二类:与javabean有关系的动作标签(有三个)

**<jsp:useBean>: 表示设置要操作哪一个javabean

**<jsp:setProperty>: 向javabean里面设置值

**<jsp:getProperty>: 从javabean里面获取值

2、javabean(******)

(1)什么是javabean:就是一个java类,这个java类要遵循一定的书写规范

*书写规范

第一个规范:javabean里面需要有一个公开的没有参数的构造方法

第二个规范:javabean里面的属性私有的

第三个规范:javabean里面的属性需要通过公开的方法暴露出来(set和get方法)

(2)javabean主要的功能是用于存储数据的(封装数据)

*通过set方法向javabean里面设置值,通过get方法从javabean里面获取值

(3)如何向javabean里面封装数据

*创建一个页面,在页面里面写表单,表单提交到一个servlet里面去,在servlet里面获取表单的数据,

使用下面的三种方式把数据封装到javabean里面

*第一:使用传统方式向javabean里面封装数据

(代码位置/day10/src/cn/itheima/servlet/Bean1Servlet.java)

=代码

//创建Person的对象

Personp = new Person();

//使用Person里面set方法设置值

p.setUsername(username);

p.setAge(age);

System.out.println(p.toString());

*第二:使用jsp的动作标签向javabean里面设置值

(代码位置/day10/WebRoot/javabean/bean02.jsp)

*     ** <jsp:useBean>: 表示设置要操作哪一个javabean

**<jsp:setProperty>: 向javabean里面设置值

**简写方式: <jsp:setProperty property="*"name="p1"></jsp:setProperty>

**要求:表单输入项的name的值必须要和javabean里面的属性名称一样

**<jsp:getProperty>: 从javabean里面获取值

**使用这个标签时候,没有* 的效果,只能一个一个去取值

**当在jsp里面写<jsp:useBean id="p1" class="cn.itheima.bean.Person"scope="page"></jsp:useBean>

生成下面的代码:

cn.itheima.bean.Person p1 = null;

p1 = (cn.itheima.bean.Person)_jspx_page_context.getAttribute("p1",

javax.servlet.jsp.PageContext.PAGE_SCOPE);

if (p1 == null){

p1= new cn.itheima.bean.Person();

_jspx_page_context.setAttribute("p1",p1, javax.servlet.jsp.PageContext.PAGE_SCOPE);

}

=代码

<jsp:useBean id="p1"  class="cn.itheima.bean.Person"scope="page"></jsp:useBean>

<%--     <jsp:setPropertyproperty="username" name="p1"></jsp:setProperty>

<jsp:setPropertyproperty="age" name="p1"></jsp:setProperty>--%>

<!-- 简写方式向javabean里面设置值

要求:表单输入项的name的值必须要和javabean里面的属性的名称要一样

-->

<jsp:setProperty property="*"name="p1"></jsp:setProperty>

<jsp:getPropertyproperty="username" name="p1"></jsp:getProperty>

<jsp:getPropertyproperty="age" name="p1"></jsp:getProperty>

*第三:小型的框架BeanUtils,通过这个框架向javabean里面设置值

(代码位置/day10/src/cn/itheima/servlet/Bean2Servlet.java)

*要求:表单输入项的name的值必须要和javabean里面的属性的名称一致

*如果使用jsp动作标签只能在jsp里面使用,不能在servlet里面使用。

如果想要在servlet实现类似的效果,需要实现一个小型的框架来实现

*使用框架 BeanUtils封装数据到javabean(类库)

**这个框架不是javaee的一部分,如果想要使用首先导入jar包,beanutils需要两个jar包

*beanutils是Apache组织开发框架,用于封装数据到javabean

*使用类org.apache.commons.beanutils包里面的类 BeanUtils

*框架里面使用的方法 populate(Object bean, Map properties) ,

**通过这个方法完成数据封装到javabean

**这个方法里面传递两个参数:

***第一个参数是要封装的javabean对象

***第二个参数是map集合,使用getParameterMap的map值,这个map值的结果是key是表单输入项name的值,

value是输入的值

*如何向web项目中导入jar包

**导入方式:复制jar包,复制到web项目里面的一个文件夹 WEB-INF/lib 下面就可以了

=代码

//创建javabean对象

Personperson = new Person();

try{

BeanUtils.populate(person,request.getParameterMap());

}catch (Exception e) {

e.printStackTrace();

}

3el表达式

(1)el表达式用于获取域对象里面的值

*语法: ${域对象值的名称}

(2)el表达式如何获得域对象值

(代码/day10/WebRoot/el/el01.jsp)

*首先创建jsp页面,在jsp里面分别向四个域对象里面设置值

*使用el表达式获取四个域对象里面的值

=代码一:

<%

application.setAttribute("app","appvalue");

session.setAttribute("sess","sessvalue");

request.setAttribute("req","reqvalue");

pageContext.setAttribute("page","pageValue");

%>

<!-- 使用el表达式获取 -->

${app }

${sess }

${req }

${page }

* 向四个域对象里面设置值,名称都相同

** 获取四个域对象里面相同名称的值,在el表达式里面加上一个scope

= 代码二:

<%

application.setAttribute("itheima","appvalue1");

session.setAttribute("itheima","sessvalue1");

request.setAttribute("itheima","reqvalue1");

pageContext.setAttribute("itheima","pageValue1");

%>

<!-- 获取四个域对象里面名称相同的值-->

<!-- 获取pageContext域里面的值 -->

${pageScope.itheima }

<!-- 获取request域里面的值 -->

${requestScope.itheima }

<!-- 获取session域里面的值 -->

${sessionScope.itheima }

<!-- 获取servletcontext域里面的值 -->

${applicationScope.itheima }

(3)el表达式如何获取域对象里面的数组、集合、对象的值

*向域对象里面放数组,如何取值?

**数组的下标开始位置是0,

**使用el表达式获取下标不存在,返回空字符串""

(代码/day10/WebRoot/el/el02.jsp)

=代码

<!-- 向域对象放数组,取值的方法 -->

<%

String[]arr = {"lucy","jack","mary"};

//把数组放到域对象里面

request.setAttribute("arr",arr);

%>

<!-- 使用el表达式获取域对象里面的数组的值

也是通过数组的下标取值

-->

${arr[10] }

*向域对象里面放list集合

(代码/day10/WebRoot/el/el02.jsp)

**使用下标获取,使用el表达式获取下标不存在,返回空字符串""

**使用el表达式不能获取set集合里面的值,set集合无序的

=代码

<%

List<String>list = new ArrayList<String>();

list.add("AAAA");

list.add("BBBB");

list.add("CCCC");

//把list集合放到域对象里面

request.setAttribute("list",list);

%>

<!-- 使用el表达式获取域对象里面的list集合的值

也是使用下标获取

-->

${list[20] }

* list和set的区别

*向域对象里面放map集合

(代码/day10/WebRoot/el/el02.jsp)

*使用域对象名称.key的名称,得到value值

=代码

<%

Map<String,String>map = new HashMap<String,String>();

map.put("NAME","ZHANGSAN");

map.put("AGE","100");

map.put("ADDR","TIANJIN");

//把map集合放到域对象里面

request.setAttribute("map",map);

%>

<!-- 使用el表达式获取域对象里面的map值 -->

${map.NAME }

${map.AGE}

${map.ADDR }

*获取域对象里面的对象的属性的值

(代码/day10/WebRoot/el/el03.jsp)

**使用域对象名称.属性的名称

=代码

<%

Personp1 = new Person();

p1.setUsername("WAGNWU");

p1.setAge("200");

//把p1放到域对象里面

request.setAttribute("person",p1);

%>

<!-- 使用el表达式获取person对象里面的属性的值-->

${person.username }

${person.age }

========================================================

今天内容的总结

(1)掌握jsp里面如何嵌入java代码

(2)掌握jsp里面三个指令

*page、include、taglib(和jstl标签库使用,替代页面中的<%%>)

(3)掌握jsp里面九个内置对象

*九个内置对象是什么,九个内置对象做什么事情

*out对象:out输出机制

*pageContext对象

=域对象

=向其他的域对象里面设置值

=获取其他的八个内置对象

(4)掌握四个域对象的范围

*application、session、request、pageContext

(5)掌握jsp里面的六个动作标签

*第一类:与javabean无关的标签(会用)

*第二类:与javabean有关的标签有三个(******)

=<jsp:useBean>

=<jsp:setProperty>

=<jsp:getProperty>

(6)掌握javabean

*什么是javabean(遵循的规范)

*javabean作用:封装数据

*如何向javabean里面封装数据(三种)(****)

**如果使用beanutils框架首先导入jar包

**如果向web项目中导入jar包

(7)el表达式

*el表达式获取域对象里面的值(全写的方式)

*el表达式获取域对象里面的数组、list、map、对象里面的属性的值的操作

===================================================

完成任务:

(1)背下来jsp三个指令,九个内置对象,六个动作标签,四个域对象

(2)把封装数据到javabean代码至少写一遍

(3)把使用el表达式获取域对象里面值,和对象里面的数组、list、map、对象里面的属性的值的代码至少写一遍

</pre>

时间: 2024-08-28 06:45:05

【黑马程序员】第10课:JSP+EL表达式+JavaBean的相关文章

应试教育之后,我在黑马程序员找到突破口

正在上高三的弟弟前几天打电话告诉我说"姐姐,我们现在晚自习要上到晚上十一点,今年6月的高考把班级每个学生都弄得人心惶惶--"我突然想起自己当年的高考来-- 高考,于我而言已经是六年前的事情了.但每每提及高考,我仍然会从心底升起一层压力,偶尔在工作或生活中遇到难题,晚上做梦都会梦到自己坐在考场里答题的场景,由此可见高考成了我挥之不去的梦魇.再加之最近应试教育的负面新闻频出,我在搜索引擎中键入"应试教育"四个字,出现的新闻都是:"应试教育还在消磨孩子的个性&q

【黑马程序员】第12课:文件上传&文件下载&注解

<pre> day12 上节内容回顾 1.jstl的标签 *if  choose *forEach <c:forEachvar="l" items="${list}"> 2.jsp开发模式 *模型一 *模型二(mvc模式) **mvc模式 ***m:模型,使用javabean ***v:视图,使用jsp ***c:控制器,使用servlet *dao模式:数据访问对象,专注于对数据库的操作 **首先创建接口,在接口里面定义操作数据库的方法 *

黑马程序员:Android N与iOS 10的明争暗斗

在上个月召开的I/O大会上Google透露了关于Android N的诸多新功能,黑马程序员当时对Google在Android系统新特性和新功能进行了较为全面的跟踪介绍.时隔1个月,在刚刚结束的WWDC大会上,苹果推出了iOS 10.对比这两个历来明争暗斗的系统,不少媒体称:Google和苹果抄袭与沿用特性对方的行为更进一步.与此同时,面对两大系统的重磅升级,黑马程序员研发出了最新的课程,并将课程升级到最新版. 透过Android与iOS学院讲师的“比拼与厮杀”,今天就来对比一下新的iOS 10与

黑马程序员_毕向东_Java基础视频教程_Java基础学习知识点总结

黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日  day01 一.基础知识:软件开发 1.什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合. 2.常见的软件:系统软件:如:DOS,Windows,Linux等.应用软件:如:扫雷,迅雷,QQ等. 3.什么是开发?制作软件. 二.基础知识:人机交互方式 4.软件的出现实现了人与计算机之间的更好的交互. 5.交互方式:图形化界面:这种方式简单直观,使用者易于接受,容易上手操作.命令行方式:

黑马程序员____第一阶段Java开发前奏(1)

  黑马程序员____第一阶段Java开发前奏(1) ⒈软件开发:        软件是由一系列按照特定顺序组织的计算机数据和指令的集合,软件开发就是制作软件.软件的出现实现了人与计算机之间的交互.    ⒉人机交互方式:        图形化界面和命令行方式,图形化界面简单直观,使用者易于接受,容易上手操作.命令行方式需要有一个控制台,输入特定的指          令,让计算机完成一些操作,较为麻烦,需要记住一些命令.    3.常用的DOS命令:     dir:列出当前目录下的文件以及文

【黑马程序员】重新开始

因自学能力较差.自制力不强等原因,还有半年多就毕业找工作了实在不能让自己淡定下来. 7月初,决定报名参加了辅导班.刚开始想直接上就业班,结果基础测试不过关,很很的打击了我,决定从基础班开始学,重新开始系统性的学Java SE,学完后再上Android就业班. 开始报名参加黑马程序员--深圳双元课堂9期(0714)基础班.因为是校招,所以也要参加入学基础测试,就是视频前5天的视频内容. 写完自荐信,并获得分数的当天,就预约了入学电话面试及入学基础测试,这两项顺利通过.准备开班. 7.14开班了,一

黑马程序员-入学笔试题

笔试结束,列一下笔试题和我的解答,最后得分29.7. 1. 编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value. package com.itheima; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.TreeMap; public class Test1 { public static void m

黑马程序员——网络编程篇

------- android培训.java培训.期待与您交流! ---------- 概述   1.网络模型        (1).OSI参考模型        (2).TCP/IP参考模型   2.网络通讯要素         (1).IP地址        (2).端口号         (3).传输协议    3.过程        1,找到对方IP. 2,数据要发送到对方指定的应用程序上.为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识. 为了方便称呼这个数据,叫做端口(逻

黑马程序员------IO(五)

黑马程序员------IO(五) 1.1  操作对象(示例1)ObjectInputStream与ObjectOutputStream 被操作的对象需要实现Serializable. Serializable:用于给被序列化的类加入ID号,用于判断类和对象是否是同一个版本 类通过实现java.io.Serializable接口以启用序列化功能,Serializable只是一个标记接口. 1 示例1: 2 import java.io.*; 3 4 class ObjectStreamDemo 5