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);
}
}