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); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」