zoukankan      html  css  js  c++  java
  • 关于web技术的学习

    Servlet

    1Tomcat的目录结构

    2:发布第一个项目

       在webapps目录下,创建一个目录,这个目录必须要按JavaEE结构来创建:

       Project

          index.html

          WEB-INF

              web.xml

              classes

              Lib

    1:发布的方式1

      放到webapps目录下

    2:发布方式2

       放到一个独立的目录下,在server.xml文件中引用:

       

    3:独立的配置文件

    4:配置虚拟主机

     将上面的项目配置城 :www.inkeeper.com

    配置DNS

    配置虚拟主机:

       <Host name="www.inkeeper.com"  appBase="d:/a"

                unpackWARs="true" autoDeploy="true">

            </Host>

    tomcat中默认的主项目是ROOT

      

    3:Eclipse集成

    步1:添加tomcat服务器

    添加完成以后:

    步2:添加一个项目-服务器项目

    启动:

      

    4:在Eclipse中开发第一个HelloWordweb项目

    步1:创建web项目

    步2:查看创建的项目的结构

    直接点右键运行为:

    5JavaWeb开发中的三大组件

    Filter - 级别最高

    Listener级别第二

    Servlet级别第三 - 》从这儿开始学习。

      上面的这三大组件,都是接口,要求程序员去实现它们。由Tomcat/也叫Servlet容器去实例化这此类。

    显示服务器的时间:

       JS脚本 : 不能,因为JS运行在客户端面,显示的是客户的时间.

       显示服务器的时间,必须要使用java代码。

    6Servlet

       Servlet是个组件

       用于生成动态的页面

       接收用户的请求给用户输出响应。

       ServletServer+Let的组合是指 服务上的小程序。

    1:查看Servlet的api

    JDK.chmJavaSE开发。

    ServletJavaSE开发。所以要查另一个套api,且在JDK里面没有Servlet这个类。

    查看:

       

    javax.servlet
    Interface Servlet

    Defines methods that all servlets must implement.定义了一些方法,所有子类,必须要实现这些方法。

    A servlet is a small Java program that runs within a Web server. Servlets receive and respond to requests from Web clients, usually across

    一个Servlet就是一个Java小程序,它运行在javaweb服务器,Tomcat。接收响应请求通过客户端 。经常是通过http协议。

    HTTP, the HyperText Transfer Protocol. (超文本传输协议 HTML

     

     

    HTTP协议 - 文本格式:

       请示协议:

         GET(请求类型Get|post)  /index.html(请示资源)  HTTP/1.1  -- >请求首行

         Host : www.baidu.com:80  请求头 有很多多的..

          ...

         ..

         [空行]

         请求正文 GET方式这儿没有数据,POST方式这儿才会有数据

          

       响应协议

          HTTP/1.1  200 (响应码)  OK

          响应头

          Server:...

         空行

         正文

     

    HTTP协议是无状态协议

       

     

     

    步1:开发一个类实现接口

    public class OneServlet implements Servlet {

    /**

     * 此方法 是初始化方法当这个类,被实例化以后,由Tomcat容器来调用这个方 <br>

     * 只会被调用一次

     */

    @Override

    public void init(ServletConfig config) throws ServletException {

    System.err.println("初始化了:" + this);

    }

    /**

     * 为用户提供服务的方法,用户每一次调用,都会执行此方法

     */

    @Override

    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {

    // 设置响应的类型为

    res.setContentType("text/html;charset=UTF-8");

    // 获取输出到浏览器的输出流

    PrintWriter out = res.getWriter();

    String str = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());

    // 输出给

    System.err.println("service this:" + this);

    out.print("<b>当前的时间是:</b>" + str);

    }

    @Override

    public void destroy() {

    // Tomcat关闭时,由Tomcat来调用的方法,用于清理某些资源

    // 只会被调用一次

    System.err.println("destory:" + this);

    }

    步2:将它配置到web.xml中

    <!-- 配置第一个Servlet -->

    <servlet>

    <!--声明任意的名称 -->

    <servlet-name>one servlet</servlet-name>

    <!-- 指定类的名称 -->

    <servlet-class>cn.inkeeper.OneServlet</servlet-class>

    </servlet>

    <!-- 配置如何访问 -->

    <servlet-mapping>

    <!-- 引用上面的声明的名称 -->

    <servlet-name>one servlet</servlet-name>

    <!-- 配置访问的url -->

    <url-pattern>/one.html</url-pattern>

    </servlet-mapping>

    步3:访问

    http://localhost/helloworld/one.html

    7Servlet的访问过程

    8Servlet的实例化时间和实例化个数

    实例化时间

       默认的所有servlet在项目启动时,不会实例化。

       在用户第一次访问时实例化且初始化。

    实例化个数:

    Servlet默认是单一的实例,由Tomcat通过反射实例化,由Tomcat调用初始化方法。

         

    9Servlet的生命周期方法

    生命周期的初始化方法 ,必须要叫以下的名称,必须要接收以下类型的参类:

    此方法只会被调用一次:

    @Override

    public void init(ServletConfig config) throws ServletException {

    System.err.println("初始化了:" + this);

    }

    以下是生命周期中提供服务的方法,用户每一次请求服务器,都会调用这个方法 :

    @Override

    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {

    当Tomcat关闭时,由Tomcat来调用的方法,用于清理某些资源 - 也只会执行次

    @Override

    public void destroy() {

    // Tomcat关闭时,由Tomcat来调用的方法,用于清理某些资源

    // 只会被调用一次

    System.err.println("destory:" + this);

    }

    10:通过上面的讲解

    两个点:

       1Servlet是单例的。是由Tomcat容器实例化这个类,且由 Tomcat服务器维护这个Serv let的实例。

       2Servlet的生命周期:

          Init(ServletCOnfig)

          Service(req,resp)

          Destory();

    配置的方式:

         1:声明一个类实现接口

         2:将这个类配置到web.xml中去<servlet><servlet-mapping>

         3 : 通过<url-pattern>/one 访问的是....../one

    11:快速示例

    用户注册功能:

    思想:

       1:开发一个注册的页面。<form>

       2:在后台接收数据 开发一个Servlet接收用户传递的数据。

    步1:开发注册的页面

    <form method="post" action="reg">

    <p>请注册</p>

    <table>

    步2:开发Servlet接收用户的注册

    public class RegiestServlet implements Servlet {

    @Override

    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {

    //1:设置编码类型

    req.setCharacterEncoding("UTF-8");

    //2:接收用户的参数<input type="text" name="name"/>中的"name"

    String name = req.getParameter("name");

    String pwd = req.getParameter("pwd");

    String sex = req.getParameter("sex");

    String major = req.getParameter("major");

    //3:显示

    res.setContentType("text/html;charset=UTF-8");//设置响应的格式

    //获取输出对象

    PrintWriter out =

    res.getWriter();

    out.print("姓名是:"+name+"<hr>");//

    out.print("密码是:"+pwd+"<hr>");

    out.print("性别是:"+sex+"<hr>");

    out.print("学历:"+major+"<hr>");

    }

    步3:配置

    <!-- 配置第二个servlet -->

    <servlet>

    <servlet-name>regServlet</servlet-name>

    <servlet-class>cn.inkeeper.RegiestServlet</servlet-class>

    </servlet>

    <!-- 配置如何访问 -->

    <servlet-mapping>

    <servlet-name>regServlet</servlet-name>

    <url-pattern>/reg</url-pattern>

    </servlet-mapping>

    <form method="post" action="reg">

    <p>请注册</p>

    <table>

  • 相关阅读:
    android matrix
    canvas变换
    Gradle常用命令
    android View实现变暗效果
    常用设计模式
    Android无埋点数据收集SDK关键技术
    如何打开小米,oppo,华为等手机的系统应用的指定页面
    Android 性能优化
    SpringBoot入坑-请求参数传递
    SpringBoot入坑-配置文件使用
  • 原文地址:https://www.cnblogs.com/carsar/p/5515682.html
Copyright © 2011-2022 走看看