Java_servlet基础

作者:@kuaiquxie
作者的github:https://github.com/bitebita
本文为作者原创,如需转载,请注明出处:https://www.cnblogs.com/dzwj/p/16084336.html


复制代码
package com.xx.servlet;

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("/s01")
public class Servlet01 extends HttpServlet {
    /**
     * 处理请求数据
     */
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("hello servlet!");
        response.getWriter().write("hello servlet!");
    }

    /**
     * 创建Servlet
     * @throws ServletException
     */
    @Override
    public void init() throws ServletException {
        System.out.println("Servlet被调用了");
    }

    /**
     * 销毁Servlet
     */
    @Override
    public void destroy() {
        System.out.println("Servlet被销毁了");
    }

}
复制代码

 

 

复制代码
package com.xx.servlet;

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.ArrayList;
import java.util.List;

@WebServlet("/s02")
public class Servlet02 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("Servlet02...");
        //request对象 获取客户端数据
        //response对象 向客户端输出数据
        request.setAttribute("name","admin");

        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        request.setAttribute("list",list);

        //请求转发跳转到Servlet03
        request.getRequestDispatcher("s03").forward(request,response);
//      请求转发跳转到index.jsp
//      request.getRequestDispatcher("index.jsp").forward(request, response);
    }



}
复制代码

 

 

复制代码
package com.xx.servlet;

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.List;

@WebServlet("/s03")
public class Servlet03 extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        System.out.println("Servlet03...");
        //获取对象数据
        String name = (String) request.getAttribute("name");
        System.out.println("name:" + name);

        List<String> list = (List<String>) request.getAttribute("list");
        System.out.println(list);


    }



}
复制代码

 

 

复制代码
package com.xx.servlet;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
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.io.PrintWriter;

@WebServlet("/s04")
public class Servlet04 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//        输出字符流
        /*PrintWriter writer = response.getWriter();
        writer.write("hello");*/
//输出字节流
        ServletOutputStream out = response.getOutputStream();
        out.write("zijie".getBytes());
    }
}
复制代码

 

 

复制代码
package com.xx.servlet;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
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.io.PrintWriter;

@WebServlet("/s05")
public class Servlet05 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

/*//        设置服务端编码格式
        response.setCharacterEncoding("UTF-8");
//        设置客户端编码格式
        response.setHeader("content-type","text/html;charset=UTF-8");*/
//        同时设置服务端和客户端的编码格式
        response.setContentType("text/html; charset=UTF-8");
        //        输出字符流
        PrintWriter writer = response.getWriter();
        writer.write("<h2>你好字符流</h2>");

    }
}
复制代码

 

 

复制代码
package com.xx.servlet;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
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.io.PrintWriter;

@WebServlet("/s06")
public class Servlet06 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

/*//        设置服务端编码格式
        response.setCharacterEncoding("UTF-8");
//        设置客户端编码格式
        response.setHeader("content-type","text/html;charset=UTF-8");
//        同时设置服务端和客户端的编码格式
        response.setContentType("text/html; charset=UTF-8");*/
        //输出字节流
        ServletOutputStream out = response.getOutputStream();
        out.write("<h2>你好字节流</h2>".getBytes());

    }
}
复制代码

 

重定向
复制代码
package com.xx.servlet;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
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("/s07")
public class Servlet07 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//        第一次请求
        System.out.println("Servlet07");

//        是否共享数据
        String uname = request.getParameter("uname");
        System.out.println("s07" + uname);
//        重定向
        response.sendRedirect("s08");



    }
}
复制代码

 

重定向
复制代码
package com.xx.servlet;

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("/s08")
public class Servlet08 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//        第二次请求
        System.out.println("Servlet08");
        //        是否共享数据
        String uname = request.getParameter("uname");
        System.out.println("s07" + uname);
//        重定向不共享数据




    }
}
复制代码

 

请求转发和重定向的区别
复制代码
package com.xx.servlet;

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("/s09")
public class Servlet09 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("Servlet09");
//        接收参数
        String uname = request.getParameter("uname");
        System.out.println(uname);
//        设置request域对象
        request.setAttribute("upwd","123456");
/**
* 请求转发和重定向的区别
* 1.请求转发的地址栏不会发生改变,重定向会
* 2.请求转发只有一次请求
* 3.请求转发时request对象可共享,重定向时不共享
* 4.请求转发是服务端行为,重定向是客户端行为
* 5.请求转发时的地址是当前项目下的资源,重定向时地址可以是任何地址
*/
/**
 * 共享request对象只能用请求转发
 * 跳转   两者都可以用
 * 跳转地址不是当前项目下的,只能用重定向
 */
//请求转发
//        request.getRequestDispatcher("index02.jsp").forward(request, response);

//重定向
//        response.sendRedirect("index02.jsp");

//重定向到百度(可以找到任何资源)
//        response.sendRedirect("http://www.baidu.com");

//请求转发到百度(当前资源下找不到)
        request.getRequestDispatcher("http://www.baidu.com").forward(request, response);




    }
}
复制代码

 

posted @   kuaiquxie  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示