<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>servlet &#8211; ChaBug安全</title>
	<atom:link href="/tags/servlet/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>一个分享知识、结识伙伴、资源共享的博客</description>
	<lastBuildDate>Sun, 16 Dec 2018 07:45:12 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.5</generator>
	<item>
		<title>Java Web之Servlet</title>
		<link>/code/624.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Sun, 16 Dec 2018 07:45:12 +0000</pubDate>
				<category><![CDATA[编程学习]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[servlet]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">/?p=624</guid>

					<description><![CDATA[前言 两周的Java实训结束了，学了一个servlet做接口，给前端提供数据支持，记下笔记，免得以后忘了。 Java知识 标识符 关键字 变量 数据类型 运算符 控制流程 面向对象...]]></description>
										<content:encoded><![CDATA[<h2 id="前言">前言</h2>
<p>两周的Java实训结束了，学了一个<code><span class="wpcom_tag_link"><a href="/tags/servlet" title="servlet" target="_blank">servlet</a></span></code>做接口，给前端提供数据支持，记下笔记，免得以后忘了。</p>
<h2 id="java知识">Java知识</h2>
<ol>
<li>标识符 关键字</li>
<li>变量 数据类型</li>
<li>运算符</li>
<li>控制流程</li>
<li>面向对象</li>
</ol>
<p>标识符是自己能够定义的东西，关键字是系统定义好的东西。</p>
<p>变量是存放数据的容器，数据类型有基本数据类型和引用数据类型</p>
<p>基本数据类型如下：</p>
<p><img src="https://ws1.sinaimg.cn/large/006xriynly1fy8l2nfpxlj30jf05vdji.jpg" alt="基本数据类型" /></p>
<p>引用数据类型：</p>
<p>类、接口类型、数组类型、枚举类型、注解类型。</p>
<p>运算符：</p>
<p>算术、赋值、关系、逻辑、位、三目运算符</p>
<p>控制流程：</p>
<p>顺序、选择、循环</p>
<p>面向对象：</p>
<p>封装、继承、多态</p>
<h2 id="mysql回顾">MySQL回顾</h2>
<p>MySQL是一个关系型的数据库，一个MySQL可以有多个库，库中可以有多个表，表中可以有多个字段。如下图：</p>
<p><img src="https://ws1.sinaimg.cn/large/006xriynly1fy8l8sgu4mj30bo06jt8n.jpg" alt="" /></p>
<p><img src="https://ws1.sinaimg.cn/large/006xriynly1fy8l9y53ezj305z02jmx8.jpg" alt="" /></p>
<p>记录下MySQL的一些命令：</p>
<p><img src="https://ws1.sinaimg.cn/large/006xriynly1fy8lapzwvwj30f20cqdiz.jpg" alt="" /></p>
<p><img src="https://ws1.sinaimg.cn/large/006xriynly1fy8laue6hyj30e40cqdk6.jpg" alt="" /></p>
<p><img src="https://ws1.sinaimg.cn/large/006xriynly1fy8lbna4jjj30io0gk79u.jpg" alt="" /></p>
<p>那么Java怎么去链接数据库呢?</p>
<h2 id="jdbc建立数据库链接">JDBC建立数据库链接</h2>
<p><img src="https://ws1.sinaimg.cn/large/006xriynly1fy8lcoaihej30q507pacu.jpg" alt="" /></p>
<p>那么JDBC的增删改查如何进行?</p>
<p><img src="https://ws1.sinaimg.cn/large/006xriynly1fy8ld5sq6uj30e10gzwkf.jpg" alt="" /></p>
<p><img src="https://ws1.sinaimg.cn/large/006xriynly1fy8lda5adsj30kq07wtbd.jpg" alt="" /></p>
<p>在进行<code>select</code>查询的时候返回的是一个<code>ResultSet</code>结果集，其他的<code>insert</code>、<code>update</code>、<code>delete</code>语句返回的就是影响的行数（<code>int</code>）</p>
<p>在建立数据库链接之后我们来了解下tomcat这个<span class="wpcom_tag_link"><a href="/tags/web" title="web" target="_blank">web</a></span>应用服务器</p>
<h2 id="tomcat">tomcat</h2>
<p><img src="https://ws1.sinaimg.cn/large/006xriynly1fy8lg71uknj30gs0c5aa8.jpg" alt="" />其中的s1、s2就是一个一个的web应用，在我们实训中用到的就是servlet了</p>
<p>tomcat的目录结构如下图：<img src="https://ws1.sinaimg.cn/large/006xriynly1fy8lh3v77kj30kc05jjud.jpg" alt="" /></p>
<p>了解完我们服务端的tomcat之后，我们需要去了解客户端和服务端之间的通信</p>
<h2 id="客服">客服？</h2>
<p>客户端：和用户交互的那端，即PC端 服务端：和服务器、数据库等进行交互的那端，给前端提供数据支持</p>
<p>在B/S架构中 Browser就是我们的客户端 Browser/server</p>
<p>而在C/S架构 Client就是客户端 Client/server</p>
<p>那么B/S和C/S架构的区别就在于客户所使用的请求方式，举个简单的例子： 网页版的微信就是B/S架构 而手机APP的微信就是C/S架构 一个是通过浏览器发起请求，而另一个是通过APP发起请求。</p>
<p>那么我们实训中用到的就是B/S架构的方式，我们用一张图来理解：<img src="https://ws1.sinaimg.cn/large/006xriynly1fy8lm0ikynj30oq09xab5.jpg" alt="" />简单的解释下，客户端发起请求<code>request</code>，这个请求可能会有参数、cookie等，服务端接受到请求之后去处理，到数据库中拿到数据，然后返回给客户端一个<code>response</code></p>
<p>那么这就是一个简单的客户端和服务端的请求过程。 因为我们实训写的是一个接口，给前端提供数据支持，所以说我们需要了解一下json和xml</p>
<h2 id="json-or-xml">Json or Xml</h2>
<p>json是一种数据交换格式，易于人阅读，易于机器去解析拿到数据。xml类似。 那么我们来看下两种格式的结构<img src="https://ws1.sinaimg.cn/large/006xriynly1fy8lrhzm68j30a6060mxd.jpg" alt="" /><img src="https://ws1.sinaimg.cn/large/006xriynly1fy8lropd2gj309y07ajry.jpg" alt="" /></p>
<p>xml相对臃肿，而在web开发中，流量就是钱，很多人为了几K的流量头疼不已，所以我们选择更为轻量的json。 那么数据转为json的方案有很多，我们选择了谷歌的jar包<code>Gson.toJson()</code> 介绍完这些之后，我们来把所有的部分揉合到一起。</p>
<h2 id="微票">微票</h2>
<p><img src="https://ws1.sinaimg.cn/large/006xriynly1fy8lut7n44j30pm0dsmzt.jpg" alt="" />这是整个项目结构 五个<code>package</code>，其中bean、servlet、biz对应的就是web开发中常见的mvc结构的模型、视图、控制器，而dao是真正的一个数据交互层，util则是为了减少代码量，拿出来了数据库打开关闭的部分。</p>
<h2 id="豆瓣电影">豆瓣电影</h2>
<p>豆瓣电影和微票原理结构一样，区别就在于我们把数据库配置单独拿了出来写成了<code>PropertiesUtil</code>类<img src="https://ws1.sinaimg.cn/large/006xriynly1fy8lvcg2ygj30h00amgpi.jpg" alt="" /><img src="https://ws1.sinaimg.cn/large/006xriynly1fy8lvfsjnbj30gu0213z2.jpg" alt="" /></p>
<h2 id="后记">后记</h2>
<p>两周Java实训收获颇多，当然最重要的是学到了web开发的一个设计思想和设计模式。比如mvc、分层还有就是代码的解耦和。对于一个开发新人来说，算是树立了一个开发基础思想。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
