请求和响应
创始人
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);}
}

相关内容

热门资讯

未来的海洋作文 有关未来的海洋作文合集六篇  在学习、工作或生活中,大家总少不了接触作文吧,借助作文可以宣泄心中的情...
林志炫《你永远不知道》歌词 林志炫《你永远不知道》歌词  久违的声线、从容的台风,以一首《你永远不知道》回归的林志炫在亮相瞬间就...
春节大扫除的作文 春节大扫除的作文(集合15篇)  在学习、工作乃至生活中,大家都跟作文打过交道吧,作文是经过人的思想...
孔明灯 孔明灯孔明灯1  今天,是一年一度的中秋佳节。盼到傍晚,我们一家来爷爷奶奶家吃了顿晚饭,舅妈提议一起...
感恩父亲节作文 感恩父亲节作文13篇  在日常生活或是工作学习中,大家对作文都再熟悉不过了吧,作文是从内部言语向外部...
寒假中的一件事作文 寒假中的一件事作文(通用31篇)  在生活、工作和学习中,大家都有写作文的经历,对作文很是熟悉吧,借...
清联家杜文秀题戏台对联 清联家杜文秀题戏台对联  演戏看戏心中有戏;  修枝打枝节外生枝。  ——题戏台(1)  杜文秀还喜...
国庆见闻作文600字 国庆见闻作文600字6篇国庆见闻作文600字1  今天是“十·一”国庆节,天气非常晴朗,我与爸爸妈妈...
七夕情人节的名言警句 关于七夕情人节的名言警句  天阶夜色凉如水,坐看牵牛织女星。小编收集了关于七夕情人节的`名言警句,欢...
我的周末作文 我的周末作文(通用5篇)  在日复一日的学习、工作或生活中,大家都经常接触到作文吧,借助作文可以宣泄...
国庆节趣事作文500字 国庆节趣事作文500字三篇  国庆节趣事作文500字一:  今天,是一个特别的日子。大家一定知道吧!...
节约型社会 Saving s... 节约型社会 Saving society  Recently,there has been an a...
国庆节优秀作文 国庆节优秀作文(精选34篇)  在平凡的学习、工作、生活中,许多人都写过作文吧,作文根据写作时限的不...
假如作文300字 假如作文300字五篇  在平平淡淡的日常中,大家都接触过作文吧,作文是从内部言语向外部言语的过渡,即...
买年货的作文 关于买年货的作文八篇  每一年的春节到来之前,家家户户都会准备好新年必备的年货,在这个特别的日子里,...
生活给我的启示作文 生活给我的启示作文  生活中,启示无处不在,也许是满树的春红,也许是寂寞的梧桐。生活总是在完美中留下...
小学生端午节的一天作文400... 小学生端午节的一天作文400字  在端午节这个古老的节日里,人们包粽子、赛龙舟,处处洋溢着浓浓的节日...
植树节的作文300字 植树节的作文300字四篇  在平凡的学习、工作、生活中,大家总少不了接触作文吧,借助作文可以提高我们...
织女牛郎鹊桥相会的历史典故 织女牛郎鹊桥相会的历史典故(通用11篇)  农历七月七日是民间的“乞巧”节,妇女们这晚在庭院中摆下酒...