标签:
这两个流不需要我们手动释放,Servlet会自动释放????
response.getOutputStream().write("中文乱码".getBytes());
response.getWriter().print("中文乱码");
转发: / 代表当前应用
//通过得到上下文对象 实现页面跳转 /代表当前项目中 不能使用相对路径
getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
//得到请求对象,实现页面跳转
request.getRequestDispatcher("/Test.html").forward(request, response);
重定向: / 代表tomcat 根目录
//使用相对路径时 指向的就是当前class路径
response.sendRedirect("myServlet_OutputStream");
response.setHeader("Refresh", "3;URL=当前类空间中的class文件 ");
地址栏直接Enter键 是使用缓存 需要更新 需要刷新 才会更新页面
静态的web资源是可以缓存的
动态的web资源是不建议使用缓存的
控制没有缓冲
//控制没有缓存
response.setHeader("expires","0");
response.setHeader("cache-control","no-cache");
response.setHeader("pragma","no-cache");
response.getOutputStream().write("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">".getBytes());
response.getOutputStream().write("中文乱码".getBytes("UTF-8"));
头标签在使用时,有的浏览器会直接识别为字符串显示出来
response.setHeader("Content-type", "text/html;charset=UTF-8");
response.getOutputStream().write("中文乱码".getBytes("UTF-8"));
response.setContentType("text/html;charset=UTF-8");
response.getOutputStream().write("中文乱码".getBytes("UTF-8"));
a、 直接写出标签在字符流中不能使用,剩下的都可以使用,推荐如下!
response.setContentType("text/html;charset=UTF-8");
response.getWriter().print("中文乱码d");
User user = new User();
????????//表单提交了多少数据过来?
????????Enumeration<String> e = request.getParameterNames();
????????while(e.hasMoreElements()) {
????????????//获取每一个表单的name
????????????String fieldName = e.nextElement();
????????????String fieldValue = request.getParameter(fieldName);
????????????
????????????try {
????????????????//内省
????????????????PropertyDescriptor pd = new PropertyDescriptor(fieldName,User.class);
????????????????Method m = pd.getWriteMethod();//得到指定字段的set方法
????????????????m.invoke(user, fieldValue);
????????????} catch (Exception e1) {
????????????????// TODO Auto-generated catch block
????????????????e1.printStackTrace();
????????????}
????????????
????}
BeanUtils.populate(user, request.getParameterMap());
import org.apache.commons.beanutils.BeanUtils;
可以自动得到Key和value并封装到给定的对象之中,原理是內省
post方式:request.setCharacterEncoding("UTF-8"); 获取数据前
get方式: username=new String(username.getBytes("ISO-8859-1"),"UTF-8");使用打回原形的方式
原因:get是直接在地址栏传递的,请求前已经编码过,默认认为中文是不安全的,默认ISO-8859-1
所以需要打回原形实现码
使用getInpuStream()时必须使用post,用于文件的上传!
//跳转request.getRequestDispatcher("/register.html").forward(request, response);
//包含request.getRequestDispatcher("/register.html").include(request, response);
HttpServletResponse与HttpServletRequest
标签:
原文地址:http://www.cnblogs.com/Probably/p/4827639.html