<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>JDBC on 庞玉栋个人博客</title><link>https://pangyd.com/tags/jdbc/</link><description>Recent content in JDBC on 庞玉栋个人博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 21 Sep 2018 08:29:22 +0800</lastBuildDate><atom:link href="https://pangyd.com/tags/jdbc/index.xml" rel="self" type="application/rss+xml"/><item><title>训练操作说明</title><link>https://pangyd.com/post/208/</link><pubDate>Thu, 20 Sep 2018 08:28:51 +0800</pubDate><guid>https://pangyd.com/post/208/</guid><description>&lt;p>任务一:以下按顺序启动:&lt;/p>&lt;p>&lt;span>	&lt;/span>zkServer.sh start(三台同时启动);&lt;/p>&lt;p>&lt;span>	&lt;/span>start-dfs.sh （lky01）&lt;/p>&lt;p>&lt;span>	&lt;/span>start-yarn.sh (lky02)&lt;/p>&lt;p>&lt;span>	&lt;/span>yarn-daemon.sh start resourcemanager (lky03)&lt;/p>&lt;p>&lt;span>	&lt;/span>start-spark-all.sh (lky01)&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>任务二:数据采集:&lt;/p>&lt;p>&lt;span>	&lt;/span>在sqoop的bin目录下执行:sqoop import --connect jdbc:mysql://192.168.0.200:3306/retail --username root--password 123456 --table consume_notes --hive-import --create-hive-table -m 1&amp;nbsp; &lt;span>		&lt;/span>(导入成功后，请在hive里删除导入的数据表,以免下次导入出现报错,如出现报错请删除错误日志里面提示的缓存目录:hadoop dfs rm -r [日志错误表位置]).&lt;/p>&lt;p>&lt;span>	&lt;/span>数据预处理&lt;/p>&lt;p>&lt;span>	&lt;/span>在intelij项目里面修改数据库的地址为192.168.0.200,然后打包上传到服务器,在opt/jars/spark/目录下执行./spark-submit.sh [执行类的地址（在intelij拷贝）] 执行完毕后,查看数据库中是否有数&lt;span>		&lt;/span>据 (将执行完毕后出现的数据表进行删除,以免影响下一个人使用).&lt;/p>&lt;p>&lt;span>	&lt;/span>数据挖掘（零售）&lt;/p>&lt;p>&lt;span>	&lt;/span>按照项目代码 创建输入目录,执行项目,在输出文件夹中查看是否有数据.&lt;/p>&lt;p>&lt;span>	&lt;/span>数据挖掘（建筑）&lt;/p>&lt;p>&lt;span>	&lt;/span>在lky01上执行 nc -lk 44445 在本机项目中查看项目配置的ip和端口是否和服务器端配置的一样,确保在同一端口,在JDBC配置的类中修改好输出数据的数据库地址,然后启动本地项目,在服务器界面输入数据，然后查看数据库中是否有刚才输入的数据.&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>任务三:数据可视化:&lt;/p>&lt;p>&lt;span>	&lt;/span>数据源配置:新建数据源;选择jdbc数据源,配置好jdbc的地址,然后保存 (配置数据源的地址为192.168.0.202).&lt;/p>&lt;p>&lt;span>	&lt;/span>数据集配置:新建数据集,按照题目给出的数据查询语句,粘贴到目标框,然后点击读取数据,无误后保存.&lt;/p>&lt;p>&lt;span>	&lt;/span>图表设计:根据题目给出的图表内容 设计图表.&lt;/p></description></item><item><title>Java知识点归纳-J2EE 、 Web 部分</title><link>https://pangyd.com/post/129-java-j2ee-web/</link><pubDate>Mon, 09 Oct 2017 22:07:37 +0800</pubDate><guid>https://pangyd.com/post/129-java-j2ee-web/</guid><description>&lt;p>J2EE（Java2 Enterprise Edition） 刚出现时一般会用于开发企业内部的应用系统，特别是web应用，所以渐渐，有些人就会把J2EE和web模式画上了等号。但是其实 J2EE 里面并不仅仅是web，可以看到很多其中的规范都是通用的，目的是为了高效开发出健壮的服务企业业务模式的应用系统。J2EE中也是可以没有web界面的应用，而现在面向大众用户开发的网站往往也会使用到很多的J2EE的技术，所以J2EE和web开发的概念都是融合在了一起了。&lt;/p>&lt;p>笔者在JAVA开发刚入行的时候，也是做了不少web相关的项目，之后渐渐地web使用比较少了，现在web开发的技术日新月异，不过一些基础知识还是类似，所以也把这部分内容稍作整理，以期望可以给大家一些经验。&lt;/p>&lt;p>这次主要涉及到的两大块内容: Web相关的， J2EE相关的技术&lt;/p>&lt;p>Web部分:&lt;/p>&lt;p>脱离开各种语言，纯粹和 web相关的就是这些: HTML，CSS，JavaScript。哪怕你不用Java开发，用C#、PHP或者Python，这些内容都是通用，这里主要偏重一些基础知识。&lt;/p>&lt;p>HTTP协议，HTTPS协议&lt;/p>&lt;p>我觉得做Web开发，HTTP是基础中的基础。在一开始的时候，开发者可能对于这个内容了解不是非常深入，只是有个初步的概念，这个没有问题，可以先从了解，简单使用开始。 不过一旦有了一些web开发经验之后，你就需要把这块内容深入理解吃透。只知道简单概念，没有深入了解，可能并不会影响你开始上手做web开发，但是一旦涉及到一些性能调优、系统架构等工作，就需要你对HTTP有一个深入的了解，才能把工作做好。&lt;/p>&lt;p>对于HTTP请求， 我主要会关注以下内容:&lt;/p>&lt;p>&amp;nbsp;HTTP请求的模式: request/response&lt;/p>&lt;p>HTTP请求的方法：GET， POST， PUT，DELETE 等等&lt;/p>&lt;p>协议的具体格式: head + body&lt;/p>&lt;p>协议的各类返回码:1XX，2XX，3XX，4XX，5XX&lt;/p>&lt;p>Header中一些主要属性的含义和使用场景&lt;/p>&lt;p>HTTPS协议&lt;/p>&lt;p>Cookie的基本原理和使用场景&lt;/p>&lt;p>HTML， CSS&lt;/p>&lt;p>这是WEB开发的一个基础，如果公司有专门的前端开发人员，可能你就不需要做这块相关的内容。可能只需要准备一些服务，可以提供一些数据就行。不过要是公司没有专门的前端人员，那就需要你自己写简单的页面和简单的布局了。这种情况下，还是对HTML和CSS必须有个简单的了解才行。&lt;/p>&lt;p>HTML简单了解的话需要知道页面的结构，具体各个表单，标签的使用方法，CSS需要知道一些基本的选择器的编写和使用。但这也只能满足一些简单页面的要求。如果有更加复杂页面的开发需求，那对CSS+DIV的使用需要有更加深入的了解了，具体内容因为自己对这方面涉及不多，也不多说了，大家可以再找其他的参考资料。&lt;/p>&lt;p>JavaScript：&lt;/p>&lt;p>前端开发的语言，唯一的语言，就是JS。并且从中衍生出一个很优秀的框架jQuery。现在前端基本上只要有一点复杂度的，都会使用这两种技术。并且以jquery为基础，还有一些其他前台框架，提供了各种动态效果，还有表格，表单等一些常用的处理。近两年，AngularJS框架又开始火热起来，这个框架在前端实现了MVC的架构，给前端的开发带来了革命性的影响(但是不意味着所有的前端开发都应该要用这个)。这些都是很值得好好看一下。即便不是专攻前端开发的，但是对于这几个技术点，能够先了解一下基本情况，基本的原理，对于web开发来说，还是大有好处的。&lt;/p>&lt;p>Webservice&lt;/p>&lt;p>在现在的企业应用开发中，Webservice已经是个必备的工具了。在各个企业中，经过一段时间积累，会有很多不同种类的应用，这些应用可能都会使用不同的语言开发，并且需要相互之间的通讯。通讯的首选就是Webservice。前后台的交互，服务之间的交互，或者不同语言之间的交互，都可以使用Webservice这个技术。&lt;/p>&lt;p>Webservice的实现方式多种多样，两者共同点是大家都是以HTTP协议为基础的，都可以跨域，跨语言进行访问。&lt;/p>&lt;p>用的比较多的，一个是SOAP协议的方式。这是比较传统的webservice 的实现，这个协议比较重量级，发布者会将webservice以wsdl形式发布，调用者通过wsdl可以直接生成实体类等。对于调用者来说，“调用”这个步骤会更容易处理一些。不过SOAP形式也存在着消息量大，传输效率低等缺陷。SOAP协议本身的可选项比较多，比较复杂，各个属性设置略有差异会导致服务通讯的失败，需要在调试中需要花费更多的时间。&lt;/p>&lt;p>现在更加流行的是使用RESTFUL的Webservice。这种技术是简化了URL，或者说对URL做了一定格式的限定，同时配合上HTTP的各种method，包括有GET，POST，DELTE，PUT 等，来实现整体service的各种功能。一般传输的内容都是json格式的字符串。Restful的Webservice的优点在于这是一种更加轻量级的使用方式，传输效率更高，接口约定更加清晰，双方调试也会更加便利一些。缺点在于，json格式太灵活，所以双方都需要自行处理json中的各个参数。对于接口实体类的处理需要更多的逻辑和代码。&lt;/p>&lt;p>J2EE部分&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>JDBC(可以在J2SE中使用)&lt;/p>&lt;p>JDBC用于java和数据库交互。它是Java面向接口编程的一个典型实例：开发者使用JDBC的API进行开发，但是底层可以针对不同的数据库使用不同的JDBC驱动(由各个数据库供应商提供)。JDBC被归为了J2EE的规范中，但是在一般的java程序中也可以使用，而且也是几乎都会被直接或者间接使用（除非不用数据库）。这从侧面也说明了，其实J2EE企业开发和web开发并不是同一个概念，而是相互融合的。&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>JDBC是Java中最原始，最纯粹，效率最高的访问数据库的方式，我们熟知的hibernate、 Mybatis等ORM框架都是在JDBC基础上做的封装。了解JDBC对于以后和数据库更好打交道会有着很大的用处。哪怕是一个java开发新手，你需要去学习Hibernate、Mybatis等框架，你也需要先学习JDBC作为这些的基础。&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>对于JDBC的具体怎么实现，这个真不需要了解到那么深入。我推荐大家学习JDBC至少需要掌握以下内容：&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>1.JDBC的原理: JDBC为接口，可以有不同的驱动driver类&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>2.JDBC中的一些基本概念: connection， statement， resultset 等&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>3.JDBC使用的基本流程&lt;/p>&lt;p>&lt;br>&lt;/p></description></item><item><title>Java My SQL 数据库 用法操作代码</title><link>https://pangyd.com/post/74-java-my-sql/</link><pubDate>Tue, 22 Aug 2017 14:09:56 +0800</pubDate><guid>https://pangyd.com/post/74-java-my-sql/</guid><description>&lt;p>&lt;span>各数据库连接代码&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;//Oracle8/8i/9i&lt;/span>&lt;span>数据库&lt;/span>&lt;span>(thin&lt;/span>&lt;span>模式&lt;/span>&lt;span>)&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;url="jdbc:&lt;a href="https://lib.csdn.net/base/oracle" class="replace_word" title="Oracle知识库" target="_blank">oracle&lt;/a>:thin:@localhost:1521:orcl";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;user="scott";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;password="tiger";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;Connection&amp;nbsp;conn=DriverManager.getConnection(url,user,password);&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;//Sql&amp;nbsp;Server7.0/2000/2005/2008&lt;/span>&lt;span>数据库&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;user="sa";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;password="";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;Connection&amp;nbsp;conn=DriverManager.getConnection(url,user,password);&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;//DB2&lt;/span>&lt;span>数据库&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;url="jdbc:db2://localhost:5000/sample";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;user="amdin"&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;String&amp;nbsp;password=-"";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;Connection&amp;nbsp;conn=DriverManager.getConnection(url,user,password);&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&amp;nbsp;&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>//MySQL&lt;/span>&lt;span>数据库&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>String&amp;nbsp;url="jdbc:mysql://localhost:3306/testDB?user=root&amp;amp;password=root&amp;amp;useUnicode=true&amp;amp;characterEncoding=gb2312";&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>Connection&amp;nbsp;conn=DriverManager.getConnection(url);&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p>一下是进行增删改查的mysql代码&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>增：insert into user//表名(***//表头) values(****//增加的数据)";&lt;/p>&lt;p>改：update user//表名 set userName//表头 ='"+field2+"//修改的数据',passwork='"+field3+"',teacherID="+Integer.parseInt(field4)+" where userID="+Integer.parseInt(field1);&lt;/p>&lt;p>删：delete from user where userID="+Integer.parseInt(field1//字符串类型的要先转换成整型的);&lt;/p>&lt;p>查：select * from userID//查询表中的某个表头 order by User//&lt;a target="_self" href="https://github.com/As-before">表名&lt;/a>&lt;/p></description></item><item><title>JDBC数据库连接代码</title><link>https://pangyd.com/post/32-jdbc/</link><pubDate>Sat, 05 Aug 2017 17:02:45 +0800</pubDate><guid>https://pangyd.com/post/32-jdbc/</guid><description>&lt;p>&lt;/p>&lt;pre lay-lang="Java" class="layui-code" skin="notepad">package com.jnzyjsxy.common;
&lt;p>import java.sql.DriverManager;&lt;/p>
&lt;p>import java.sql.ResultSet;&lt;/p>
&lt;p>import com.mysql.jdbc.Connection;&lt;/p>
&lt;p>import com.mysql.jdbc.Statement;&lt;/p>
&lt;p>/*&lt;/p>
&lt;ul>
&lt;li>数据库连接类&lt;/li>
&lt;/ul>
&lt;p>*/&lt;/p>
&lt;p>public class Database {&lt;/p>
&lt;p>//创建成员变量用于存储数据库连接的字符串或结果&lt;/p>
&lt;p>//statement接口 用于执行静态sql语句 并返回它所生成的结果&lt;/p>
&lt;p>private Statement stmt=null;&lt;/p>
&lt;p>//结果集类&lt;/p>
&lt;p>ResultSet rs=null;&lt;/p>
&lt;p>//链接类&lt;/p>
&lt;p>private Connection conn=null;&lt;/p>
&lt;p>String sql;//存储sql语句&lt;/p>
&lt;p>//mysql数据连接字符串&lt;/p>
&lt;p>//&amp;ldquo;jdbc:mysql://localhost:3306/db_hrms&amp;rdquo;&lt;/p>
&lt;p>//数据库名称db_hrms&lt;/p>
&lt;p>//在数据库名称后，增加&amp;quot;?characterEncoding=GBK&amp;quot;，避免插入记录为乱码&lt;/p>
&lt;p>String strurl=&amp;ldquo;jdbc:mysql://localhost:3306/db_hrms?characterEncoding=GBK&amp;rdquo;;//主机地址&lt;/p>
&lt;p>String username=&amp;ldquo;root&amp;rdquo;;//用户名&lt;/p>
&lt;p>String password=&amp;ldquo;123456&amp;rdquo;;//密码&lt;/p>
&lt;p>//构造方法&lt;/p>
&lt;p>public Database(){&lt;/p>
&lt;p>}&lt;/p>
&lt;p>/*&lt;/p>
&lt;ul>
&lt;li>打开数据库连接&lt;/li>
&lt;/ul>
&lt;p>*/&lt;/p>
&lt;p>public void openConn() {&lt;/p>
&lt;p>try {&lt;/p>
&lt;p>Class.forName(&amp;ldquo;com.mysql.jdbc.Driver&amp;rdquo;);&lt;/p>
&lt;p>//DriverManager.getConnection启动器管理类的连接方法&lt;/p>
&lt;p>//创建数据库连接对象三个参数 初始化conn&lt;/p>
&lt;p>conn=(Connection) DriverManager.getConnection(strurl, username, password);&lt;/p>
&lt;p>System.out.println(&amp;ldquo;数据库连接成功&amp;rdquo;);&lt;/p>
&lt;p>} catch (Exception e) {&lt;/p>
&lt;p>// TODO: handle exception&lt;/p></description></item><item><title>关于Class.forName(“com.mysql.jdbc.Driver”)</title><link>https://pangyd.com/post/30-class-forname-com-mysql-jdbc-driver/</link><pubDate>Thu, 03 Aug 2017 17:14:46 +0800</pubDate><guid>https://pangyd.com/post/30-class-forname-com-mysql-jdbc-driver/</guid><description>&lt;p>传统的使用jdbc来访问数据库的流程为：&lt;br> Class.forName(“com.mysql.jdbc.Driver”);&lt;br> String url = “jdbc:mysql://localhost:3306/test?user=root&amp;amp;password=123456″;&lt;br> Connection con = DriverManager.getConnection(url);&lt;br> Statement statement = con.createStatement();&lt;/p>&lt;p>最开始使用的时候，不明白为什么首先要加载一个驱动类，之后就可以取得了Connection了，很好奇DriverManager是怎么获得那个驱动类的信息，后来看了下com.mysql.jdbc.Driver这个类的源代码，豁然开朗了。原来在com.mysql.jdbc.Driver类中有这么一段静态初始化代码：&lt;br> static {&lt;br> try {&lt;br> java.sql.DriverManager.registerDriver(new Driver());&lt;br> } catch (SQLException E) {&lt;br> throw new RuntimeException(“Can’t register driver!”);&lt;br> }&lt;br> }&lt;br> 也就是，在Class.forName加载完驱动类，开始执行静态初始化代码时，会自动新建一个Driver的对象，并调用DriverManager.registerDriver把自己注册到DriverManager中去。&lt;br>&lt;br>&lt;strong>ps1:&lt;/strong> Class.forName(String) 与ClassLoader.loadClass(String)的区别&lt;br> Class.forName(String): 加载类，并且执行类初始化；可以通过Class.forName(String, boolean, ClassLoader)第二个参数来仅仅加载类不执行初始化；&lt;br> ClassLoader.loadClass(String): 仅仅加载类，不执行类初始化；&lt;/p>&lt;p>&lt;strong>ps2:&lt;/strong> 有时会看到这种用法：&lt;br> Class.forName(“com.mysql.jdbc.Driver”).newInstance();&lt;br> 这是没有必要的，正如前述，静态初始化已经new了一个Driver的对象，注册到DriverManager中去，在此再建立一个Driver对象则是完全没有必要的，浪费空间。&lt;/p>&lt;p>&lt;strong>ps3:&lt;/strong> 结合ps1，Class.forName(“com.mysql.jdbc.Driver”);相当于：&lt;br> ClassLoader loader = Thread.currentThread().getContextClassLoader();&lt;br> Class cls = loader.loadClass(“com.mysql.jdbc.Driver”);&lt;br> cls.newInstance();&lt;br> 这种方法的问题同ps2, 浪费了一个Driver对象；&lt;/p>&lt;p>&lt;strong>ps4:&lt;/strong> 在java 6中，引入了service provider的概念，即可以在配置文件中配置service（可能是一个interface或者abstract class）的provider（即service的实现类）。配置路径是：/META-INF/services/下面。详细信息见：https://docs.oracle.com/javase/6/docs/technotes/guides/jar/jar.html#Service%20Provider&lt;br> 而java.sql.DriverManager也添加了对此的支持，因此，在JDK6中，DriverManager的查找Driver的范围为：&lt;br> 1）system property “jdbc.drivers” 中配置的Driver值；&lt;br> 2）用户调用Class.forName()注册的Driver&lt;br> 3）service provider配置文件java.sql.Driver中配置的Driver值。&lt;br> 因此，在jdk6中，其实是可以不用调用Class.forName来加载mysql驱动的，因为mysql的驱动程序jar包中已经包含了java.sql.Driver配置文件，并在文件中添加了com.mysql.jdbc.Driver.但在JDK6之前版本，还是要调用这个方法。&lt;/p></description></item><item><title>转载自【Java编程精选】给Java新手的一些建议----Java知识点归纳(J2EE and Web 部分)</title><link>https://pangyd.com/post/24-javajava-java-j2ee-and-web/</link><pubDate>Mon, 31 Jul 2017 15:33:12 +0800</pubDate><guid>https://pangyd.com/post/24-javajava-java-j2ee-and-web/</guid><description>&lt;p>&lt;span>J2EE（Java2 Enterprise Edition） 刚出现时一般会用于开发企业内部的应用系统，特别是web应用，所以渐渐，有些人就会把J2EE和web模式画上了等号。但是其实 J2EE 里面并不仅仅是web，可以看到很多其中的规范都是通用的，目的是为了高效开发出健壮的服务企业业务模式的应用系统。J2EE中也是可以没有web界面的应用，而现在面向大众用户开发的网站往往也会使用到很多的J2EE的技术，所以J2EE和web开发的概念都是融合在了一起了。&lt;/span>&lt;br>&lt;/p>&lt;p>　　我本人在JAVA开发刚入行的时候，也是做了不少web相关的项目，之后渐渐地web使用比较少了，现在web开发的技术日新月异，不过一些基础知识还是类似，所以也把这部分内容稍作整理，以期望可以给大家一些经验。&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>&lt;span>这次主要涉及到的两大块内容: Web相关的， J2EE相关的技术&lt;/span>&lt;/p>&lt;p>&amp;nbsp;&lt;/p>&lt;p>&lt;span>Web部分:&lt;/span>&lt;/p>&lt;p>　　脱离开各种语言，纯粹和 web相关的就是这些: HTML，CSS，JavaScript。哪怕你不用Java开发，用C#、PHP或者Python，这些内容都是通用，这里主要偏重一些基础知识。&lt;/p>&lt;ul class="list-paddingleft-2">&lt;li>&lt;p>&lt;strong>HTTP协议，HTTPS协议&lt;/strong>&lt;/p>&lt;/li>&lt;/ul>&lt;p>　　我觉得做Web开发，HTTP是基础中的基础。在一开始的时候，开发者可能对于这个内容了解不是非常深入，只是有个初步的概念，这个没有问题，可以先从了解，简单使用开始。 不过一旦有了一些web开发经验之后，你就需要把这块内容深入理解吃透。只知道简单概念，没有深入了解，可能并不会影响你开始上手做web开发，但是一旦涉及到一些性能调优、系统架构等工作，就需要你对HTTP有一个深入的了解，才能把工作做好。&lt;/p>&lt;p>　　对于HTTP请求， 我主要会关注以下内容:&lt;/p>&lt;p>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTTP请求的模式: request/response&lt;/p>&lt;p>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTTP请求的方法：GET， POST， PUT，DELETE 等等&lt;/p>&lt;p>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 协议的具体格式: head + body&lt;/p>&lt;p>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 协议的各类返回码:1XX，2XX，3XX，4XX，5XX&lt;/p>&lt;p>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Header中一些主要属性的含义和使用场景&lt;/p>&lt;p>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTTPS协议&lt;/p>&lt;p>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cookie的基本原理和使用场景&lt;/p>&lt;p>&amp;nbsp;&lt;/p>&lt;ul class="list-paddingleft-2">&lt;li>&lt;p>&lt;strong>HTML， CSS&lt;/strong>&lt;/p>&lt;/li>&lt;/ul>&lt;p>　　这是WEB开发的一个基础，如果公司有专门的前端开发人员，可能你就不需要做这块相关的内容。可能只需要准备一些服务，可以提供一些数据就行。不过要是公司没有专门的前端人员，那就需要你自己写简单的页面和简单的布局了。这种情况下，还是对HTML和CSS必须有个简单的了解才行。&lt;/p>&lt;p>　　HTML简单了解的话需要知道页面的结构，具体各个表单，标签的使用方法，CSS需要知道一些基本的选择器的编写和使用。但这也只能满足一些简单页面的要求。如果有更加复杂页面的开发需求，那对CSS+DIV的使用需要有更加深入的了解了，具体内容因为自己对这方面涉及不多，也不多说了，大家可以再找其他的参考资料。&lt;/p>&lt;p>&amp;nbsp;&lt;/p>&lt;ul class="list-paddingleft-2">&lt;li>&lt;p>&lt;strong>JavaScript：&lt;/strong>&lt;/p>&lt;/li>&lt;/ul>&lt;p>　　前端开发的语言，唯一的语言，就是JS。并且从中衍生出一个很优秀的框架jQuery。现在前端基本上只要有一点复杂度的，都会使用这两种技术。并且以jquery为基础，还有一些其他前台框架，提供了各种动态效果，还有表格，表单等一些常用的处理。近两年，AngularJS框架又开始火热起来，这个框架在前端实现了MVC的架构，给前端的开发带来了革命性的影响(但是不意味着所有的前端开发都应该要用这个)。这些都是很值得好好看一下。即便不是专攻前端开发的，但是对于这几个技术点，能够先了解一下基本情况，基本的原理，对于web开发来说，还是大有好处的。&lt;/p>&lt;p>　　因为自己对这个涉猎也不深入，所以也就不更多罗列了，以免误人子弟了。&lt;/p>&lt;p>&amp;nbsp;&lt;/p>&lt;ul class="list-paddingleft-2">&lt;li>&lt;p>&lt;strong>Webservice&lt;/strong>&lt;/p>&lt;/li>&lt;/ul>&lt;p>　　在现在的企业应用开发中，Webservice已经是个必备的工具了。在各个企业中，经过一段时间积累，会有很多不同种类的应用，这些应用可能都会使用不同的语言开发，并且需要相互之间的通讯。通讯的首选就是Webservice。前后台的交互，服务之间的交互，或者不同语言之间的交互，都可以使用Webservice这个技术。&lt;/p>&lt;p>　　Webservice的实现方式多种多样，两者共同点是大家都是以HTTP协议为基础的，都可以跨域，跨语言进行访问。&lt;/p>&lt;p>　　用的比较多的，一个是SOAP协议的方式。这是比较传统的webservice 的实现，这个协议比较重量级，发布者会将webservice以wsdl形式发布，调用者通过wsdl可以直接生成实体类等。对于调用者来说，“调用”这个步骤会更容易处理一些。不过SOAP形式也存在着消息量大，传输效率低等缺陷。SOAP协议本身的可选项比较多，比较复杂，各个属性设置略有差异会导致服务通讯的失败，需要在调试中需要花费更多的时间。&lt;/p>&lt;p>　　现在更加流行的是使用RESTFUL的Webservice。这种技术是简化了URL，或者说对URL做了一定格式的限定，同时配合上HTTP的各种method，包括有GET，POST，DELTE，PUT 等，来实现整体service的各种功能。一般传输的内容都是json格式的字符串。Restful的Webservice的优点在于这是一种更加轻量级的使用方式，传输效率更高，接口约定更加清晰，双方调试也会更加便利一些。缺点在于，json格式太灵活，所以双方都需要自行处理json中的各个参数。对于接口实体类的处理需要更多的逻辑和代码。&lt;/p></description></item></channel></rss>