servlet 介绍和简单使用

1,servle介绍:

html+css+js

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

属于javaee规范

【1】,javaEE Servers创建项目 

    a,new Dynamic Web Project 

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

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

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("<html>");

writer.println("<body>");

writer.println("Hello Servlet");

writer.println("</body>");

writer.println("</html>");

}

[3]配置servlet

web.xml中的配置

<!-- 配置Servlet -->

<servlet>

<servlet-name>Hello</servlet-name>

<servlet-class>类的全类名</servlet-class>

</servlet>

<!-- 配置servlet访问路径 -->

<servlet-mapping>

<servlet-name>要与配置的servlet匹配</servlet-name>

<url-pattern>浏览器要访问的路径</url-pattern>

</servlet-mapping>

【2】自动导入

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

    

    

    配置访问文件

2,取消继承的方法fhish,查看清单目录自动配置

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

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

解决方法 重写类中实现的方法  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方法

<servlet>

<servlet-name>LifeServlet</servlet-name>

<servlet-class>com.heima.life.LifeServlet</servlet-class>

<load-on-startup>1</load-on-startup> 他的级别只有1-9

</servlet>

4,url - pattern 的三种写法

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

[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网页  

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

      <form action="cfb" method="get">

            请输入一个数:<input type="text" name="number" /> <input type="submit"

                  value="提交">

      </form>

</body>

</html>

问题:

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

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

猜你喜欢

转载自blog.csdn.net/Cricket_7/article/details/84097878