JavaWeb学习笔记(8)

用Eclipse部署JavaWeb项目

下面是在Eclipse中跑web项目时一个路径

C:\Users\10301\Desktop\gz-java01\03.JavaWeb\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0

URL: 统一资源定位符(网址)

URI: 统一资源标识符

http://localhost:8080/hello/1.html

协议  主机IP(端口号) URI(当前应用的资源路径)

用Tomcat的管理平台管理Web应用的生命周期

Tomcat的管理平台是Tomcat本身的一个Web应用,管理平台对应manager应用,它位于Tomcat安装目录/webapps/manager目录下。

manager应用会对用户进行安全验证。它要求用户具有manager角色。因此,应该先在Tomcat中添加具有manager角色的用户信息,方法为打开Tomcat安装目录/conf/tomcat-users.xml文件,在其中增加以下内容:

<tomcat-users>

         <role rolename="manager-gui"/>

<user username="tomcat" password="123456" roles="manager-gui"/>

</tomcat-users>

然后登录到后台,点击下图瓣ManagerApp

在控制台使用mysqldump命令可以用来生成指定数据库的脚本文本,但要注意,脚本文本中只包含数据库的内容,而不会存在创建数据库的语句!所以在恢复数据时,还需要自已手动创建一个数据库之后再去恢复数据。

  mysqldump –u用户名 –p密码 数据库名>生成的脚本文件路径

Servlet 

  • Servlet作用处理请求
  • 当浏览器访问一个http://localhost:8080/hello/hello 路径,就向tomcat发送一个请求

1.4 Servlet生命周期(重要)

  • Servlet生命周期四个状态:实例化-->初始化-->服务->销毁
  • 出生:(实例化-->初始化)第一次访问Servlet就出生(默认情况下)
  • 活着:(服务)应用活着,servlet就活着
  • 死亡:(销毁)应用卸载了servlet就销毁。
package com.zx.web.servlet;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class HelloServlet implements Servlet{

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
    }

    public HelloServlet() {
        System.out.println("Hello Servlet");
    }
    
    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        System.out.println("销毁");
    }

    @Override
    public ServletConfig getServletConfig() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String getServletInfo() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void init(ServletConfig config) throws ServletException {
        // TODO Auto-generated method stub
        System.out.println("初始化init");
    }

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("服务Service");
        //返回结果给客户端
        res.getWriter().write("Hello Servlet");
    }

}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>hello</display-name>
  <!-- 配置Servlet,也就是配置一个请求路径 -->
  <servlet>
      <servlet-name>HelloServlet</servlet-name>
      <servlet-class>com.zx.web.servlet.HelloServlet</servlet-class>
      <load-on-startup>2</load-on-startup>
  </servlet>
  <!-- 映射 -->
  <servlet-mapping>
      <servlet-name>HelloServlet</servlet-name>
      <url-pattern>/hello</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

Servlet实现的三种方式

  • 实现javax.servlet.Servlet接口
  • 继承javax.servet.GenericServlet类(适配器模式)

  • 继承javax.servlet.http.HttpServlet类(模板方法设计模式)

package com.zx.web.servlet;

import java.io.IOException;

import javax.servlet.GenericServlet;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class HelloServlet3 extends GenericServlet{

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        // TODO Auto-generated method stub
        res.getWriter().write("hello");
    }

    

}
package com.zx.web.servlet;

import java.io.IOException;

import javax.servlet.GenericServlet;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet{
    
    /**
     * get请求
     */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //响应给客户端
        resp.getWriter().write("hello Servlet---");
    }
}

url-pattern: *.do  以*.字符串的请求都可以访问 注:不要加/

url-pattern: /*  任意字符串都可以访问

url-pattern: /action/* 以/action开头的请求都可以访问

匹配规则:

优先级:从高到低

绝对匹配-->  /开头匹配 --> 扩展名方式匹配

如果url-pattern的值是/,表示执行默认映射。所有资源都是servlet

猜你喜欢

转载自www.cnblogs.com/zhangwugai/p/11264437.html