【一步一个脚印】Tomcat+MySQL为自己的APP打造服务器(2-1)Servlet的使用
最近工作上效率比较低,各种需求更改耗费了大量的时间成本(不吐槽,你懂的,已无力),高的身心俱疲。... ... 每次废话都比较多,我也是服了自己了,就当我是来凑字数的吧!不废话了,开始正题:
翻了一下上一篇文章,发现没有装开发环境,这里补上——在【一步一个脚印】Tomcat+MySQL为自己的APP打造服务器(1)服务器环境搭建中已经配好了JDK,这次直接找一个JavaEE版本的Eclipse解压到我们想安装的目录下即可,用过 Eclipse+ADT 开发 Android 的同学都知道 Eclipse 是免安装的,在 /eclipse 下直接打开 eclipse.exe 即可。
到此我们只是简单安装了一个服务器的运行环境,现在我们开始写自己的服务器程序。 不管你是学Java的,还是 Android 的,肯定都学过 Core-Java 课程,那么你肯定学过 Servlet ,或许你忘了,但这无所谓,我们重新开始。
一、Servlet简介
摘自书上的一小段解释——“Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页”。Servlet 是 sun 公司提供的一门用于开发动态 web 资源的技术。其实,"Servlet"本来是指 Java语言实现的一个接口(狭义的Servlet),但更多的也更普遍的情况是:我们把任何实现了 Servlet 接口的类都叫作 "Servlet"。Servlet 的作用主要是对 Request 的请求数据进行解析、按照业务逻辑处理并将结果封装成 Response 返回我的理解就是“读-计算-写”,像数学计算器一样,输入操作数、操作符按"等于"就显示出结果;也像人的脑神经元一样“接受刺激-信号处理-作出响应”。为了便于理解,我们来慢慢拆解:
二、Servlet在服务器中的位置
在普通用户看来,我们平时使用互联网就像下图这样:
普通用户只关心自己作为一个客户端,是和一个叫服务器的东西在进行数据交互,具体服务器在哪里、做什么、怎么实现、数据库用哪种... ...这些都不重要。
而作为开发者的我们,用户不关心的问题我们却理当视如家珍(这是我们吃饭的家伙啊)——我们将服务器部分放大,从一个入门级的服务器开发者的角度来看看服务器的构造(这里仅以 Servlet 为例):
服务器接收来自不同用户的不同的请求(当然是以该服务器作为请求目标的那些请求),分析不同的请求,控制模块将各自的请求分送至对应的 Servlet (如登陆请求,则将登陆数据送至LoginServlet),然后 Servlet 根据请求内容处理业务逻辑(如登陆请求则解析用户名密码,并和数据库中保存的用户名密码进行对比,得出是否是合法用户的结论),完成响应数据的封装返回给控制模块,控制模块再将该响应返回给对应的请求用户,这样即完成一次网络交互。
三、从小白开始使用Servlet
@WebServlet(description = "学习Servlet创建的", urlPatterns = { "/Home/FirstServlet" }, initParams = {@WebInitParam(name = "userName", value = "abc", description = "用户姓名") })
@WebServlet("/Home/PreferenceServlet")
<servlet><servlet-name>FirstServlet</servlet-name><servlet-class>servlet.FirstServlet</servlet-class><init-param><param-name>userName</param-name><param-value>abc</param-value></init-param></servlet><servlet-mapping><servlet-name>FirstServlet</servlet-name><url-pattern>/Home/FirstServlet</url-pattern></servlet-mapping>
这两种写法的功能是一样的,只是Servlet3.0之后支持注解的方式进行配置更方便、更高效而已。<servlet>标签和<servlet-mapping>标签相互对应,servlet-name 必须一致(可以有多个mapping对应一个Servlet,即多个地址对应一个目标),当一个请求到达后,服务器先在<servlet-mapping>中寻找匹配的地址,然后用对应的 servlet-name 在<servlet>标签中匹配该请求 Servlet 对应的Java类,然后将请求发送至该类;初始化参数可用 getInitParameter("parameterName") 来获取。
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.getWriter().append("\n初始化参数userName = " + getInitParameter("userName"));}
【一步一个脚印】Tomcat+MySQL为自己的APP打造服务器(2-1)Servlet的使用相关推荐
- 【一步一个脚印】Tomcat+MySQL为自己的APP打造服务器(2-2)Servlet的使用
在上一篇 [一步一个脚印]Tomcat+MySQL为自己的APP打造服务器(2-1)Servlet 的使用 中我们只是简单的对 Servlet 要做的任务.在服务器中的地位有了一个大概的了解,完成了在 ...
- 【一步一个脚印】Tomcat+MySQL为自己的APP打造服务器(1)服务器环境搭建
转载自:衷水木http://blog.csdn.net/a_running_wolf 做 Android 开发一年多了,虽然不敢说有多精通,但也相对熟悉.做久了就会发现 Android 在行外人眼中是 ...
- MySQL innosetup_jdk,tomcat,mysql,innosetup封装
jdk,tomcat,mysql,innosetup封装 jdk,tomcat,mysql,inno setup打包 引用地址: http://www.cnblogs.com/xionghui/arc ...
- kubernetes管理mysql_kubernetes云平台管理实战:tomcat + mysql(十二)
一.实验准备 1.文件结构与组成 [root@master tomcat_demo]# ls mysql-rc.yml mysql-svc.yml tomcat-rc.yml tomcat-svc.y ...
- JDK Tomcat MySQL一键安装
文章目录 材料准备 免安装版JDK 免安装版Tomcat 免安装版MySQL 微软Visual C++运行库组件 打包工具Inno Setup 统一目录 创建所需文件(先创建好清楚整体流程) 整体结构 ...
- java技术+tomcat+mysql
相信你已经看过之前的文章了,那么这一篇文章就很容易理解了.如果你的基础不太好,暂时理解不了也没关系,先保存下来,后面基础补一补在回过头来看看. Tomcat + MySQL ============= ...
- eft java_Ubuntu - Edgy Eft 下安装配置Java开发环境(JDK 6 + Eclipse WTP + Tomcat + MySQL)
安装版本信息: Ubuntu 6.10 Edgy Eft Java 1.6.0, JDK 6 Eclipse 3.2.2 WTP all-in-one 1.5.3 Tomcat 5.5.20 MySQ ...
- Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决
2019独角兽企业重金招聘Python工程师标准>>> Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决篇[zz] 关键字:Struts H ...
- Apache+php+tomcat+mysql整合手册
Apache+Php+tomcat+mysql整合手册 Apache+Php+tomcat+mysql整合手册 一. 需要的安装包 httpd-2.0.52.tar.gz jakarta-tomcat ...
最新文章
- Python3 数字(Number)
- shell脚本执行php文件_分享两个shell脚本实例--批量生成随机字符文件名和批量改名...
- 如何判断Linux load的值是否过高
- Sass学习之路(3)——Sass编译
- 360浏览器怎么收藏网页 360安全浏览器快速收藏网页方法简述
- isinstance()函数的应用
- android 组件大小,Android编程获取组件尺寸大小的方法
- 物联网时代商业模式将驱动商业策略的转变
- 基于PCA的ORL人脸库特征抽取
- js判断用户是第一次点击还是第二次点击
- Modbus协议简单总结
- 电脑如何防蹭网?使用防蹭网功能杜绝未知设备连接WiFi
- 蓝天保卫战之产品测试服务
- Linux开机启动、bashrc、定时任务
- python 分词 jieba
- seo优化:把百度放进数据库
- 【魔兽争霸3地图编辑】vJass 教程
- 6666端口,地址访问谷歌浏览器,火狐浏览器限制
- 兄弟俩畅游Tomcat城市的SpringMVC科技园区
- 独孤思维:每天半小时,收益100+,新赚钱项目