博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web入门、tomcat、servlet、jsp
阅读量:6541 次
发布时间:2019-06-24

本文共 5056 字,大约阅读时间需要 16 分钟。

web概述

 

1.出现web程序开发的原因:

随着网络技术的不断发展,单机的软件程序已经很难满足网络计算的需要。为此,产生了各种网络程序开发体系结构。最重要的是C/S,  B/S.

2.C/S:

客户端/服务端结构,client/server。客户端需要安装专门的客户端软件。QQ 微信 LOL等

优点:有一部分代码写在客户端, 用户体验比较好,减轻了服务器的负担。

缺点:维护成本高,服务器更新,客户端也要随着更新。 占用资源大。

B/S:

浏览器/服务器结构,brower/sever。通过web浏览器向web服务器发送请求,由web服务器进行处理,并将处理结果返回给客户端浏览器。网页游戏 , WebQQ 等

优点:客户端只要有浏览器就可以了。 占用资源小, 不用更新。开发和维护成本低

缺点:将事务处理逻辑部分交给服务器,增加了服务器的负担。用户体验不佳。

现在主流的网络应用程序开发体系结果首选B/S。

3.web应用程序的工作原理

静态网站:早期的web。web应用由静态页面构成,由html编写,放在web服务器上。用户使用浏览器通过HTTP协议请求服务器的资源,web服务器接收请求并作出处理,将结果返回给客户端浏览器,浏览器经过渲染后呈现给用户。

动态网站:随着网络的发展,线下的业务向网上发展,基于internet的web应用也越来越复杂,访问的不再只是静态页面,更多的内容需要根据用户的请求动态的生成页面信息,即动态网站。动态页面由html与动态脚本语言如:jsp等联合编写,并将编写好的程序部署到web服务器上,由服务器对动态脚本代码进行处理,并转化为浏览器可以解析的html代码,返回给浏览器,显示给用户。

 

tomcat

服务器

其实服务器就是一台电脑。 配置比一般的要好。

tomcat就是Apache基金会开发的服务器,免费并且跨平台。是学习java开发的比较实用的服务器。

 

Tomcat目录介绍

bin

> 包含了一些jar ,  bat文件 。  startup.bat、shutdown.bat。

conf  tomcat的配置 server.xml 与web.xml

lib

tomcat运行所需的jar文件

logs

运行的日志文件

temp

临时文件

webapps

发布到tomcat服务器上的项目,就存放在这个目录。

work

jsp翻译成class文件存放地

 

 

如何把一个项目发布到tomcat中

需求: 如何能让其他的电脑访问我这台电脑上的资源 。 项目:test01

localhost : 本机地址

1. 拷贝这个项目到webapps/ROOT底下, 在浏览器里面访问:

http://localhost:8080/test01
http://localhost:8080 : 其实对应的是到webapps/root

2. 通过在server.xml文件中配置<Context>元素实现

在tomcat安装目录打开conf下打开server.xml文件,在<Host></Host>元素中间添加元素<Contex>元素。

  1. 在conf/server.xml 找到host元素节点。

  2. 加入以下内容。

  3. 在浏览器地址栏上输入: http://localhost:8080/a即可访问到web应用的test01。

 

 

给Eclipse配置Tomcat

 

  1. 在server里面 右键新建一个服务器, 选择到apache分类, 找到对应的tomcat版本, 接着一步一步配置即可。
  2. 配置完毕后, 在server 里面, 右键刚才的服务器,然后open , 找到上面的Server Location , 选择中间的 Use Tomcat installation...

  3. 创建web工程, 在WebContent下定义html文件, 右键工程, run as server

 

 

HTTP:

通信双方按照这个超文本传输协议进行通信。

在http协议当中,规定了请求和响应双方, 客户端和服务器端。与web相关的资源。

有两种分类

  • 静态资源

    html 、 js、 css

  • 动态资源

    servlet/jsp

 

Servlet

  • servlet是什么?

其实就是一个java程序,运行在我们的web服务器上,用于接收和响应 客户端的http请求。

更多的是配合动态资源来做。 当然静态资源也需要使用到servlet,只不过是Tomcat里面已经定义好了一个 DefaultServlet

 

Severlet与ServletConfig与Serializable是三个接口。Severlet与ServletConfig定义了Servlet的基本方法以及封装了Servlet的配置信息。

GenericServlet是抽象类,实现了上面三个接口。但它没有对Http请求处理进行实现。

而HttpServlet实现了 GenericServlet,也对Http请求处理进行实现,为POST、GET方法等提供了具体的操作方法,所以通常我们编写的Servlet直接继承于HttpServlet。

 

第一个Servlet如下:

1 import java.io.IOException; 2 import java.io.PrintWriter; 3 import javax.servlet.ServletException; 4 import javax.servlet.http.HttpServlet; 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletResponse; 7 public class WelcomeServlet extends HttpServlet { 8     private static final long serialVersionUID = 27126L; 9     @Override10     public void doGet(HttpServletRequest request,//处理Http的Get请求11             HttpServletResponse response) 12             throws ServletException, IOException {13         response.setContentType("text/html");//设置内容类型14         PrintWriter writer = response.getWriter();//打印流15         writer.print(""//写给浏览器,让浏览器解析后显示给用户16                 + "Welcome");17     }18 }

 

 

编写好Servlet后我们需要配置这个Servlet类,即告诉Web容器哪一个请求调用了哪一个Servlet对象,对Servlet起到一个注册的作用。在webContent/WEB-INF/web.xml里面写上以下内容:

1.声明Servlet。通过<servlet>标签:里面有<servlet-name>和<servlet-class>两个标签

2.映射Servlet。通过<servlet-mapping>:里面有<servlet-name>和<servlet-mapping>两个标签

1 
2
6 7
8
WelcomeServlet
//自定义名称 9
app01c.WelcomeServlet
//Servlet完整路径10
11 12
//映射13
WelcomeServlet
//与上面的自定义名称要一样14
/welcome
//映射访问的URL15
16

 

 

Servlet的生命周期

  • 生命周期

从创建到销毁的一段时间

  • 生命周期方法

从创建到销毁,所调用的那些方法。

  • init方法

    在创建该servlet的实例时,就执行该方法。一个servlet只会初始化一次, init方法只会执行一次默认情况下是 : 初次访问该servlet,才会创建实例。
  • service方法

    只要客户端来了一个请求,那么就执行这个方法了。 该方法可以被执行很多次。 一次请求,对应一次service方法的调用
  • destroy方法

    servlet销毁的时候,就会执行该方法    1. 该项目从tomcat的里面移除。    2. 正常关闭tomcat就会执行 shutdown.bat

doGet 和 doPost不算生命周期方法,所谓的生命周期方法是指,从对象的创建到销毁一定会执行的方法, 但是这两个方法,不一定会执行。

让Servlet创建实例的时机提前。

  1. 默认情况下,只有在初次访问servlet的时候,才会执行init方法。 有的时候,我们可能需要在这个方法里面执行一些初始化工作,甚至是做一些比较耗时的逻辑。

  2. 那么这个时候,初次访问,可能会在init方法中逗留太久的时间。 那么有没有方法可以让这个初始化的时机提前一点。

  3. 在配置的时候, 使用load-on-startup元素来指定, 给定的数字越小,启动的时机就越早。 一般不写负数, 从2开始即可。

    HelloServlet04
    com.itheima.servlet.HelloServlet04
    2

ServletConfig

Servlet的配置,通过这个对象,可以获取servlet在配置的时候一些信息

每个Servlet只有一个ServletConfig

当Servlet容器初始化时,Servlet容器会给Servlet的init()方法传入一个ServletConfig。而这个ServletConfig的封装可有部署描述符或者@WebServlet传给Servlet的配置信息。传入的每一条信息就叫一个初始参数。每个初始参数有key和value两个值。

常用方法:     //1. 得到servlet配置对象 专门用于在配置servlet的信息    ServletConfig config = getServletConfig();    //获取到的是配置servlet里面servlet-name 的文本内容    String servletName = config.getServletName();    //2、。 可以获取具体的某一个参数。     String address = config.getInitParameter("address");    //3.获取所有的参数名称    Enumeration
names = config.getInitParameterNames(); //遍历取出所有的参数名称 while (names.hasMoreElements()) { String key = (String) names.nextElement(); String value = config.getInitParameter(key); System.out.println("key==="+key + " value="+value); } //4.获取上下文环境ServletContext

 

转载于:https://www.cnblogs.com/zclun/p/10679842.html

你可能感兴趣的文章
小tips:JS中的children和childNodes
查看>>
二叉树的遍历
查看>>
Oracle的FIXED_DATE参数
查看>>
PostgresSQL中的限制和级联删除
查看>>
NDK配置
查看>>
(转)@ContextConfiguration注解说明
查看>>
docker in centos error
查看>>
c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex
查看>>
[置顶] ※数据结构※→☆线性表结构(queue)☆============队列 顺序存储结构(queue sequence)(八)...
查看>>
Log4perl 的使用
查看>>
Linux 系统的单用户模式、修复模式、跨控制台登录在系统修复中的运用
查看>>
《http权威指南》阅读笔记(十)
查看>>
JQuery UI Widget Factory官方Demo
查看>>
Atlas揭秘 —— 绑定(Binding)
查看>>
install xcode_3.2.5_and_iOS_sdk_4.2 _final with mac lion10.7.3
查看>>
JavaScript权威指南(第6版)
查看>>
sql 自定義百分比轉換小數函數
查看>>
一起谈.NET技术,C# 委托,事件和Lambda表达式
查看>>
远离云计算风险三步走
查看>>
Silverlight 游戏开发小技巧:技能冷却效果2(Cool“.NET研究”down)2
查看>>