Java Web day01 软件架构和服务器、JDK1.8配置环境变量、Tomcat服务器、Servlet运行原理

软件架构和服务器

软件架构

BS:Browser Server 浏览器客户端-服务器模式。客户端使用浏览器来访问服务器。
CS:Client Server 客户端-服务器模式。用户需要在终端上安装不同的客户端软件来访问服务器。

在这里插入图片描述
在这里插入图片描述
B/S特点:

优势: 开发成本低.客户端统一浏览器,客户端只需要一套技术html,css,js等,就可以运行各种系统平台上
缺点:客户端使用资源受浏览器限制, 所以客户端不能存储大量数据,这样就要去服务器存储大量数据

C/S特点:

优势: 可以使用大量的客户端资源,可以存储大量数据.
缺点: 开发成本高.不同系统平台都需要开发不同的客户端.

常用的Web服务器软件

WebLogic
oracle公司服务器

Websphere
IBM公司

Jboss
Jboss公司

Tomcat
apache公司 ,市场占有率最高,免费,开源

JDK1.8配置环境变量

在这里插入图片描述

Tomcat服务器

tomcat服务器占用端口号 :8080

解决Tomcat服务器端口号被占用的方法:

解决方法1:

1、找到占用端口的软件,结束应用程序,之后再启动tomcat

2、打开cmd运行命令,输入如下 查询占用8080端口的程序

netstat -nao|findstr "8080"

含义:查看当前电脑所有程序占用端口号

netstat 用于查询网络程序进程信息

参数n,显示端口号

参数a,显示所有的程序

参数o,显示程序的进程号PID

解决方法2:

1、修改tomcat默认端口,修改后再访问
2、修改tomcat/conf/server.xml配置文件中配置的端口号的位置

在这里插入图片描述


目录介绍
在这里插入图片描述

Tomcat案例–xml配置环境

public class Demo2Servlet extends HttpServlet {

    //重写service方法处理请求,就不用再重写doGet或doPost方法简化开发
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //处理浏览器请求的目标:输出一句话“我的第一个Servlet”
        //1.设置输出数据为网页并且字符串的码表为utf-8
        response.setContentType("text/html;charset=utf-8");
        //2.获取项浏览器输出字符的打印流
        PrintWriter out = response.getWriter();
        //3.输出数据
        out.print("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">

    <!--配置用户访问的资源路径“/demo1”映射给Demo1Servlet去执行-->
    <servlet>
        <servlet-name>Demo2Servlet</servlet-name>
        <servlet-class>com.itheima.servlet.Demo2Servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Demo2Servlet</servlet-name>
        <url-pattern>/demo2</url-pattern> <!--这里的路径配置必须以“/”开头-->
    </servlet-mapping>
</web-app>

Tomcat案例–注解


@WebServlet(urlPatterns = "/demo3")
//urlPatterns  是一个数组,可以传入多个路径.urlPatterns 可以省略
public class Demo3Servlet extends HttpServlet {

    //重写service方法处理请求,就不用再重写doGet或doPost方法简化开发
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //处理浏览器请求的目标:输出一句话“我的第一个Servlet”
        //1.设置输出数据为网页并且字符串的码表为utf-8
        response.setContentType("text/html;charset=utf-8");
        //2.获取项浏览器输出字符的打印流
        PrintWriter out = response.getWriter();
        //3.输出数据
        out.print("注解Servlet");
    }
}

Tomcat中Servlet体系
在这里插入图片描述

Tomcat面试题–servlet生命周期

1.请说出servlet生命周期相关方法有哪些?

init初始化方法
service处理请求与响应方法
destroy()销毁方法

2.servlet对象什么时候创建的?

默认第一次访问的时候创建,因为第一次调用Servlet运行init方法

3.servlet对象创建了几次?

只创建了1次,全局唯一,节省内存

4.servlet默认是在第一次访问时创建,能修改为启动时创建?

可以,修改配置load-on-startup就可以修改为服务器启动时创建Servlet
注解设置:@WebServlet(urlPatterns = “/LiftCycleServlet”,loadOnStartup = 1)
xml设置:<load-on-startup>1</load-on-startup>
里面的数字的范围:1~6, 数字越小越先创建。

	<servlet>
        <servlet-name>LiftCycleServlet</servlet-name>
        <servlet-class>com.itheima.servlet.LiftCycleServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>LiftCycleServlet</servlet-name>
        <url-pattern>/LiftCycleServlet</url-pattern>
    </servlet-mapping>
@WebServlet(urlPatterns = "/LiftCycleServlet",loadOnStartup = 1)

5、serclet可以修改为多例模式?

可以, 需要类实现接口SingleThreadModel,但是,非常不建议这样使用,会导致内存浪费

Servlet运行原理

在这里插入图片描述

idea快捷键

Ctrl+Alt+U
鼠标放在一个类(HttpServlet)上,再使用这个快捷键就可以查询这个类的向上结构(继承与实现接口)

Ctrl+H,就查询向下结构(子类或实现类)

Ctrl+N, 点击classes, 输入要搜索的类名,可以快速搜索指定类

Ctrl+F12, 查找当前类内部的成员

Ctrl+Alt+鼠标点击, 查找子类或实现类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

halulu.me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值