第一章、Web快速入门
2020/04/27
第1节:基本概念及Web应用入门
知识点1:C/S、B/S与RIA
(一)C/S
Client/Server:客户端/服务器的简称,又称为胖客户端,需要在电脑上安装特定的软件.例如:QQ
(二)B/S
Browser/Server:浏览器/服务器的简称,又称为瘦客户端,不需要在电脑上安装特定的软件,只需在电脑上安装一个浏览器即可. 例如:在浏览器访问一个百度网页
(三)C/S与B/S区别
1.C/S需要安装客户端软件,但是操作往往更为便捷,用户体验好,安全性好;
2.B/S不需要安装客户端软件,但是用户体验往往不如C/S好,安全性也较C/S要低
(四)RIA
1.定义:Rich Internet Applications:富客户单端网络应用
2.目标:基于B/S架构
在浏览器实现与胖客户端(C/S)类似的用户体验,比如:局部刷新,拖拽功能.
知识点2:Web站点、Web应用、HTTP服务器、Web应用服务器
(一)Web站点:
Web Site,也称为Web 网站,例如:某公司用来宣传的网站就是Web站点,用户浏览公司的信息,该站点不提供服务.属于静态站点.
(二)Web应用:
Web Application,就是通过浏览器访问的应用程序,为用户提供相关的服务,属于动态网站.例如:京东,淘宝,天猫
(三)HTTP服务器:
1.定义:Web服务器,提供网上信息浏览服务
2.例子: apache nginx IIS
3.特点:使用浏览器访问web站点或者web应用,必须通过HTTP服务器.
(四)Web应用服务器:
1.定义:能够运行服务器上的应用程序,并将结果返回给客户端浏览器的软件.
2.例子:Tomcat就是Web应用服务器
3.特点:兼具HTTP服务器的部分功能.
知识点3:开发Web应用的核心技术
(一)CGI:
Common Gateway Interface :通用网关接口,web应用服务器提供信息服务的标准接口,目前使用较少.
(二).net
微软公司的企业应用框架,如:Asp.net,Ado.net
中小型企业使用.不能跨平台.
(三)php
php是一个相对易学的web开发技术,在互联网小型应用中使用广泛.
(四)JavaEE
是Oracle公司的企业应用框架,在大型的企业应用广泛.例如:Servlet,JSP是Web开发组件.
知识点4:Tomcat介绍及安装
(一)什么是Tomcat
Tomcat是Web应用服务器,又称为Servlet Container(Servlet 容器)
(二)Tomcat的特点
1.开源
2.免费
3.中小型应用和并发访问用户不是很多的情况下广泛使用
4.是开发调试Servlet/Jsp程序的首选
(三)Tomcat的官网
http://tomcat.apache.org/
使用9.0版本
(四)Tomcat的安装
(五)Tomcat的目录结构
1.bin:Tomcat的启动,停止的批处理脚本和shell脚本
2.conf:Tomcat的相关配置文件
3.lib:Tomcat服务器的依赖库目录,包括Tomcat服务器运行环境的依赖的jar包
4.logs:Tomcat默认的日志存放目录
5.temp:Tomcat 运行过程中产生的临时文件
6.webapps:Tomcat默认的web应用部署目录
7.work:jsp代码生成和编译后产生的class目录
(六)在浏览器访问Tomcat
在浏览器的地址栏输入:http://localhost:8080回车即可访问Tomcat
知识点5:常见其他Servlet容器简介
JBoss Resin ClassFish4 Weblogic Websphere
知识点6:Servlet的概念及功能
(一)什么是Servlet
Servlet是Java EE规范中的Web开发组件
(二)Servlet特点
1.运行在服务器端
2.需要servlet容器的支持(如:tomcat)
3.Servlet是一个Java类,遵守一定的开发规范,比如继承HttpServlet
4.通过浏览器访问Servlet,Servlet返回给浏览器动态页面
第2节:第一个Web应用
知识点1:使用IDE创建第一个Web应用
(一)Eclipes配置Tomcat
(二) 配置服务器
1.Window—Show View—servers
2.底部控制栏,server内右键new server
(三)创建Web应用
1.创建Dynamic Web Project项目
2.配置项目
(四)Web工程目录结构
src:存放Java源代码文件,servlet源代码
WebContent:存放.jsp .html 图片文件
lib:存放第三方jar包
web.xml:Web应用的配置文件,Servlet就在这里配置
知识点2:创建一个Servlet
(一)新建Servlet
src->右键->new->Servlet
(二)输入包名和Servlet名称
输入包名,名称
(三)在生成的servlet中添加
知识点3:web.xml中配置Servlet
说明:
<servlet>元素包含<servlet-name>及<servlet-class>,其中<servlet-name>可以使用任意标识符,<servlet-class>是Servlet类的完整类名;
<servlet-mapping>元素包含<servlet-name>及<url-pattern>,其中<servlet-name>与已经定义的name对应,<url-pattern>是逻辑url,非常非常重要,访问Servlet就使用这个url-pattern
知识点4:部署到Tomcat
右键选中工程------>Run As ------>Run on Server-----Finish
知识点5:运行Web应用
知识点6:Servlet的生命周期
(一)Servlet兵分三路
(二)Servlet执行流程
1.浏览器请求
浏览器向服务器请求时,服务器不会直接执行我们的类,而是到web.xml里寻找路径名
①:第一步,浏览器输入访问路径后,携带了请求行,头,体
②:第二步,根据访问路径找到已注册的servlet名称,既图中的demo
③:第三步,根据映射找到对应的servlet名
③:第四步,根据根据servlet名找到我们全限定类名,既我们自己写的类
2.服务器创建对象
①:服务器找到全限定类名后,通过反射创建对象,同时也创建了servletConfig,里面存放了一些初始化信 息(注意服务器只会创建一次servlet对象,所以servletConfig也只有一个)
3.调用init方法
①:对象创建好之后,首先要执行init方法,但是我们发现我们自定义类下没有init方法,所以程序会到其父类HttpServlet里找
②:我们发现HttpServlet里也没有init方法,所以继续向上找,既向其父类GenericServlet中继续寻找,在GenericServlet中我们发现了init方法,则执行init方法(对接口Servlet中的 init方法进行了重写)
4.调用service方法
接着,服务器会先创建两个对象:ServletRequest请求对象和ServletResponse响应对象,用来封装浏览器的请求数据和封装向浏览器的响应数据
①:接着服务器会默认在我们写的类里寻找service(ServletRequest req, ServletResponseres)方法,但是DemoServlet中不存在,那么会到其父类中寻找
②:到父类HttpServlet中发现有此方法,则直接调用此方法,并将之前创建好的两个对象传入
③:然后将传入的两个参数强转,并调用HttpServlet下的另外个service方法
④:接着执行service(HttpServletRequest req, HttpServletResponse resp)方法,在此方法内部进行了判断请求方式,并执行doGet和doPost,但是doGet和doPost方法已经被我们自己重写了,所以会执行我们重写的方法
5.像浏览器响应
最后处理完数据后,将数据响应到浏览器
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloServlet() {
System.out.println("HelloServlet()构造方法...");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("doGet()");
response.getWriter().append("Served at: Hello Servlet!").append(request.getContextPath());
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("service()方法...");
super.service(req, resp);
}
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("init(有参数)方法...");
super.init(config);
}
@Override
public void init() throws ServletException {
// TODO Auto-generated method stub
System.out.println("init()无参数方法...");
super.init();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("doPost()");
doGet(request, response);
}
@Override
public void destroy() {
System.out.println(" destroy()方法");
}
}
(三)ServletAPI查询地址
http://tomcat.apache.org/tomcat-9.0-doc/servletapi/index.html
(四)Web应用常见的错误
1.404找不到请求的资源
2.500代表服务器内部错误
3.页面无法显示:未启动Tomcat
(五)Servlet案例
1.设置响应编码:UTF-8
response.setContentType(“text/html;charset=UTF-8”);
2.向页面输出
out=response.getWriter();
out.println(内容);