Tomact和Servlet入门

Tomcat目录结构:

本机ip地址:

启动时可能遇到的问题:

Servlet入门:

web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>test_1</servlet-name>
        <servlet-class>Servlet_java.test_1</servlet-class>
         //使用接口类的完整路径
    </servlet>
    <servlet-mapping>
        <servlet-name>test_1</servlet-name>
        <url-pattern>/test_1</url-pattern>
    </servlet-mapping>
</web-app>

实现类:

package Servlet_java;

import javax.servlet.*;
import java.io.IOException;

public class test_1 implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        //提高服务的方法
        System.out.println("hello world");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}


@WebServlet("/test_HttpServlet")
//浏览器中要访问的路径,也就是说,这个是什么,浏览器域名访问时,这个文件的名称就是这个,而不是类名

package demo1;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/test_HttpServlet")
//浏览器中要访问的路径,也就是说,这个是什么,浏览器域名访问时,这个文件的名称就是这个,而不是类名
public class test_HttpServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet.......");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doPost.......");
    }
}

package demo1;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/test_Request")
public class test_Request extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String method = request.getMethod();
        //获取请求方式
        System.out.println(method);

        String contextPath = request.getContextPath();
        //获取虚拟目录
        System.out.println(contextPath);

        String servletPath = request.getServletPath();
        //获取Servlet路径
        System.out.println(servletPath);

        String queryString = request.getQueryString();
        //获取get方式请求参数
        System.out.println(queryString);

        StringBuffer requestURL = request.getRequestURL();
        //获取请求URL
        System.out.println(requestURL);

        String requestURI = request.getRequestURI();
        //获取请求URI
        System.out.println(requestURI);

        String protocol = request.getProtocol();
        //获取协议及版本
        System.out.println(protocol);

        String remoteAddr = request.getRemoteAddr();
        //获取客户机的ip地址
        System.out.println(remoteAddr);


    }
}

运行结果:

GET
/Java_Servelt_war_exploded
/test_Request
null
http://localhost:8080/Java_Servelt_war_exploded/test_Request
/Java_Servelt_war_exploded/test_Request
HTTP/1.1
0:0:0:0:0:0:0:1

应用场景:可以解决盗版网站盗取正版网站资源链接的问题 

package demo1;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;

@WebServlet( "/test_request_4")
public class test_request_4 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String referer = request.getHeader("referer");
        //获取访问的路径
        System.out.println(referer);

        if(referer != null){
            if(referer.contains("Java_Servelt_war_exploded")){
                //判断是否是由正确的路径而来,只要包含字符串路径就可以

                response.setContentType("text/html;charset=utf-8");
                //将文字直接打印在页面上
               response.getWriter().write("播放资源");
            }else {
                response.setContentType("text/html;charset=utf-8");
                //将文字直接打印在页面上
                response.getWriter().write("请去官网。。。。。");
            }

        }

    }
}

package demo1;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;

@WebServlet( "/test_request_5")
public class test_request_5 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        BufferedReader reader = request.getReader();
        //获取请求消息体,即请求参数
        String line = null;
        while ((line=reader.readLine())!=null){
            System.out.println(line);
        }


    }
}

package demo1;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Map;
import java.util.Set;

@WebServlet( "/test_request_6")
public class test_request_6 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置流的编码
        request.setCharacterEncoding("utf-8");

         //根据参数名称获取参数值
        String password = request.getParameter("password");
        System.out.println("post");
        System.out.println(password);
        System.out.println("---------------------------------");

        Map<String, String[]> parameterMap = request.getParameterMap();
        //获取参数的键值对
        Set<String> strings = parameterMap.keySet();
        //获取所有的键
        for(String name : strings){
            String[] values = parameterMap.get(name);
            //通过键,获取所有的值
            System.out.println(name);

            for(String value: values){
                //遍历所有的值
                System.out.println(value);
            }
        }

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //根据参数名称获取参数值
       this.doPost(request,response);

    }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/Java_Servelt_war_exploded/test_request_6" method="get">
<!--    使用test_request_5类中的方法,与method的参数有关,post则是使用doPost方法-->
    <input type="text" name="username" placeholder="请输入用户名"><br>
    <input type="text" name="password" placeholder="请输入密码"><br>

    <input type="checkbox" name="hobby" value="game">游戏
    <input type="checkbox" name="hobby" value="study">学习<br>

    <input type="submit" value="注册">

</form>
</body>
</html>

package demo1;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet( "/test_request_8")
public class test_request_8 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("8.........");
        request.getRequestDispatcher("/test_request_9").forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //根据参数名称获取参数值
       this.doPost(request,response);

    }
}

package demo1;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet( "/test_request_8")
public class test_request_8 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      //将msg键值对存储到request域中
      request.setAttribute("msg","hello");

        System.out.println("8.........");
        request.getRequestDispatcher("/test_request_9").forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);

    }
}

package demo1;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet( "/test_request_10")
public class test_request_10 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext servletContext = request.getServletContext();
        System.out.println(servletContext);  //org.apache.catalina.core.ApplicationContextFacade@67b89a4d
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值