一 web开发
1.概述
Web服务器是指驻留于因特网上某种类型计算机的程序.
可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览,是一个容器,是一个连接用户与程序之间的中间件。
在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器: Apache 的Tomcat,该服务器支持全部JSP以及Servlet规范.
2.搭建环境
Tomcat官方站点:http://tomcat.apache.org
获取Tomcat安装程序包 :
tar.gz文件是Linux操作系统下的安装版本
zip文件是Windows系统下的压缩版本
安装JDK
设置新建JAVA_HOME环境变量;设置PATH环境变量;安装Tomcat;解压tomcat压缩文件
tomcat下目录
双击 bin 目录下的 startup.bat 文件
server.xml是Tomcat的主配置文件
修改服务器端口号
二 创建web项目
2.1 创建java项目,添加web功能
启动IDEA,创建一个新项目,此时这个项目是一个纯粹的JavaSE项目,我们要将它改成一个JavaEE项目:
2.2 发布web应用到服务器
自动将web应用发布到web服务器下,在开发工具(例如:IDEA)中集成tomcat,将项目部署到服务器中
三 Servlet
一Servlet概述
Servlet是Server Applet的简称,意思为用Java编写的服务器端的程序.
它运行在web服务器中,web服务器负责Servlet和客户的通信以及调用Servlet方法。
Servlet的作用:
接收用户发送的请求数据
调用其他的java程序来处理请求
根据处理结果,将结果响应给客户端
二 Servlet创建和使用
1.创建一个类继承javax.servlet.http包下的HttpServlet
因为我们现在是在本地操作,所以需要借用tomcat中的jar包(tomcat-api.jar)
最终是不需要的,因为我们的java程序最终是部署到tomcat中运行的,tomcat中有这个jar包
jar包必须放在WEB-INF这个目录里面,所以我们在该目录下创建名字为lib的文件夹,用来放我们导入的jar包
2.在web.xml文件中配置Servlet
Web.xml文件:
xml指可扩展性标记语言,主要是存储数据,以特定的格式存储项目配置信息
Web.xml文件用于对web应用下的web资源进行配置,必须放在web应用目录WEB-INF目录下, 服务器在启动时会读取web.xml文件中的内容
像servlet、过滤器、监听器等等都在web.xml文件中配置
由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成
3运行servlet程序
通过浏览器访问http:localhost:8080/ 项目名/配置的url
ip(找到计算机)+端口(找到计算机上的某一个程序,这里也就是找到服务器)+项目名(一个服务器中有可能部署了多个项目,所以需要通过名称找到项目)+配置注册的servlet的名称(找到对应的servlet访问地址)
3 Servlet程序执行流程
一次http请求发送到后端找到servlet程序,是按照一个特定的顺序调用方法的。
构造方法 ---> init() ---> service() ---> destroy()
流程
1.创建阶段(构造方法)
servlet对象是由服务器创建的,创建时有两种情况:
默认情况下,当我们第一次向servlet发送请求时,由服务器创建此servlet对象,始终只创建一个,也就是只执行一次
2.初始化阶段(init(ServletConfig config))
在servlet创建成功后(也就是构造方法执行后)立即执行,初始化一些参数配置, 只执行一次
ServletConfig参数,用来封装servlet配置信息,我们可以在web.xml中配置,并通过config.getInitParameter(""),来获取对应的值,也就是通过参数读取配置信息
3.服务阶段(service())
service是为前端提供服务的,一旦有客户端请求,就会执行service(),提供服务
HttpServletRequest 表示请求,封装请求数据;HttpServletResponse 表示响应,它们都是接口,tomcat想要运行java程序,就要去写具体的实现类来实现该接口
4.销毁阶段(destroy())
当服务器关闭时,在servlet真正销毁之前,服务器会调用destroy(,)让我们的servlet程序可以去执行一些最终的操作
附:
javaSE:java学习的基石,贯穿于整个java始终
数据库:存储数据的容器,进行验证 ,对 请求数据进行比对,增删改查
GUI:写一个窗口 数据直接可以被java获取到
web程序:网页+服务器
B/S架构:浏览器+服务器(优点:不需要在电脑安装特定的客户端 )
GUI:客户端+服务器
C/S架构:客户端+服务器