Web-基础理论

概念

软件架构方式

C/S(Client Server)客户端&服务端

特点:使用必须安装客户端

B/S:(Browser Server) 浏览器&服务器

特点:可移植性强

资源分类

  1. 静态资源:用户访问得到的结果一致(HTML、CSS、图片)

  2. 动态资源:用户访问结果可能不一致(JSP、PHP)

浏览器不能打开动态资源,只能直接访问静态资源。

如果访问动态资源,要通过WEB服务器将动态资源转为静态资源

TOMCAT配置

官网:Apache Tomcat® - Welcome!/

基本使用

1、安装:解压即可

2、目录介绍

3、开启tomcat

4、配置:

配置端口:(conf / server.xml)- 第69行

port值统一改为80(HTTP协议默认的端口是80)

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

常见问题:启动startup.bat一闪而过

原因:没有正确配置JAVA_HOME

Eclipse集成TOMCAT

1、在other中搜索server

 

2、添加tomcat(对应Tomcat版本)

WEB项目

创建web项目

 

webcontent内创建HTML文件

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title here</title>
        </head>
    <body>
        hello web
    </body>
</html>

项目部署

将需要部署的项目放在tomcat中(放在右边)

右键服务器---start--启动服务器

 

访问项目

WEB项目基于HTTP协议的:http://IP地址:端口/项目名/资源路径

Servlet

本质就是一套接口,规定Java类能被Web服务器所识别的规范。我们编写WEB应用必须实现Servlet接口。

创建Servlet

1、创建WEB项目

2、自定义类实现Servlet接口

public class MyFristServlet implements Servlet{
    @Override
    public void destroy() {}
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
    @Override
    public String getServletInfo() {
        return null;
    }
    @Override
    public void init(ServletConfig arg0) throws ServletException {}
    @Override // 用于处理请求
    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
        System.out.println("service被调用");
    }
}

3、配置Servlet(web.xml)

<!-- 配置一个Servlet -->
<servlet>
    <!-- Servlet起名 -->
    <servlet-name>hello</servlet-name>
    <!-- Servlet位置 -->
    <servlet-class>com.xxx.controller.MyFristServlet</servlet-class>
</servlet>
<!-- 配置servlet访问路径 -->
<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

4、访问页面地址,启动WEB服务器

http://localhost/01-web-hello/hello

执行原理

1、tomcat启动时,扫描部署项目

2、扫描到WEB项目,会读取配置文件,根据配置文件做操作

<servlet>
    <!-- 给Servlet起名字 -->
    <servlet-name>hello</servlet-name>
    <!-- 告诉tomcat servlet位置(全类名) -->
    <servlet-class>com.xxx.controller.MyFristServlet</servlet-class>
</servlet>

3、根据上面配置自动创建对应class的对象

<!-- 配置servlet的访问路径 -->
<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

4、根据上述配置规定对象的访问路径为/hello

5、浏览器输入:http://localhost/01-web-hello/hello

通过http://localost:80 找到当前机器的tomcat

通过 01-web-hello 找到对应项目

通过/hello 找到自动创建的hello对象

6、tomcat会自动调用该对象的service方法对请求进行处理

servlet的生命周期

对象初始化(创建)

servlet被第一次访问时创建对象(默认,且一个servlet对象只创建一次)

可通过配置改变创建时机

<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.woniuxy.controller.MyFristServlet</servlet-class>
    <!-- 配置该servlet对象创建的时机 -->
    <!-- 只能是整数 -->
    <!-- 正数:tomcat服务器启动时创建(值越小越早) -->
    <!-- 负数和0:第一次被访问的时候创建 -->
    <load-on-startup>5</load-on-startup>
</servlet>

tomcat自动调用init方法

@Override
public void init(ServletConfig arg0) throws ServletException {
    System.out.println("产生Servlet对象会调用");
}

ServletConfig对象说明

作用:存储servlet对象的配置信息

使用:配置servlet时通过<init-param>配置键值对,封装到ServletConfig对象

<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.woniuxy.controller.MyFristServlet</servlet-class>
    <!-- 初始化的参数信息 -->
    <init-param>
        <!-- 本质就是配置键值对 -->  
        <param-name>test</param-name>
        <param-value>testvalue</param-value>
    </init-param>
    <load-on-startup>5</load-on-startup>
</servlet>

一旦配置,servlet对象在创建时会扫描init-param将其中K-V键值对传给init方法,通过该对象获取初始化值

// 查看value值
servletConfig.getInitParameter("test");

使用servlet

调用service方法(tomcat自动调用)

销毁servlet

调用destory方法(tomcat关闭时自动调用)完成清除对象

servlet(注解版)

//配置访问路径
@WebServlet("/test")
public class TestServlet implements Servlet{}

路径配置

注解作用
@WebServlet("/test")精准路径
@WebServlet("*.do")拦截后缀
@WebServlet("/user/*")拦截文件夹

HttpServlet

根据HTTP协议对Servlet接口做的一层实现,重写doget和dopost方法,根据不同的请求方式转到不同的方法上

@WebServlet("/test")
public class MyHttpServlet extends HttpServlet{
	@Override //get方法
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}
	@Override //post方法
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值