package com.txt.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("/servletDemo01")
public class ServletDemo01 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1.获取虚拟目录名称String contextPath = req.getContextPath();System.out.println(contextPath);//2.获取Servlet映射路径String servletPath = req.getServletPath();System.out.println(servletPath);//3.获取访问者ipString ip = req.getRemoteAddr();System.out.println(ip);//4.获取请求消息数据String queryString = req.getQueryString();System.out.println(queryString);//5.获取统一资源标识符String requestURI = req.getRequestURI();System.out.println(requestURI);//6.获取统一资源定位符StringBuffer requestURL = req.getRequestURL();System.out.println(requestURL);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
package com.txt.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.Enumeration;@WebServlet("/servletDemo02")
public class ServletDemo02 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//根据请求头名称获取一个值String connection = req.getHeader("connection");System.out.println(connection);System.out.println("-----------------------");//根据请求头的名称获取多个值Enumeration headers = req.getHeaders("accept-encoding");while(headers.hasMoreElements()){String header = headers.nextElement();System.out.println(header);}System.out.println("-----------------------");//获取所有的请求头名称Enumeration names = req.getHeaderNames();while (names.hasMoreElements()){String name = names.nextElement();String value = req.getHeader(name);System.out.println(name + ":" +value);}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
package com.txt.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.Enumeration;
import java.util.Map;@WebServlet("/servletDemo03")
public class ServletDemo03 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1. 根据名称获取数据String username = req.getParameter("username");System.out.println(username);String pwd = req.getParameter("pwd");System.out.println(pwd);System.out.println("---------------------------------");//2.根据名称获取所有数据String[] hobbies = req.getParameterValues("hobby");for (String hobby : hobbies){System.out.println(hobby);}System.out.println("---------------------------------");//3.获取所有名称Enumeration names = req.getParameterNames();while(names.hasMoreElements()){String name = names.nextElement();System.out.println(name);}System.out.println("---------------------------------");//获取所有参数的键值对Map map = req.getParameterMap();for (String key : map.keySet()){String[] values = map.get(key);System.out.print(key + ":");for (String value : values){System.out.print(value + " ");}System.out.println();}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
package com.txt.servlet;import com.txt.bean.Student;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;
import java.util.Map;@WebServlet("/servletDemo04")
public class ServletDemo04 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1.获取所有的数据String username = req.getParameter("username");String pwd = req.getParameter("pwd");String[] hobbies = req.getParameterValues("hobby");//2.封装学生对象Student stu = new Student(username,pwd,hobbies);//输出对象System.out.println(stu);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}//学生类
package com.txt.bean;import java.util.Arrays;public class Student {private String username;private String pwd;private String[] hobby;public Student() {}public Student(String username, String pwd, String[] hobby) {this.username = username;this.pwd = pwd;this.hobby = hobby;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public String[] getHobby() {return hobby;}public void setHobby(String[] hobby) {this.hobby = hobby;}@Overridepublic String toString() {return "Student{" +"username='" + username + '\'' +", pwd='" + pwd + '\'' +", hobby=" + Arrays.toString(hobby) +'}';}
}
package com.txt.servlet;import com.txt.bean.Student;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.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Map;//反射封装方式
@WebServlet("/servletDemo05")
public class ServletDemo05 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1.获取所有的数据Map map = req.getParameterMap();//2.封装学生对象Student stu = new Student();//2.1 遍历集合for (String name : map.keySet()){String[] value = map.get(name);//2.2 获取 Student对象的属性描述器try {PropertyDescriptor pd = new PropertyDescriptor(name,stu.getClass());//2.3 获取对应的setXxx方法Method writeMethod = pd.getWriteMethod();//执行方法if (value.length > 1){writeMethod.invoke(stu,(Object) value);}else {writeMethod.invoke(stu,value);}} catch (Exception e) {e.printStackTrace();}}//输出对象System.out.println(stu);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
我们需要引入jar包
package com.txt.servlet;import com.txt.bean.Student;
import org.apache.commons.beanutils.BeanUtils;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.beans.PropertyDescriptor;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Map;//工具类封装方式
@WebServlet("/servletDemo06")
public class ServletDemo06 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1.获取所有的数据Map map = req.getParameterMap();//2.封装学生对象Student stu = new Student();try {BeanUtils.populate(stu,map);} catch (Exception e) {throw new RuntimeException(e);}//输出对象System.out.println(stu);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
package com.txt.servlet;import com.txt.bean.Student;
import org.apache.commons.beanutils.BeanUtils;import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
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;@WebServlet("/servletDemo07")
public class ServletDemo07 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//字符流(必须是post方式)/*BufferedReader br = req.getReader();String line;while ((line = br.readLine()) != null){System.out.println(line);}*///字节流ServletInputStream is = req.getInputStream();byte[] arr = new byte[1024];int len;while ((len = is.read(arr)) != -1){System.out.println(new String(arr,0,len));}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
package com.txt.servlet;import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
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("/servletDemo08")
public class ServletDemo08 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("UTF-8");String username = req.getParameter("username");System.out.println(username);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
package com.txt.servlet;import javax.servlet.RequestDispatcher;
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("/servletDemo09")
public class ServletDemo09 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//设置共享数据req.setAttribute("encoding","gbk");//获取请求调度对象RequestDispatcher rd = req.getRequestDispatcher("/servletDemo10");//实现转发功能rd.forward(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
servletDemo10:
package com.txt.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("/servletDemo10")
public class ServletDemo10 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取共享数据Object encoding = req.getAttribute("encoding");System.out.println(encoding);System.out.println("servletDemo10 执行了...");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
package com.txt.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.nio.charset.StandardCharsets;@WebServlet("/servletDemo01")
public class ServletDemo01 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//解决乱码问题resp.setContentType("text/html;charset=UTF-8");//获取字节流输出对象ServletOutputStream os = resp.getOutputStream();//定义一个消息String str = "你好";//通过字节流对象输出os.write(str.getBytes(StandardCharsets.UTF_8));}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
package com.txt.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;
import java.nio.charset.StandardCharsets;
//字符流响应消息
@WebServlet("/servletDemo02")
public class ServletDemo02 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//解决乱码问题resp.setContentType("text/html;charset=UTF-8");//获取字符输出流对象PrintWriter pw = resp.getWriter();//准备一个消息String str = "你好";//通过字符输出流输出pw.write(str);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
package com.txt.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.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;//响应图片
@WebServlet("/servletDemo03")
public class ServletDemo03 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//通过文件相对路径获取绝对路径String realPath = getServletContext().getRealPath("/img/qiu.jpg");// 1. 创建字节输入流对象,关联读取的图片路径BufferedInputStream bis = new BufferedInputStream(new FileInputStream(realPath));// 2. 通过响应对象获取字节输出流对象ServletOutputStream os = resp.getOutputStream();// 3. 循环读取和写出图片byte[] bys = new byte[1024];int len;while ((len = bis.read(bys)) != -1){os.write(bys,0,len);}//释放资源bis.close();}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
package com.txt.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.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;//设置缓存
@WebServlet("/servletDemo04")
public class ServletDemo04 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String news = "这是一条很火爆的新闻";//设置缓存 1小时的缓存时间resp.setDateHeader("Expires",System.currentTimeMillis() + 60 * 60 * 1000);//设置编码resp.setContentType("text/html;charset=UTF-8");//写出数据resp.getWriter().write(news);System.out.println("aaa");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
package com.txt.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("/servletDemo05")
public class ServletDemo05 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String str = "您的用户名和密码有误,3秒后自动跳转到登录页面";//设置编码格式resp.setContentType("text/html;charset=UTF-8");//写数据resp.getWriter().write(str);resp.setHeader("Refresh","3;URL=/response/login.html");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
package com.txt.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("/servletDemo06")
public class ServletDemo06 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("servletDemo06 执行了...");//设置共享数据req.setAttribute("username","zhangsan");//请求重定向resp.sendRedirect(req.getContextPath() + "/servletDemo07");// resp.sendRedirect("https://www.baidu.com");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
ServletDemo07
package com.txt.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("/servletDemo07")
public class ServletDemo07 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("servletDemo07 执行了...");//获取共享数据Object username = req.getAttribute("username");System.out.println(username);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
package com.txt.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.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;//文件下载
@WebServlet("/servletDemo08")
public class ServletDemo08 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1. 创建字节输入流,关联读取文件String realPath = getServletContext().getRealPath("/img/qiu.jpg");BufferedInputStream bis = new BufferedInputStream(new FileInputStream(realPath));// 2. 设置响应消息头支持的类型resp.setHeader("Content-Type","application/octet-stream");// 3. 设置响应消息头以下载方式打开资源resp.setHeader("Content-Disposition","attachment;filename=qiu.jpg");// 4. 通过响应对象获取字节输出流对象ServletOutputStream os = resp.getOutputStream();
// 5. 循环读写byte[] bys = new byte[1024];int len;while ((len = bis.read(bys)) != -1){os.write(bys,0,len);}
// 6. 释放资源bis.close();}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
上一篇: 圣诞老人的故事