Java-servelt入门

 一、C/S、B/S与RIA

(一)C/S

  • Client/Server:客户端/服务器的简称,又称为胖客户端
  • 需要在电脑上安装特定的软件,例如:QQ

(二)B/S

  • Browser/Server:浏览器/服务器的简称,又称为瘦客户端
  • 不需要在电脑上安装特定的软件,只需在电脑上安装一个浏览器即可
  • 例如:在浏览器访问一个百度网页

(三)C/S和B/S区别

  • C/S需要安装客户端软件,但是操作往往更为便捷,用户体验好,安全性好
  • B/S不需要安装客户端软件,但是用户体验往往不如C/S好,安全性也较C/S要低

(四)RIA

1.定义

  • Rich Internet Applications:富客户端网络应用

2.目标

  • 基于B/S架构
  • 在浏览器实现与胖客户端(C/S)类似的用户体验,比如:局部刷新,拖拽功能

二、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服务器的部分功能

三、开发Web应用的核心技术

(一)CGI

  • Common Gateway Interface :通用网关接口,web应用服务器提供信息服务的标准接口,目前使用较少

(二).net

  • 微软公司的企业应用框架,如:Asp.net , Ado.net
  • 中小型企业使用,早期不能跨平台,现在可以跨平台(.net core)

(三)php

  • php是一个相对易学的web开发技术,在互联网小型应用中使用广泛

(四)JavaEE

  • 是Oracle公司的企业应用框架,在大型的企业应用广泛.例如:Servlet,JSP是Web开发组件

四、Tomcat介绍及安装

(一)什么是Tomcat

  • Tomcat是Web应用服务器,又称为Servlet Container(Servlet 容器)

(二)Tomcat的特点

  • 开源
  • 免费
  • 中小型应用和并发访问用户不是很多的情况下广泛使用
  • 是开发调试Servlet/Jsp程序的首选

(三)Tomcat的官网

http://tomcat.apache.org/

使用9.0版本

(四)Tomcat的安装

1.官网下载压缩包到本地的硬盘

2.解压缩

下载的是一个压缩包,我们将其解压到硬盘上的某个位置即可,解压路径不要包含中文或者空格

(五)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目录

(六)保证JDK能正常运行

1.JDK的默认安装路径

2.设置JDK环境变量

3.设置Path

4.测试JDK

  • java

  

  • javac

  

  • java -version

  

(七)启动Tomcat

  • 进入bin目录
  • 双击bat启动Tomca

  

  

解决Tomcat控制台的乱码

  • 进入conf文件夹
  • 打开logging.properties文件
  • 修改java.util.logging.ConsoleHandler.encoding = UTF-8

  

  • 打开idea,点击Help/帮助

  

  

(八)在浏览器访问Tomcat

在浏览器的地址栏输入:http://localhost:8080回车即可访问Tomcat

五、常见其他Servlet容器简介

JBoss

Resin

GlassFish 4

补充:

Weblogic  bea oracle

Websphere IBM

六、Servlet的概念及功能

(一)什么是Servlet

  • Servlet是JavaEE规范中的Web开发组件,运行在服务器端的java程序.

(二)Servlet特点

  • 运行在服务器端
  • 需要Servlet容器的支持(如:Tomcat)
  • Servlet是一个Java类,遵守一定的开发规范,比如继承HttpServlet
  • 通过浏览器访问Servlet,Servlet返回给浏览器动态页面

  

  • 本课程所学的主要内容:Servlet和JSP,JSP的本质是Servlet

七、使用IDE创建第一个Web应用

(一)创建第一个web应用

1.创建工程,File-new-Project

2.选择java-Web Application

或者选择Java EnterPrise-Web Application

输入工程名,选择存放目录

(二)Web工程的目录结构

  

对于新版的找不到JAVAEE以下步骤解决:

  • 创建java工程:File-new-Project-java

  

  • 新弹出的页面直接点next

  

  • 输入工程名

  

  

  • 选择Project Structure

  

  • 选择Modules-web

  

  

  

  

(三)Idea配置Tomcat

  • 找到Add Configuration
    • 右上角找到Add Configuration图标

    

    • 菜单Run-Edit Configuration

    

  • 在弹出的页面中选择+号-Tomcat Server-Local

  

  • 在弹出的页面中输入名称,点击Configure按钮

  

  • 在弹出的页面中,点击+号,再在新弹出的页面中点击文件夹按钮选择Tomcat安装路径

  

  • 选择Tomcat安装路径

  

  

  

  • 刚配置好的Tomcat

  

(四)发布web应用

  

  • 新弹出的页面

  

  • 选择浏览器,点击OK按钮.Tomcat配置成功

  

  • 配置Chrome(可以直接把默认路径换成谷歌的路径)

  

  • 右上角出现配置好的Tomcat

   

  • 运行Tomcat,启动应用

  

  • 运行应用

  

八、编写第一个Servlet

(一)src->右键->new->Servlet

(二)输入包名和Servlet名称

(三)web.xml配置servlet

<!--配置Servlet,可以手动配置-->
<servlet>
    <!--Servlet的名称 不要重名-->
    <servlet-name>HelloServlet</servlet-name>
    <!--servlet对应的类的全路径名称(包名+类名)-->
    <servlet-class>com.tjetc.servlet.HelloServlet</servlet-class>
</servlet>
<!--配置Servlet映射(url与Servlet名称映射)-->
<servlet-mapping>
    <!--Servlet的名称-->
    <servlet-name>HelloServlet</servlet-name>
    <!--外部访问servlet的url,初学者写/开头-->
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

(四)导入servlet-api.jar jsp-api.jar

(五)在生成的servlet中添加

    /**
     * 浏览器地址栏输入http://localhost:8080/hello会调用servlet的doGet()方法
     * @param req      请求对象.取得请求的数据(浏览器传过来的数据)
     * @param resp     响应对象.返回浏览器数据放在该对象中
     * @throws ServletException
     * @throws IOException
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //生成动态的内容返回到浏览器显示
               //取得响应的输出流对象
        PrintWriter out = response.getWriter();
               //向out输出流对象写内容浏览器就能接收到,并在页面进行显示
        out.print("Hello Servlet!");
    }

九、web.xml中配置Servlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--配置Servlet,可以手动配置-->
    <servlet>
        <!--Servlet的名称-->
        <servlet-name>HelloServlet</servlet-name>
        <!--servlet类的全路径名-->
        <servlet-class>com.tjetc.servlet.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <!--Servlet的名称-->
        <servlet-name>HelloServlet</servlet-name>
        <!--外部访问servlet的url,初学者写/开头-->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

说明:

  • <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

十、部署到Tomcat

点击fix,就会自动部署

手动部署:

1.点击+号,选择Artifact

十一、运行Web应用

Tomcat如何找到servlet并实例化的?

  • 第一步:在浏览器地址栏输入访问路径,向服务器(Tomcat)发送请求;
  • 第二步:服务器根据访问路径去web.xml文件中和<url-pattern>标签中的虚拟路径进行匹配,匹配成功后,找到已注册的servlet名称;
  • 第三步:根据映射找到对应的servlet名,注意:<servlet-mapping>下的<servlet-name>标签和<servlet>下的<servlet-name>标签中的值必须相同;
  • 第四步:根据servlet名找到全限定类名,即我们自己写的类。

服务器找到全限定类名后,通过反射调用Class对象的newInstance()方法,实例化一个如:HelloServlet对象,注意一定要为HelloServlet提供一个无参的构造方法。同时也创建了servletConfig,里面存放了一些初始化信息(注意:服务器只会创建一次HelloServlet对象,所以servletConfig也只有一个)。

十二、Servlet的生命周期

(一)servlet家谱

二类二接口

3加2方法

(二)servlet生命周期

当用户第一次从浏览器请求访问LifeServlet时,对应的LifeServlet的生命周期简略描述如下:

  • Tomcat 调用LifeServlet的构造方法,创建该类的对象
  • Tomcat调用JavaEE API中的初始化方法:
    • 先调用有参数的init方法
    • 再调用无参的init方法,进行初始化工作
  • 初始化成功后,调用service服务方法,通过判断请求方式,调用相应的doxx方法,如ldoGet、doPost等方法;
  • doxxx方法正常返回后,即提供服务结束
  • Tomcat根据使用情况,在适当的时机销毁servlet对象,销毁前调用destroy方法 
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet extends HttpServlet {
    public HelloServlet() {
        System.out.println("无参构造方法HelloServlet()");
    }
    @Override
    public void init() throws ServletException {
        System.out.println("初始化init()无参");
        super.init();
    }
    @Override
    public void init(ServletConfig config) throws ServletException {
        System.out.println("初始化init(config)有参");
        super.init(config);
    }
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("service()");
        super.service(req, resp);
    }
    //接收get请求
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet()");
        //doPost(req, resp);
    }
    //接收post请求
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doPost()");
        //获取输出流
        PrintWriter writer = resp.getWriter();
        //把字符串输出到页面中
        writer.write("<h1>Hello Servlet </h1>");
    }
    @Override
    public void destroy() {
        System.out.println("destroy()");
        super.destroy();
    }
}

(三)各个方法的执行顺序和次数

  1. Tomcat启动,各个方法没有执行
  2. 第一次访问的时候执行顺序:
    • HelloServlet的构造方法
    • init初始化方法
    • service()方法
    • method = GET
  3. 第二次以及以后访问的时候执行顺序
    • service()方法
    • method = GET
  4. 执行次数
    • 构造方法,初始化方法执行一次
    • service()方法 doXXX()执行多次
    • 销毁方法destroy()方法执行一次

(四)servlet的特性

  • 多线程单实例
  • 单例模式
    • 在整个应用运行期间,只有一个实例存在
    • 单例模式.省内存.
  • 一个url对应一个实例

(五)ServletAPI查询地址

http://tomcat.apache.org/tomcat-9.0-doc/servletapi/index.html

(六)Web应用常见的错误

1.404找不到请求的资源

2.500代表服务器内部错误

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("doGet()");
        int i=1/0;
        response.getWriter().append("Served at: Hello Servlet!").append(request.getContextPath());
    }

3.页面无法显示:未启动Tomcat

十三、案例

写一个servlet,在servlet里返回一个html页面,页面包含一个table表格,输出:

序号

姓名

年龄

1

张三

20

2

李四

18

(一)设置响应编码:UTF-8

response.setContentType(“text/html;charset=UTF-8”);

(二)向页面输出

out=response.getWriter();

out.println(内容);

十四、总结

  • C/S B/S RIA
    • C/S:Client/Server 客户机/服务器 客户端需要安装特定的软件
    • B/S:Browser/Server 浏览器/服务器 客户端不需要安装特定的软件,只要安装浏览器软件即可
    • RIA:Rich Internet Applications 富客户端网络应用 基于B/S 实现C/S的用户体验
  • Web站点:Web Site,也称为Web 网站,浏览 静态功能
    • Web应用:Web Application web应用  查看/购物/订单的动态的功能
    • HTTP服务器:浏览网页
    • Web应用服务器:运行服务器端程序,将结果返回给客户端浏览器
  • 开发Web应用常用的技术:
    • CGI
    • .net
    • php
    • javaEE
  • 什么是Tomcat
    • Tomcat是Web应用服务器,又称为Servlet Container(Servlet 容器)
  • Tomcat安装
    • 下载
    • 解压
    • JDK
    • Tomcat常用目录
      • bin:启动 停止Tomcat脚本
      • conf:配置文件
      • lib:Tomcat依赖的库
      • logs:Tomcat默认的日志存放目录
      • temp:临时文件
      • wabapps:Tomcat默认的部署目录
      • work:jsp翻译.java和编译的.class文件目录
    • 启动Tomcat:
      • bin
      • 双击startup.bat
    • 访问Tomcat:http://localhost:8080
    • 解决Tomcat控制台的乱码(这种不能完全解决乱码问题)
      • 进入conf文件夹
      • 打开logging.properties文件
      • 修改java.util.logging.ConsoleHandler.encoding = utf-8
      • 重启Tomcat
  • 常见的servlet容器
    • Tomcat
    • JBoss
    • Resin
    • Glass Fish 4
    • Weblogic Bea Oracle
    • WebSphere  IBM
  • 什么是servlet
    • Servlet是JavaEE规范中的Web开发组件,运行在服务器端的java程序
  • servlet的特点
    • 运行在服务器端
    • 需要Servlet容器的支持(如:Tomcat)
    • Servlet是一个Java类,遵守一定的开发规范,比如继承HttpServlet
    • 通过浏览器访问Servlet,Servlet返回给浏览器动态页面
  • 使用IDE开发第一个Web应用
    • 打开Idea
    • 新建工程:File-new-Project
    • java enterpise-Web Application - 勾选Create web.xml

         java-javaee-Web Application - 勾选Create web.xml

    • 输入工程名,选择存放的位置

       对于新版:

    • 新建工程:File-new-Project-java
    • Project  Structure-module-+-web
    • create Artifact:自动生成web目录及配置文件
  • idea配置Tomcat
    • edit Configuration
    • +号-Tomcat Server-Local
  • 发布
    • fix按钮
  • 编写第一个servlet
    • src->new -servlet
    • web.xml配置servlet
    • doGet
  • servlet家谱
    • 二类二接口
    • 3加2方法
  • servlet生命周期方法
    • 构造方法,初始化方法执行一次
    • service()方法 doXXX()执行多次
    • 销毁方法destroy()方法执行一次
  • 15.常见错误
    • 404未找到
    • 500服务器内部错误
    • .页面无法显示:未启动Tomcat  
posted @   carat9588  阅读(142)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示