请求和响应
创始人
2024-03-05 11:56:16
0

目录

  • 1 请求对象
    • 1.1 请求对象介绍
    • 1.2 请求对象常用方法-获取各自路径
    • 1.3 请求对象常用方法-获取请求头信息
    • 1.4 请求对象常用方法-请求参数信息
    • 1.5 获取请求参数并封装对象
      • 1.5.1 手动封装方式
      • 1.5.2 反射封装方式
      • 1.5.3 工具类封装方式
    • 1.6 流对象获取请求信息
    • 1.7 中文乱码问题
    • 1.8 请求域
    • 1.9 请求转发
    • 1.10 请求包含
  • 2 响应对象
    • 2.1 响应对象介绍
    • 2.2 常见状态码
    • 2.3 字节流响应消息
    • 2.4 字符流响应消息
    • 2.5 响应图片
    • 2.6 设置缓存
    • 2.7 定时刷新
    • 2.8 请求重定向
    • 2.9 文件下载

1 请求对象

1.1 请求对象介绍

  • 请求:获取资源。在 BS 架构中,就是客户端浏览器想服务器端发出询问
  • 请求对象:就是在项目中用于发送请求的对象

1.2 请求对象常用方法-获取各自路径

在这里插入图片描述

  • 代码演示
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);}
}
  • 演示效果:
    在这里插入图片描述

1.3 请求对象常用方法-获取请求头信息

在这里插入图片描述

  • 代码演示:
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);}
}
  • 效果如下:
    在这里插入图片描述

1.4 请求对象常用方法-请求参数信息

在这里插入图片描述

  • 代码演示
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);}
}
  • 效果如下
    在这里插入图片描述

1.5 获取请求参数并封装对象

  1. 手动封装方式
  2. 反射封装方式
  3. 工具类封装方式

1.5.1 手动封装方式

  • 代码演示
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) +'}';}
}
  • 效果如下:
    在这里插入图片描述

1.5.2 反射封装方式

  • 代码演示
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);}
}

1.5.3 工具类封装方式

我们需要引入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);}
}

1.6 流对象获取请求信息

在这里插入图片描述

  • 代码演示
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);}
}
  • 效果如下
    在这里插入图片描述

1.7 中文乱码问题

  • GET 方式
    没有乱码问题,在 Tomcat 8 版本后已经解决
  • POST 方式
    有乱码问题。可以通过 setCharacterEncoding() 方法来解决
    • 代码演示
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);}
}

1.8 请求域

  • 请求域(request 域):可以再一次请求范围内进行共享数据
  • 一般用于请求转发的多个资源中共享数据
  • 请求对象操作共享数据方法
    在这里插入图片描述

1.9 请求转发

  • 请求转发:客户端的一次请求到达后,发现需要借助其他 Servlet 来实现功能
  • 特点
    • 浏览器地址栏不变
    • 域对象中的数据不丢失
    • 负责转发的 Servlet 转发前后的响应正文会丢失
    • 由转发的目的地来响应客户端
      在这里插入图片描述
  • 代码演示
    servletDemo09:
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);}
}

1.10 请求包含

  • 请求包含:可以合并其他 Servlet 中的功能一起响应给客户端
  • 特点:
    • 浏览器地址栏不变
    • 域对象中的数据不会丢失
    • 被包含的 Servlet 的响应头会丢失
      在这里插入图片描述

2 响应对象

2.1 响应对象介绍

  • 响应:回馈结果。在 BS 架构中,就是服务器给客户端浏览器反馈结果。
  • 响应对象:就是在项目中用于发送响应的对象

2.2 常见状态码

在这里插入图片描述

2.3 字节流响应消息

在这里插入图片描述

  • 代码演示
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);}
}

2.4 字符流响应消息

在这里插入图片描述

  • 代码演示
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);}
}

2.5 响应图片

  1. 创建字节输入流对象,关联读取的图片路径
  2. 通过响应对象获取字节输出流对象
  3. 循环读取和写出图片
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);}
}

2.6 设置缓存

  • 缓存:对于不经常变化的数据,我们可以设置合理缓存时间,以避免浏览器频繁请求服务器,以此来提高效率!
  • 在这里插入图片描述
  • 代码演示
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);}
}

2.7 定时刷新

  • 定时刷新:过了指定时间后,页面自动进行跳转
    在这里插入图片描述
  • 代码演示
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);}
}

2.8 请求重定向

  • 请求重定向:客户端的一次请求到达后,发现需要借助其他 Servlet 来实现功能
  • 特点:浏览器地址栏会发生改变,两次请求、请求域对象中不能共享数据,可以重定向到其他服务器
  • 响应对象重定向方法
    在这里插入图片描述
  • 代码演示
    ServletDemo06
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);}
}
  • 运行效果
    在这里插入图片描述

2.9 文件下载

  1. 创建字节输入流,关联读取文件
  2. 设置响应消息头支持的类型
  3. 设置响应消息头以下载方式打开资源
  4. 通过响应对象获取字节输出流对象
  5. 循环读写
  6. 释放资源
  • 代码演示
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);}
}

相关内容

热门资讯

常用商务英语口语   商务英语是以适应职场生活的语言要求为目的,内容涉及到商务活动的方方面面。下面是小编收集的常用商务...
六年级上册英语第一单元练习题   一、根据要求写单词。  1.dry(反义词)__________________  2.writ...
复活节英文怎么说 复活节英文怎么说?复活节的英语翻译是什么?复活节:Easter;"Easter,anniversar...
2008年北京奥运会主题曲 2008年北京奥运会(第29届夏季奥林匹克运动会),2008年8月8日到2008年8月24日在中华人...
英语道歉信 英语道歉信15篇  在日常生活中,道歉信的使用频率越来越高,通过道歉信,我们可以更好地解释事情发生的...
六年级英语专题训练(连词成句... 六年级英语专题训练(连词成句30题)  1. have,playhouse,many,I,toy,i...
上班迟到情况说明英语   每个人都或多或少的迟到过那么几次,因为各种原因,可能生病,可能因为交通堵车,可能是因为天气冷,有...
小学英语教学论文 小学英语教学论文范文  引导语:英语教育一直都是每个家长所器重的,那么有关小学英语教学论文要怎么写呢...
英语口语学习必看的方法技巧 英语口语学习必看的方法技巧如何才能说流利的英语? 说外语时,我们主要应做到四件事:理解、回答、提问、...
四级英语作文选:Birth ... 四级英语作文范文选:Birth controlSince the Chinese Governmen...
金融专业英语面试自我介绍 金融专业英语面试自我介绍3篇  金融专业的学生面试时,面试官要求用英语做自我介绍该怎么说。下面是小编...
我的李老师走了四年级英语日记... 我的李老师走了四年级英语日记带翻译  我上了五个学期的小学却换了六任老师,李老师是带我们班最长的语文...
小学三年级英语日记带翻译捡玉... 小学三年级英语日记带翻译捡玉米  今天,我和妈妈去外婆家,外婆家有刚剥的`玉米棒上带有玉米籽,好大的...
七年级英语优秀教学设计 七年级英语优秀教学设计  作为一位兢兢业业的人民教师,常常要写一份优秀的教学设计,教学设计是把教学原...
我的英语老师作文 我的英语老师作文(通用21篇)  在日常生活或是工作学习中,大家都有写作文的经历,对作文很是熟悉吧,...
英语老师教学经验总结 英语老师教学经验总结(通用19篇)  总结是指社会团体、企业单位和个人对某一阶段的学习、工作或其完成...
初一英语暑假作业答案 初一英语暑假作业答案  英语练习一(基础训练)第一题1.D2.H3.E4.F5.I6.A7.J8.C...
大学生的英语演讲稿 大学生的英语演讲稿范文(精选10篇)  使用正确的写作思路书写演讲稿会更加事半功倍。在现实社会中,越...
VOA美国之音英语学习网址 VOA美国之音英语学习推荐网址 美国之音网站已经成为语言学习最重要的资源站点,在互联网上还有若干网站...
商务英语期末试卷 Part I Term Translation (20%)Section A: Translate ...