servlet 介绍和简单使用

1,servle介绍:

html+css+js

Servlet:用来开发动态web的技术

属于javaee规范

【1】,javaEE Servers创建项目 

    a,new Dynamic Web Project 

servlet 介绍和简单使用_第1张图片

    2,配置文件直接点下一步:

servlet 介绍和简单使用_第2张图片

3,填写网站的名称,内容确定进行创建成功

servlet 介绍和简单使用_第3张图片

4,关联自己的服务器

 

完成

servlet 介绍和简单使用_第4张图片

 

 

2,servle 的使用  

【1】手动导入

servlet使用步骤

[1]写一个类继承httpServlet

[2]重写doGet和doPost方法

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

System.out.println("doget");

PrintWriter writer = resp.getWriter();

writer.println("");

writer.println("");

 

writer.println("Hello Servlet");

 

writer.println("");

writer.println("");

 

}

[3]配置servlet

web.xml中的配置

Hello

类的全类名

 

要与配置的servlet匹配

浏览器要访问的路径

servlet 介绍和简单使用_第5张图片

 

【2】自动导入

    new  Servle   会自动导包 清单文件会自动生成

    servlet 介绍和简单使用_第6张图片

    

    配置访问文件

servlet 介绍和简单使用_第7张图片2,取消继承的方法fhish,查看清单目录自动配置

servlet 介绍和简单使用_第8张图片

2,servle的执行流程:

servlet运行机制

[1]发送一个请求 http://localhost:8080/02_range/hello

[2]tomcat解析是哪个应用程序

[3]找到这个应用程序 并且解析 web.xml

[4]解析web.xml里面的url-pattern 比对成功的话 解析 servlet-name

[5]通过这个servlet-name 找到这个Servlet这个类

 

 

利用eclipse提供的Servlet创建Servlet

servlet 介绍和简单使用_第9张图片

*处理bug网页打不开,出现404错误

servlet 介绍和简单使用_第10张图片

解决方法 重写类中实现的方法  init doget  一定要去除 doget 和dopost  里面的super()方法

3,servle的生命周期

[1]构造方法

[2]init方法初始化 只会创建的时候执行一次

[3]处理客户端对service的调用 多次请求 多次调用

[4]service

[5]销毁servlet

doget 和 doPost   构造方法中直接使用。父类执行

 

servlet有俩种方式 会启动

1.正常的请求 会启动servlet

2.让tomcat启动的时候就去加载servlet 需要在web.xml里面配置 很少用因为生命周期太长了

配置以后启动tomcat 直接调用service 方法 service 会按请求方式调用doget 或者 dopost方法

LifeServlet

com.heima.life.LifeServlet

1 他的级别只有1-9

 

4,url - pattern 的三种写法

web.xml 下url路径更改写法,依然可以访问资源

servlet 介绍和简单使用_第11张图片

[1]完全路径匹配 /hello

[2]目录匹配 /*

[3]扩展名匹配 *.do *.action

注意字符串的拼接,不要有两个//

优先级:完全路径匹配>目录匹配>扩展名匹配

字节流和字符流不能同时使用

 

绝对路径是从服务器端口号后面开始匹配

相对路径是从服务器应用程序后面开始匹配

相对路径: 相对于当前访问的路径 路径前面 不会加 /

绝对路径: 一个绝对的路径 路径前面 一定要加 /

项目开发常用的是绝对路径

 

99乘法表案例:

【1】创建DyNamic Web Project 项目

【2】创建Servlet服务

package com.xiaoshuai;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class CfbServlet extends HttpServlet {

      @Override

      protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

            // [1]获取请求传递过来的参数

            String str_number = req.getParameter("number");

            // [2]将请求过来的参数转成了int类型

            int number = Integer.parseInt(str_number);

            // [3]获取了一个字符流

            PrintWriter writer = resp.getWriter(); // 字符流

            // resp.getOutputStream();// 字节流    (字符流和字节流不能同时出现)

            // [4]乘法表

            for (int i = 1; i <= number; i++) {

                  for (int j = 1; j <= i; j++) {

                        writer.print(i + " * " + j + " = " + i * j + "  ");

                  }

                  writer.println();

            }     

      }

      @Override

      protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

            doGet(req, resp);

      }

}

【3】WebCOntent下创建HTML网页  

Insert title here

      

            请输入一个数:

                  value="提交">

      

 

问题:

1,web.xml 里面的和 命名.html 中 acction  不同无法关联 

2,输入网址,servlet  中 url 是一个网址  创建的 命名.html  也是一个网址。命名.html关联url路径

servlet 介绍和简单使用_第12张图片

 

servlet 介绍和简单使用_第13张图片

 

 

 

你可能感兴趣的:(JAVAEE)