JavaWeb三大核心内容:

本文详细介绍了JavaWeb的核心内容Servlet,包括其特征、服务器概念、Servlet的开发步骤、执行原理及请求方式。讲解了GET和POST请求的区别,以及Servlet的生命周期。还提及了重定向、URI与URL的区分,并展示了Servlet如何处理HTTP请求。
摘要由CSDN通过智能技术生成

JavaWeb三大核心内容:

Servlet

Servlet特征:

  • Servlet是服务器端组件,必须保存在服务器上。
  • Servlet可以动态拼资源(HTML/IMG等),即处理HTTP协议。

  • Servlet必须满足Sun的规范。

  • Servlet是什么:Servlet是Sun推出的,用来在服务器端处理HTTP协议的组件。

服务器:

  1. 名称:Java 服务器、Java Web 服务器、Servlet 容器;

  2. 本质:是一个软件,需要安装在硬件上才能用和浏览器是平级的关系;

  3. 举例:Tomcat(Apache)、JBOSS、WebLogic、WebSphere。

Servlet开发步骤:

1.创建WEB项目

​ 目录:webapp/WEB-INF/web.xml

2.导入jar包

​ 通过maven导入jar包,搜javaee

​ 使用服务器自带的jar包,右键项目->target runtime->勾选tomcat

3.创建Servlet

​ 实现Servlet接口

​ 也可以继承HttpSevlet,此类已实现了Servlet接口

​ 实现/重写service(),在此方法内动态拼HTML

4.注册Servlet

​ 注册Servlet,并声明别名

​ 通过别名,给此Servlet注册网名(以/开头)

5.部署项目

​ 在Servers下选择Tomcat,右键Add and Remove

​ 在弹出框内左侧选中项目,双击移动到右侧

​ 部署:就是拷贝

6.访问Servlet

Servlet执行原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BWDaB2cq-1617885174229)(D:\文件\markdown\servlet\20170802174007533.jpg)]

Servlet工作原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hLNalJh8-1617885174232)(D:\文件\markdown\servlet\20170803180252641.jpg)]

请求方式:

  1. 介绍:浏览器向服务器发送数据的方式;

  2. GET:

  • 默认情况下所有的请求都是GET请求

  • 采用路径传参,即通过路径携带参数

  • 传参过程中参数可见,隐私性差

  • 因为路径大小有限制,所以能够传递的参数很小

  1. POST:
  • method=“post”

  • 采用实体内容传参

  • 在传参的过程中,路径上看不到参数,隐私性好

  • 实体内容专门用于传递数据,因此大小不受限制

  1. 使用场景:
  • 浏览器向服务器索取(查询)数据用GET请求

  • 浏览器向服务器提交(保存)数据用POST请求

中文乱码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QzB8f4kM-1617885174234)(D:\文件\markdown\servlet\20170803222906920.jpg)]

重定向:

  1. 格式:res.sendRedirect(“findEmp”);//findEmp是网名

  2. 原理图如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SaoApOz0-1617885174237)(D:\文件\markdown\servlet\20170806141612198.jpg)]

项目路径访问:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zFBRnc9E-1617885174238)(D:\文件\markdown\servlet\20170806145345162.jpg)]

URI和URL:

  1. 狭义(Java):

    • URI:绝对路径;

    • URL:完整路径;

    • URL包含了URI;

  2. 广义(Java/.net/php):

    • URI:资源的名称;

    • URL:资源的真名;

    • URI包含了URL;

Servlet生命周期:

  1. 第1、2、4步只能执行一次,第3步可以执行多次;

  2. 因为Servlet被Tomcat自动创建一次,因此它在Tomcat内是单例的(只有1个实例),即Servlet满足单例模式;

  3. 默认情况下,首次访问Servlet时,Tomcat会创建它,也可以修改配置文件web.xml,使得Tomcat启动时就直接创建Servlet;

  4. 启动时创建Servlet,数字1代表创建的次序:

<load-on-startup>1</load-on-startup>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NG1p2uJD-1617885174240)(D:\文件\markdown\servlet\20170806173941771.jpg)]

HttpServlet:

  1. 自定义的类继承HttpServlet类,重写service方法,Tomcat将HttpServletRequest,
HttpServletResponse传入此方法:
public class TestServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        super.service(req, res);

    }

    //...
}
  1. 调用父类,并将HttpServletRequest、HttpServletResponse两个参数传入:
public class HttpServlet {
    public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse res= (HttpServletResponse) response;
        this.service(req, res);
    }
    public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        String m = req.getMethod();
        if(m.equals("GET")) {
            doGet(req, res);
        }else if(m.equals("POST")) {
            doPost(req, res);
        }
    }		
    private void doPost(HttpServletRequest req, HttpServletResponse res) {
        // TODO

    }
    private void doGet(HttpServletRequest req, HttpServletResponse res) {
        // TODO

    }

    //...
}
  1. doGet()和doPost()默认的代码直接抛出了异常,为了强制开发者去重写他们。 若要调用它们,就必须重写;

  2. service()内去掉super.service()的目的就是不掉用它们,从而避免异常;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值