首页 > 其他分享 >2022-08-29 day37 第一小组 王鸣赫

2022-08-29 day37 第一小组 王鸣赫

时间:2022-09-05 17:04:30浏览次数:78  
标签:web Tomcat -- day37 08 29 服务器 servlet javax

目录

JAVA web

一,软件架构

  1. c/s架构:客户端 / 服务器
  2. b/s架构:浏览器 / 服务器

二,资源分类

  1. 静态资源:所有用户访问后,得到的结果都是一样的(html,css,js,图片...)

  2. 动态资源:每个用户访问相同的资源,得到的结果可能不一样,动态资源在被访问后,需要先转换成静态资源,在返回给浏览器,通过浏览器来进行解析
    nginx:动静分离

三,常见的wed服务器

  1. 服务器:安装了服务器软件的计算机

  2. 服务器软件:接受用户的请求,处理请求后,给出响应

  3. wed服务器软件:接受用户的请求,处理请求后,给出响应

在web服务器软件中,可以部署web项目,让用户通过浏览器访问这些项目

四,常见的服务器软件

动态服务器

webLogic : oracle公司出品,大型的web服务器,几乎支持了所有的javaEE规范
webSphere : IBM公司,大型的web服务器,几乎支持了所有的javaEE规范
jBoss : jBoss公司,中型的javaEE服务器,几乎支持了所有的javaEE规范
Tomcat : Apache基金会,中小型的web服务器,支持少量的javaEE规范,开源免费

静态服务器

Nginx :代理,反向代理,动静分离,极高的并发
Apache

Tomcat

bin :存放一些批处理脚本文件,可处理文件
conf :(config)存放tomcat相关配置文件
lib :(library)Tomcat依赖的jar包
logs :存放日志
temo :临时文件目录
webapps :Tomcat默认的web应用部署目录
work :web应用JSP代码身生成和遍历的临时目录

Tomcat的启动

双击 bin/startup.bat文件

Tomcat的关闭

双击 bin/shutdown.bat文件

访问

http:1270.0.1:8080

五,Tomcat部署项目

六,Servlet

Servlet

就是一个普通的java类
处理请求,给出响应的类

创建Servlet

  1. 实现 javax.servet.Servlet 接口

  2. 继承 javax.servlet.GenericServlet 类

  3. 继承 javax.servlet.http.HtppServlet 类(*)

引包 放在WEB-INF下的lib包

Servlet生命周期

  1. 初始化 -- inti方法
  1. 实例化 -- 构造器
  1. 调用 serice 方法,处理请求
  1. 销毁 -- destory方法

前台和后台简单实现

web / WEB-INF 下新建 lib 导入servelt-api.jar
index.html



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--
    get请求怎么发?
-->
<a href="hello.do">get请求</a>
<form action="hello.do" method="post">
    <input type="submit" value="提交">
</form>
</body>
</html>

实现方式一:xml 文件

<?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-name>hello</servlet-name>-->
    <!--        <servlet-class>com.jsoft.afternoon.HelloServlet</servlet-class>-->
    <!--    </servlet>-->
    <!--    <servlet-mapping>-->
    <!--        <servlet-name>hello</servlet-name>-->
    <!--        <url-pattern>/hello.do</url-pattern>-->
    <!--    </servlet-mapping>-->
</web-app>

实现二:java 类

package ServletTest;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 现在我们这个HelloServlet已经是一个真正的serlvet了
 * 已经具备了处理请求,给出响应的功能
 *
 * 一个类如果想要解决问题,必须得有方法!
 *
 * 我们当前的servlet只是具备了处理请求的功能,
 * 它到底处理哪一个请求?
 *
 * 需要对我们的servlet做一个配置
 *
 */
@WebServlet("/hello.do")
public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 处理get请求
        System.out.println("doGet方法执行了...");
        System.out.println("我是doget方法...");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 处理post请求
        System.out.println("doPost方法执行了...");
    }
}

注意:

在 xml 里注册 servlet 不可与注解同时用,用注解不要用 xml 实现
Settings 在 Build,Execution,Deployment 下 Complier 勾选 Build project automatically

标签:web,Tomcat,--,day37,08,29,服务器,servlet,javax
From: https://www.cnblogs.com/wmh19990109/p/16658771.html

相关文章

  • 2022-08-26 day36 第一小组 王鸣赫
    目录JS库JQuery选择器层级选择器过滤选择器内容选择器属性选择器事件window.onload和JQuery文档就绪函数的区别?分别什么时候触发?事件的操作添加事件jQueryHTML/CSS方法......
  • Qt-C2429:语言功能"嵌套命名空间定义"需要编译器标志"/std:c++latest"
     问题现象:今天早上在给同事讲代码时,打开工程,发现之前可以编译的工程,在未修改代码,未修改SDK的情况下,无法编译。并且提示如下:C2429:语言功能"嵌套命名空间定义"需要编译器......
  • 【The connection to the server localhost:8080 was refused - did you specify the
    问题k8s报错$kubectlgetnodeTheconnectiontotheserverlocalhost:8080wasrefused-didyouspecifytherighthostorport?解决方法将master节点中的/......
  • 2022-08-27 田龙跃 web前端(JS)
    原生JS数据类型Number-数字String-字符串Boolean-布尔型null-空undefined-未定义变量(同var功能相同)letnum1=“das”(let会自己检查变量是否重复定义)constnum......
  • 【django学习-08】视图之HttpResponse文件下载
    一:前言:响应内容除了返回网页信息外,还可以实现文件下载功能,是网站常用的功能之一。Django提供三种方式实现文件下载功能,分别是HttpResponse,StreamingHttpResponse和FileRe......
  • 20201329魏赫学习笔记一
    20201329信息安全系统设计与实现学习笔记①作业信息作业要求https://www.mosoteach.cn/web/index.php?c=interaction_homework&m=s_write&clazz_course_id=7C854F......
  • 2022-2023-1 20221408《计算机基础与程序设计》第一周学习总结
    班级:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业链接:https://www.cnblogs.com/zhanquanchen/p/16654783.html作业目标:快速浏览教材作业正文:https://www.cn......
  • 【2022-08-30】哺乳
    20:00习惯的枷锁,开始的时候轻得难以察觉,到后来却重得无法摆脱。                                ......
  • 简单计数 P6008
    题目传送门题目大意:给定一张边框确定的图,在其中空地放水并满足物理要求,求总方案数题目分析:首先注意到,满足物理需求就是满足在一个连通块内从高度为\(h\)放水,则满足对......
  • A08_System.Threading.Channels使用(针对发布-订阅,消息缓冲处理)
    在面对 生产者-消费者 的场景下,netcore提供了一个新的命名空间 System.Threading.Channels 来帮助我们更高效的处理此类问题,有了这个Channels存在, 生产者 和 ......