2022年Jsp课时十二——回顾 Servlect的一些内容(二)

简介: 2022年Jsp课时十二——回顾 Servlect的一些内容

第五点  ServletConfig对象与  ServletContext对象

ServletConfig对象功能:获取静态数据

ServletContext对象功能:ServletContext 作用   同一个项目共享数据。

1  共享静态数据

 package com.DengLu.And.Zhu.Ce;
import java.io.IOException;
import java.io.PrintWriter;
import javax.jws.WebParam;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class ServlectZhuZeA
 * 定义静态数据:方法一
 */
@WebServlet(urlPatterns = "/ServlectZhuZeA",initParams = {
    @WebInitParam(name="用户名",value="hug")
})
public class ServlectZhuZe extends HttpServlet {
  private static final long serialVersionUID = 1L;
  /**
   * @see HttpServlet#HttpServlet()
   */
  public ServlectZhuZe() {
    super();
    // TODO Auto-generated constructor stub
  }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
   *      response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html");
    response.setCharacterEncoding("utf-8");
    /*
     * 获取静态数据
     */
    ServletConfig config=getServletConfig();
    String a=config.getInitParameter("用户名");
    ServletContext sc=getServletContext();
    //创建动态数据
    sc.setAttribute("身份账号", "360429200010080987");
    //获取动态数据
    //强制转型
    String b= (String) sc.getAttribute("身份账号");
    response.getWriter().append("<h1>ServlectZhuZeA中设置动态数据<h1>"+b);
    /**
     * 创建动态数据
     */
    /*
     * PrintWriter pw = response.getWriter();
     */
    PrintWriter pw = response.getWriter();
    pw.append("<style>");
    pw.append("*{"
        + " background-color:whitesmoke"
        + "}");
    pw.append("</style>");
    pw.append("<h1 style='color:green' align ='center' >微信注册页面</h1>"
        + "<hr>");
    pw.append("<div align ='center' style='color:black;font-size:25px'>");
    pw.append("<form action='ServlectZhuCeLogic' method='post' style='background:green;height:200px;width:400'>");
    pw.append("微信用户名:<input type='text' name='use'>" + "<br>");
    pw.append("新用户手机号:<input type='text' name='phones'>" + "<br>");
    pw.append("手机发来的验证码:<input type='text' name='xi'>" + "<br>");
    pw.append("新用户输入新密码:<input type='password' name='pw'>" + "<br>");
    pw.append("请再次输入新密码:<input type='password' name='pws'" + "<br>"+
     "<br>" );
    pw.append("<input type='submit' value='注册'>");
    pw.append("</form>");
    pw.append("</div>");
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
   *      response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Day04JSp</display-name>
  <welcome-file-list>
  <!--   <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file> -->
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>B.jsp</welcome-file>
   <!--  <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file> -->
  </welcome-file-list>
  <!-- 每一个servlet自己静态数据<init-param>-->
  <context-param>
  <param-name>lq</param-name>
  <param-value>篮球</param-value>
  </context-param>
  <context-param>
  <param-name>zq</param-name>
  <param-value>足球</param-value>
  </context-param>
</web-app>

2  共享动态数据 写在java代码

 package com.DengLu.And.Zhu.Ce;
import java.io.IOException;
import java.io.PrintWriter;
import javax.jws.WebParam;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class ServlectZhuZeA
 * 定义静态数据
 */
@WebServlet(urlPatterns = "/ServlectZhuZeA",initParams = {
    @WebInitParam(name="用户名",value="hug")
})
public class ServlectZhuZe extends HttpServlet {
  private static final long serialVersionUID = 1L;
  /**
   * @see HttpServlet#HttpServlet()
   */
  public ServlectZhuZe() {
    super();
    // TODO Auto-generated constructor stub
  }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
   *      response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html");
    response.setCharacterEncoding("utf-8");
    /*
     * 获取静态数据
     */
    ServletConfig config=getServletConfig();
    String a=config.getInitParameter("用户名");
    ServletContext sc=getServletContext();
    //创建动态数据
    sc.setAttribute("身份账号", "360429200010080987");
    //获取动态数据
    //强制转型
    String b= (String) sc.getAttribute("身份账号");
    response.getWriter().append("<h1>ServlectZhuZeA中设置动态数据<h1>"+b);
    /**
     * 创建动态数据
     */
    /*
     * PrintWriter pw = response.getWriter();
     */
    PrintWriter pw = response.getWriter();
    pw.append("<style>");
    pw.append("*{"
        + " background-color:whitesmoke"
        + "}");
    pw.append("</style>");
    pw.append("<h1 style='color:green' align ='center' >微信注册页面</h1>"
        + "<hr>");
    pw.append("<div align ='center' style='color:black;font-size:25px'>");
    pw.append("<form action='ServlectZhuCeLogic' method='post' style='background:green;height:200px;width:400'>");
    pw.append("微信用户名:<input type='text' name='use'>" + "<br>");
    pw.append("新用户手机号:<input type='text' name='phones'>" + "<br>");
    pw.append("手机发来的验证码:<input type='text' name='xi'>" + "<br>");
    pw.append("新用户输入新密码:<input type='password' name='pw'>" + "<br>");
    pw.append("请再次输入新密码:<input type='password' name='pws'" + "<br>"+
     "<br>" );
    pw.append("<input type='submit' value='注册'>");
    pw.append("</form>");
    pw.append("</div>");
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
   *      response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}

3  共享文件数据

package com.Servlect;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
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;
/**
 * Servlet implementation class Servlet3
 */
@WebServlet("/Servlet3")
public class Servlet3 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
      * 图片的下载
     */
    public Servlet3() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 使用对象完成图片的下载
    //设置servlet发送的数据支撑HTML格式
    response.setContentType("text/html");
        //设置发送servlet 浏览html格式 utf-8
    response.setCharacterEncoding("UTF-8");
    //设置响应头
    response.setHeader("content-disposition", "attachment;filenname=flower.jpg");
    ServletContext sa=getServletContext();
    String path=sa.getRealPath("/imges/yu.png");
    InputStream is =new FileInputStream(path);
    byte [] bytes =new byte[1024];
    int count=-1;
    OutputStream os=response.getOutputStream();
    while((count=is.read(bytes))!=-1) {
      os.write(bytes,0,count);
    }
    //response.getWriter().append("Served at: ").append(request.getContextPath());
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
package com.servlet;
import java.io.IOException;
import java.io.InputStream;
import java.util.Set;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class Servlet1
 */
@WebServlet(urlPatterns = "/Servlet5",initParams = {
    //增加静态数据的第一个学生
    @WebInitParam(name="a",value="胡五伤悲"),
    @WebInitParam(name="age",value="47岁"),
    @WebInitParam(name="height",value="169cm"),
    @WebInitParam(name="weight",value="60kg")
})
public class Servlet5 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * Default constructor. 
     */
    public Servlet5() {
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
    @Override
    public void init() throws ServletException {
      // TODO Auto-generated method stub
      super.init();
      //定义4个静态数据
      ServletConfig config=getServletConfig();
      String a=config.getInitParameter("a");
      String b=config.getInitParameter("age");
      String c=config.getInitParameter("height");
      String e=config.getInitParameter("weight");
      System.out.println(a+"===="+b+"#######"+c+"-----"+e);
      System.out.println(e);
      System.out.println("创建静态数据的方法");
      System.out.println("ServletConfig config=getServletConfig();");
      System.out.println("访问静态数据的方法");
      System.out.println("String a=config.getInitParameter(\"a\");");
    }
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    // 获得text.txt完整路径
        ServletContext sc=getServletContext();
        //指定文件名称获取完整路径
        String path=sc.getRealPath("text.txt");
        //控制台打印输出文件完整路径
        System.out.println(path);
        //将text.txt读取出来
        //IO inputStream /outputStream输出流。
        //网上下载的图片以自己为主场输入
        //总结:始终以自己为主场,观察数据流向。
        /* InputStream is=sc.getResourceAsStream("/text.txt");文件相对路径转为输入流 */
        InputStream is=sc.getResourceAsStream("/text.txt");
        //分析:1.假设text.txt是一部一百万的小说
        //当读取大量数据的时候,采取分段读取,部分读取
        //一般情况下,一次读取1024字节byte=1kb 512个字
        byte[] bytes=new byte[1024];
        //分析:2.数据非常少的时候
        //定义一个变量,用于记录每一次读取的字节数
        //判断记录的字节数是否小于1024,表示快读取结束
        int count=-1;//-1标记为读取结束
        //定义一个字符串用于汇总每次读取的部分字符串内容
        String sum="";
        //循环读取
        while ((count=is.read(bytes))!=-1) {
          //需要将每一次读取的字节数组转换成字符串
          String s=new String(bytes, 0, count);
          sum+=s;
        }
        System.out.println(sum);
      //  指定文件夹
      Set<String> oSet=sc.getResourcePaths("/WEB-INF");
      for (String string : oSet) {
        System.out.println(string);
      }
      //response.getWriter().append("Served at: ").append(request.getContextPath());
    response.getWriter().append("Servlet1获得静态数据用来访问lq:");
    response.getWriter().append("response.getWriter().append方法打印内容");
    response.getWriter().append("Servlet1获得静态数据用来访问pq:");
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
 * 创建动态数据的对象
ServletContext sc=getServletContext();
        //创建动态数据
        sc.setAttribute("身份账号", "360429200010080987");
        //获取动态数据
        //强制转型
        String b= (String) sc.getAttribute("身份账号");
        response.getWriter().append("<h1>ServlectZhuZeA中设置动态数据<h1>"+b);
 //删除动态数据
       sc.removeAttribute("身份账号");
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>BookReading</display-name>
  <welcome-file-list>
  <welcome-file>index.html</welcome-file>
   <welcome-file>index.jsp</welcome-file>
   <!--  <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file> -->
  </welcome-file-list>
 <!-- 静态数据可以共享 -->
  <context-param>
  <param-name>uses</param-name>
  <param-value>hug</param-value>
  </context-param>
  <context-param>
  <param-name>phone</param-name>
  <param-value>18172928419</param-value>
  </context-param>
  <context-param>
  <param-name>YM</param-name>
  <param-value>666666</param-value>
  </context-param>
  <context-param>
  <param-name>PW</param-name>
  <param-value>123456</param-value>
  </context-param>
  <context-param>
  <param-name>PWS</param-name>
  <param-value>123456</param-value>
  </context-param>
</web-app>
第六点  HttpServlet对象中的HttpServletRequest 与 HttpServletResponse对象HttpServletResponse对象
package com.Servlect;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class Servlet2
 */
@WebServlet("/Servlet2")
public class Servlet2 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Servlet2() {
        super();
        // 
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    //设置servlet发送的数据支撑HTML格式
    response.setContentType("text/html");
    //设置发送servlet 浏览html格式 utf-8
    response.setCharacterEncoding("UTF-8");
    String info="abc";
    String info1="20软件三班";
    String info2="你好,<div style='color:red;background-Color:green'> <h1 style='color:red;background-Color:blue'>"
        + "java jsp</h1>"
        +"<ul><li>1111</li><br><li>2111</li><br><li>3111</li><br></ul>"
        +"<ol><li>1111</li><br><li>2111</li><br><li>3111</li><br></ol>"
        +"<hr>"
        +"<table style='color:red;background-Color:yellow'>课表"
        + "<th>4</th><tr><td>1</td><td>2</td><td>3<td/><tr/>"
        +"<th>2</th>4<tr><td>5</td><td>6</td><td>7<td/><tr/>"
        + "</table>"
        +"<hr>"
        +"<hr>"
        +"<h1>hellow world see you </h1>"
        + "</div>";
    //将数据写出的
    PrintWriter pw=response.getWriter();
    pw.print(info);
    pw.print(info1);
    pw.print(info2);
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
package com.Servlect;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
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;
/**
 * Servlet implementation class Servlet3
 */
@WebServlet("/Servlet3")
public class Servlet3 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
      * 图片的下载
     */
    public Servlet3() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 使用对象完成图片的下载
    //设置servlet发送的数据支撑HTML格式
    response.setContentType("text/html");
        //设置发送servlet 浏览html格式 utf-8
    response.setCharacterEncoding("UTF-8");
    //设置响应头
    response.setHeader("content-disposition", "attachment;filenname=flower.jpg");
    ServletContext sa=getServletContext();
    String path=sa.getRealPath("/imges/yu.png");
    InputStream is =new FileInputStream(path);
    byte [] bytes =new byte[1024];
    int count=-1;
    OutputStream os=response.getOutputStream();
    while((count=is.read(bytes))!=-1) {
      os.write(bytes,0,count);
    }
    //response.getWriter().append("Served at: ").append(request.getContextPath());
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
package com.Servlect;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class Servlet4
 */
@WebServlet("/Servlet4")
public class Servlet4 extends HttpServlet {
  private static final long serialVersionUID = 1L;
  /**
   * @see HttpServlet#HttpServlet()
   */
  public Servlet4() {
    super();
    System.out.println("Servlet4正在运行中");
    System.out.println("请等待一下下哦");
    // 创建码
  }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 生成数字,随机数
    //100000 -1000000
    //[0,1]*900000=[0,900000]+100000
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html");
    response.setHeader("refresh", "5");
    response.sendRedirect("Servlet2");
    try { Thread.sleep(5000);
    Connection conn = Time.time();
    } catch (Exception e)
    { e.printStackTrace();
    }
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
   *      response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}

HttpServletResponse对象

package com;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class Servlet1
 */
@WebServlet("/Servlet1")
public class Servlet1 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Servlet1() {
        super();
        System.out.println("Servlet1 在运行HttpServletRequest 的方法");
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //获得浏览器的请求,得到请求信息
    //得到请求的URL地址
    String a=request.getRequestURL().toString();
    System.out.println(a);
    //得到请求的数据
    String b=request.getRequestURI();
    System.out.println(b);
    //得到请求的URL地址中附带的参数
    String c=request.getQueryString();
    System.out.println(c);
    //得到来访者的IP地址
    String d=request.getRemoteAddr();
    System.out.println(d);
    //来访者的主机名
    String e=request.getRemoteHost();
    System.out.println(e);
    //来访者的端口号
    int f=request.getRemotePort();
    System.out.println(f);
    //得到请求URL地址时使用的方法(重要)
    String h=request.getMethod();
    System.out.println(h);
    //获取WEB服务器的IP地址
    String l=request.getLocalAddr();
    System.out.println(l);
    //获取WEB服务器的主机名
    String n=request.getLocalName();
    System.out.println(n);
    //获取WEB服务器的端口号
    int m=request.getLocalPort();
    System.out.println(m);
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
package com;
import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;
import java.util.Map.Entry;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class Servlet2
 */
@WebServlet("/Servlet2")
public class Servlet2 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Servlet2() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获得浏览器发送过来的姓名和年龄的数据
        String a=request.getParameter("name");
        String b=request.getParameter("age");
        String c=request.getParameter("phone");
        String d=request.getParameter("QQ");
        String e=request.getParameter("wexing");
        System.out.println("获得浏览器发送给Servlet的数据为:"+a+"--"+b+"--"+c);
        //当浏览器发送的数据是同一个名称多个不同的数据
        //servlet需要使用以下这个方法去接收这种数据
        String[] ss=request.getParameterValues("hobby");
        System.out.println(Arrays.toString(ss));
        //tomcat服务器的编码格式是:ISO-8859-1
        //注意:servlet获得浏览器表单发送的数据时,
        //获得的名称一定要和表单上文本框定义的name属性中的名称保持一致
        //当浏览器发送大量数据给servlet的时候
        //如果使用getParameter一个个获得,效率太慢
        //使用以下方法可以节省代码,加快开发速度
        Enumeration<String> e1= request.getParameterNames();
        while (e1.hasMoreElements()) {
          //循环获得的是浏览器发给servlet的数据的名称
          String name=e1.nextElement();
          if (name.equals("hobby")) {
            String[] str=request.getParameterValues(name);
            System.out.println(name+":"+Arrays.toString(str));
          }else {
            String value=request.getParameter(name);
            System.out.println(name+":"+value);
          }
        }
        //使用Map集合获得浏览器发送的所有数据
        Map<String,String[]> map=request.getParameterMap();
        for (Entry<String, String[]> entry : map.entrySet()) {
          String name=entry.getKey();
          String[] values=entry.getValue();
          System.out.println(name+"%"+Arrays.toString(values));
        }
        System.out.println("运行完成");
        System.out.println("http://localhost:8080/Day06-2/Servlet2?name=hubinjkf&age=23&phone=16745637856&qq=2675648967&wexing=16745679076&hobby=%E7%9C%8B%E4%B9%A6&hobby=%E7%9C%8B%E5%B0%8F%E5%AD%A6%E5%A6%B9&hobby=%E5%AD%A6%E4%B9%A0mysql");
      }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
*{
  background-color: yellow;
}
</style>
</head>
<body>
<form action="Servlet2" method="get" style="background: pink; font-size: 20px;">
    姓名:<input type="text" name="name"style="color: green;"><br>
    年龄:<input type="text" name="age"  style="color: purple;"><br>
    手机号:<input type="text" name="phone" ><br>
    QQ:<input type="text" name="qq"><br>
    微信:<input type="text" name="wexing"><br>
    兴趣爱好:<input type="checkbox" name="hobby" value="看书">看书&nbsp;
    <input type="checkbox" name="hobby" value="打游戏">打游戏&nbsp;
    <input type="checkbox" name="hobby" value="看小学妹">看小学妹&nbsp;
    <input type="checkbox" name="hobby" value="学习java">学习java&nbsp;
    <input type="checkbox" name="hobby" value="学习mysql">学习mysql&nbsp;
    <input type="checkbox" name="hobby" value="学习jquery">学习jquery&nbsp;
    <br>
    <input type="submit" value="提交">
  </form>
</body>
</html>

第七点中重定向与请求发送的区别

请求转发和重定向区别:

重定向跳转浏览器地址会发生变化,

请求转发浏览器地址不会发生变化

重定向是两次请求,请求转发是一次请求

重定向属于浏览器跳转,请求转发属于服务器内部跳转

重定向跳转页面是不能发送数据,

请求转发是可以携带数据的

1.请求转发是在服务器完成的,重定向是在浏览器完成的

2.请求转发的速度快,重定向速度慢

3.请求转发的是同一次请求,重定向是二次不同的请求

4.请求转发地址栏没有变化,重定向地址栏有变化

5.转发必须是在同一台服务器下完成,重定向可以在不同的服务器下完成的

经常用的代码

reponse.setContentType("text/html"); 设置浏览器格式HTML
 response.setCharacterEncoding("utf-8")设置编码格式utf-8
response.sendRedirect("Servlet2"); 重定向
//设置响应头
        response.setHeader("content-disposition", "attachment;filenname=flower.jpg");
//请求发送
 request.getRequestDispatcher("Servlet4")
                            .forward(request, response);
response.addHeader("refresh", "1");

运行实例

相关文章
|
前端开发 JavaScript Java
欢迎来到Jsp编程课时十——Servlect+Jsp基础回顾。(三)
欢迎来到Jsp编程课时十——Servlect+Jsp基础回顾。(三)
121 0
|
Java
欢迎来到Jsp编程课时十——Servlect+Jsp基础回顾。(二)
欢迎来到Jsp编程课时十——Servlect+Jsp基础回顾。(二)
69 0
|
Java
欢迎来到Jsp编程课时十——Servlect+Jsp基础回顾。(一)
欢迎来到Jsp编程课时十——Servlect+Jsp基础回顾。(一)
64 0
|
SQL 移动开发 前端开发
欢迎来到Jsp编程课时八——Mvc三层综合使用
欢迎来到Jsp编程课时八——Mvc三层综合使用
67 0
|
Java
欢迎来到Jsp编程课时七——JSP第十六课时。JSTL标签库(二)
欢迎来到Jsp编程课时七——JSP第十六课时。JSTL标签库(二)
57 0
|
4月前
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
110 0
|
6月前
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
|
6月前
|
供应链 前端开发 Java
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
这篇文章通过一个服装库存管理系统的实例,展示了在Spring Boot项目中使用Ajax、JSON、layui、MVC架构和iframe等技术,涵盖了注册登录、权限管理、用户管理、库存管理等功能,并提供了系统运行环境和技术要求的详细说明。
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
|
6月前
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
38 0
|
8月前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
137 12