javaWeb的web核心

javaWeb的web核心

1.什么是Javaweb
在这里插入图片描述
在这里插入图片描述

一、HTTP

在这里插入图片描述

1.请求数据格式

在这里插入图片描述
PS:重点:get和post区别

2.响应数据格式

在这里插入图片描述
在这里插入图片描述

二、web服务器–Tomcat

我下载的是tomcat8.0
在这里插入图片描述
在这里插入图片描述
运行tomcat中的startup.bat后,然后网页输入localhost:8080,就会显示tomcat页面。如果想修改端口号,那就该下图中的port
在这里插入图片描述
在这里插入图片描述
两种方式:
一种是将Tomcat集成到idea中,进行项目布置即可
一种是pom.xml添加Tomcat插件在这里插入图片描述在这里插入图片描述

三、Servlet

在这里插入图片描述
查看javaEE的文档,发现Servlet是个接口

一、Servlet快速入门的开发步骤

在这里插入图片描述

package com.web;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;

@WebServlet("/demo1")
public class servletDemo1 implements Servlet {


    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("Hello Servlet!");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
}

在打开的路劲后加/demo1,但是页面不显示内容,而是在控制台上显示Hello Servlet!

<dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

二、执行流程

在这里插入图片描述

三、生命周期

在这里插入图片描述

package com.web;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;

@WebServlet(value = "/demo1",loadOnStartup = 1)
public class servletDemo1 implements Servlet {
    //初始化方法
    //1.调用时机:默认情况才,Servlet被第一次访问时,调用
    //2.调用次数:1次
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init running");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
    //提供服务的方法
    //1.调用时机:每一次Servlet被访问时,调用
    //2.调用次数:多次
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("Hello Servlet!");
    }

    @Override
    public String getServletInfo() {
        return null;
    }
    //销毁方法
    //1.调用时机:内存释放时候或者服务器关闭的时候,Servlet对象会被销毁,调用
    //2.调用次数:1次
    @Override
    public void destroy() {
        System.out.println("感谢你的使用");
    }

}

Servlet方法介绍
在这里插入图片描述
Servlet的体系结构
在这里插入图片描述

package com.web;

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;

@WebServlet("/demo2")
public class servletDemo2 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("get...");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("post....");
    }
}

运行代码后发现只有get方法被调用了
如何调用post方法了?
在webapp文件包下创建文件a.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/javaweb/demo2" method="post">
    <input name="username"><input type="submit">
</form>
</body>
</html>

action是路径,javaweb是我tomcat打开请求的路径,在打开的网页中把路经从http://localhost:8080/javaweb/demo2改http://localhost:8080/javaweb/a.html

package com.web;


import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

public class servletDemo3 implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
    //根据请求方式的不同,进行分别的处理
        HttpServletRequest request=(HttpServletRequest) req;

        //1获取请求方式
        String method=request.getMethod();
        //2.判断
        if("GET".equals(method)){
            //get方式处理逻辑

            doGET(req,res);
        }else if("POST".equals(method)){
            //post方式处理逻辑
            doPOST(req,res);
        }
    }

    protected void doPOST(ServletRequest req, ServletResponse res) {
    }

    protected void doGET(ServletRequest req, ServletResponse res) {
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

后面如果要使用自己的Servlet,就可以创建子类去继承这个类

package com.web;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;


@WebServlet("/demo3")
public class myHttpservlet extends servletDemo3 {

    @Override
    protected void doGET(ServletRequest req, ServletResponse res) {
        System.out.println("get....");
    }

    @Override
    protected void doPOST(ServletRequest req, ServletResponse res) {
        System.out.println("post...");
    }
}

四、总结

在这里插入图片描述

五、servlet urlPattern配置

urlPattern就是访问路径
在这里插入图片描述

package com.web;

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;

//配置多路径
@WebServlet({"/demo4","/demo5"})
public class servletDemo4 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("get...");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

访问路径demo4和demo5都可以
在这里插入图片描述

六、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-name>demo5</servlet-name>
        <servlet-class>com.web.servletDemo5</servlet-class>
    </servlet>
    <!--Servlet访问路径-->
    <servlet-mapping>
        <servlet-name>demo5</servlet-name>
        <url-pattern>/demo5</url-pattern>
    </servlet-mapping>
</web-app>
package com.web;

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

public class servletDemo5 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("demo5  get....");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值