- 浏览: 92779 次
-
文章分类
最新评论
重定向1、sendRedirect
rep.sendRedirect(path+"/pages/login.jsp?info=username or password is worng .");
重定向2、Location 一定要设置302 302是指请求重定向
rep.setStatus(302);
rep.setHeader("Location", basePath+"pages/login.jsp?info=username or password is worng .");
重定向3、Refresh
rep.setHeader("Refresh", "2,pages/login.jsp?info=username or password is worng .");
使用sendRedirect()传递参数
1、static变量,纯servlet时可用
2、...jsp?name=name&pwd=111122 缺点:只能穿字符串,而不能传对象
3、使用session
传字符串:
获取seesion
<%=request.getSession().getAttribute("name") %>
传递对象:
req.getSession().setAttribute("obj", ct);
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
${obj.name }
在servlet中获取:
Constant ct = (Constant)request.getSession().getAtttibute("obj");
web容器下载文件的原理:
1、将图片图取到内存中
2、将文件发送给浏览器
缓存:
浏览器缓存(Browser Caching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。
浏览器默认会缓存所用页面,但对于及时交互性较强的网站如银行、证券系统是不合适的;
1、禁用缓存
response.setDateHeader("Expires",-1); [ie]
response.setHeader("Cache-control","no-cache"); [firefox]
response.setHeader("Pragme","no-cache"); [other browser]
2、设置缓存时间
response.setDateHeader("Expires",System.currentTimeMillis()+3600);
web容器对每个请求都会 创建一个request对象和一个response对象;作为service()方法的参数;
response不能同时使用getWriter()和getOutputStream();
原因:
1、web容器拆解response为http协议识别的信息
2、web容器检测response所带的对象、属性、流等,查看liu是否关闭,没关闭就容器来关闭流;
3、web关闭了writer流,而还存在output流,提示流已经被关闭错误。
request的中文乱码处理:
response的中文乱码处理:
发生中文的3中情况
1、表单
2、超链接?name=民族(本质是get方式提交)
解决方法:
doPost()
request.setCharacterEncoding("utf-8");
doGet()
String name = req.getParameter("name");
try {
String newname = new String(name.getBytes("iso-8859-1"),"utf-8");
3、response.sendRedirect("...?name=名字");
而浏览器没有正常显示/login.jsp?info= 后面的汉字不见了。。。
要进行转码:?name=%E9%9A%8F%E8%BA%AB%E9%82%AE
rep.sendRedirect(path+"/pages/login.jsp?info="+new String("随身".getBytes("utf-8"),"iso-8859-1"));
String info = (String)request.getParameter("info");
String newinfo = new String(info.getBytes("iso-8859-1"),"utf-8");
session只要接收的不是乱码,就不会出现乱码。
文件下载时中文乱码
response.setHeader("Content-Disposition", "attachment;filename=名字.jpg");
解决方法:
String name = new String("名字.jpg".getBytes("utf-8"),"iso-8859-1");
response.setHeader("Content-Disposition", "attachment;filename="+name);
常用编码:gbk,gb2312,iso-8859-1,utf-8
rep.sendRedirect(path+"/pages/login.jsp?info=username or password is worng .");
重定向2、Location 一定要设置302 302是指请求重定向
rep.setStatus(302);
rep.setHeader("Location", basePath+"pages/login.jsp?info=username or password is worng .");
重定向3、Refresh
rep.setHeader("Refresh", "2,pages/login.jsp?info=username or password is worng .");
使用sendRedirect()传递参数
1、static变量,纯servlet时可用
2、...jsp?name=name&pwd=111122 缺点:只能穿字符串,而不能传对象
3、使用session
传字符串:
//存入seesion req.getSession().setAttribute("name", name); //重定向1、sendRedirect rep.sendRedirect(path+"/pages/login.jsp?info=username or password is worng .");
获取seesion
<%=request.getSession().getAttribute("name") %>
传递对象:
req.getSession().setAttribute("obj", ct);
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
${obj.name }
在servlet中获取:
Constant ct = (Constant)request.getSession().getAtttibute("obj");
web容器下载文件的原理:
1、将图片图取到内存中
2、将文件发送给浏览器
response.setContentType("text/html;charset=utf-8"); //提示浏览器有文件下载,自动弹框,默认是打印在浏览器页面上 response.setHeader("Content-Disposition", "attachment;filename=1.jpg"); //获取文件的真实路径 String realPath = this.getServletContext().getRealPath("/images/1.jpg"); //System.out.println(realPath); //将文件存入内存,创建输入流 FileInputStream fi = new FileInputStream(realPath); byte buff [] = new byte[2048]; //实际每次读取了多少字节 int len = 0; OutputStream os = response.getOutputStream(); while((len=fi.read(buff))>0) { //发送给浏览器 os.write(buff,0,len); } os.close(); fi.close(); }
缓存:
浏览器缓存(Browser Caching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。
浏览器默认会缓存所用页面,但对于及时交互性较强的网站如银行、证券系统是不合适的;
1、禁用缓存
response.setDateHeader("Expires",-1); [ie]
response.setHeader("Cache-control","no-cache"); [firefox]
response.setHeader("Pragme","no-cache"); [other browser]
2、设置缓存时间
response.setDateHeader("Expires",System.currentTimeMillis()+3600);
web容器对每个请求都会 创建一个request对象和一个response对象;作为service()方法的参数;
response不能同时使用getWriter()和getOutputStream();
原因:
1、web容器拆解response为http协议识别的信息
2、web容器检测response所带的对象、属性、流等,查看liu是否关闭,没关闭就容器来关闭流;
3、web关闭了writer流,而还存在output流,提示流已经被关闭错误。
request的中文乱码处理:
response的中文乱码处理:
发生中文的3中情况
1、表单
2、超链接?name=民族(本质是get方式提交)
解决方法:
doPost()
request.setCharacterEncoding("utf-8");
doGet()
String name = req.getParameter("name");
try {
String newname = new String(name.getBytes("iso-8859-1"),"utf-8");
3、response.sendRedirect("...?name=名字");
而浏览器没有正常显示/login.jsp?info= 后面的汉字不见了。。。
要进行转码:?name=%E9%9A%8F%E8%BA%AB%E9%82%AE
rep.sendRedirect(path+"/pages/login.jsp?info="+new String("随身".getBytes("utf-8"),"iso-8859-1"));
String info = (String)request.getParameter("info");
String newinfo = new String(info.getBytes("iso-8859-1"),"utf-8");
session只要接收的不是乱码,就不会出现乱码。
文件下载时中文乱码
response.setHeader("Content-Disposition", "attachment;filename=名字.jpg");
解决方法:
String name = new String("名字.jpg".getBytes("utf-8"),"iso-8859-1");
response.setHeader("Content-Disposition", "attachment;filename="+name);
常用编码:gbk,gb2312,iso-8859-1,utf-8
发表评论
-
41、解决HttpServletResponse输出的中文乱码问题
2015-04-12 21:48 1226response返回有两种,一种是字节流outputs ... -
41、轮询
2015-04-12 08:50 0浏览器关闭使session失效 ... -
40、spring ajax/easyui 中文乱码的解决
2015-04-04 14:52 698使用spingmvc,在JS里面通过ajax发送请求,并 ... -
39、.net
2015-03-28 23:12 545熟悉java编程,自然学习c#就会比较容易,有几个点需要说明下 ... -
38、servlet-- JSTL+EL(c标签、${})
2015-03-23 15:57 787参看:http://www.cnblogs.com/xdp-g ... -
37、servlet--jsp
2015-03-23 15:07 498不管是JSP还是Servlet,虽然都可以用于开发动 ... -
36、servlet--防止表单重复提交
2015-03-23 14:33 7131、在网络延迟会或服务器反应过慢的情况下让用户有时间点击多次s ... -
35、servlet--servletContext
2015-03-22 13:41 477servletContext接口是Servlet中最大的一个接 ... -
34、servlet--会话技术/购物车demo/y验证码
2015-03-21 23:40 595会话Session and Cookie 1、session: ... -
33、servlet--转发/web开发指导思想
2015-03-21 12:31 451转发: req.getRequestDispatcher(&q ... -
31、servlet--开发方式
2015-03-20 21:55 646servlet:利用java技术开发动态网页的技术,是学习ja ... -
30、servlet---tomcat原理
2015-03-20 18:20 679Servlet出现得早,servlet很强大,但是se ... -
29、servlet--jsp执行过程
2015-03-20 15:08 456J2EE的13种核心技术:JDBC、JNDI、EJBs、 ... -
29、springmvc+spring+mybatis+oracle12的demo
2015-03-15 20:29 0每次搭建都要重头搭建,累~~ 注意:用12c的jdbc 在安 ... -
27、Tomcat多次加载项目问题
2015-03-12 15:30 586错误配置方式: <Host name="lo ... -
26、数据分页(jsp+servlet)
2015-03-12 15:19 476随着数据库中存储的数据的增多,满足用户查询条件的数据也 ... -
llll.文档设计
2015-03-11 13:31 0设计文档与代码实现到 ... -
24、webservice_短信接口
2015-03-11 10:48 816http://blog.csdn.net/sxdtzhaoxi ... -
25、RMI_demo1
2015-03-11 10:48 428Java RMI 指的是远程方法调用 (Remote Meth ... -
23、svn
2015-03-11 10:48 431<参看>http://blog.csdn.net/ ...
相关推荐
### Servlet过滤器详解 #### 一、字符编码过滤器 在Web开发中,尤其是在处理中文等多语言环境时,字符编码的问题尤为重要。如果字符编码设置不当,可能会导致页面出现乱码。为此,开发者通常会使用字符编码过滤器...
Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。"servlet filter大全"这个主题涵盖了多种常见的过滤器设置,旨在提高应用的功能性和安全性...
Servlet过滤器是Java Web开发中的一个重要概念,它在Servlet生命周期中扮演着不可或缺的角色。过滤器允许开发者在请求到达Servlet之前或在响应离开Servlet之后对请求和响应进行处理。这一特性使得过滤器在处理数据、...
- **缓存处理**:控制是否缓存页面,提高性能。 - **GZIP压缩**:对响应内容进行压缩,减少网络传输的数据量。 总结,JSP过滤器是Java Web开发中的重要工具,它允许我们在请求到达目标资源之前进行干预,实现各种...
- **缓存控制**:根据需要控制资源的缓存策略。 6. **动态配置与编程式注册** 除了在`web.xml`中静态配置过滤器,还可以使用Servlet 3.0及以上版本提供的注解`@WebFilter`进行动态配置。此外,可以通过`Filter...
1. **字符编码转换**: 在请求进入Servlet之前,统一设置请求和响应的编码格式,防止乱码问题。 2. **权限控制**: 检查用户是否登录,未登录则重定向到登录页面。 3. **日志记录**: 记录请求信息,便于分析系统性能和...
当用户提交表单数据时,如果编码格式不一致,可能会导致中文显示为乱码。字符编码过滤器可以在请求到达目标资源之前设置请求的字符编码,从而确保数据的正确性。 **代码实现:** ```java public class ...
在Java Web开发中,`Filter`(过滤器)是一个至关重要的概念,它允许开发者在请求到达Servlet之前或从Servlet响应返回客户端之前进行拦截处理。`Filter`是Java Servlet API的一部分,定义在`javax.servlet.Filter`...
- **目的:** 确保客户端发送的数据能够正确解析,避免乱码问题。 **3. 代码实现:** ```java public class CharacterEncodingFilter implements Filter { protected FilterConfig filterConfig = null; ...
2. **设置浏览器不缓存服务器内容**:通过过滤器设置响应头,告诉浏览器不要缓存服务器返回的内容,这对于动态内容更新频繁的应用非常有用。 #### 八、总结 Java过滤器作为Servlet规范中的一个重要组成部分,为Web...
对于中文乱码问题、网页定时刷新与跳转以及禁止浏览器缓存页面等功能,`HttpServletResponse`都提供了丰富的API来实现这些需求。 #### 二、中文乱码问题及解决方案 在Web应用开发中,经常会遇到中文乱码的问题。这...
**JSP重要知识点详解** 1. **Web-App目录结构** ...以上就是JSP的重要知识点,包括目录结构、Servlet生命周期、乱码处理、会话管理以及页面间的跳转和包含等,这些都是进行JSP开发时需要掌握的基础知识。
Java Servlet中的过滤器(Filter)是Java Web开发中一个非常重要的概念,它是Servlet API的一部分,主要用于在请求被发送到目标Servlet或JSP之前对请求进行预处理,以及在响应返回给客户端之前对响应进行后处理。...
【Servlet基础】 Servlet是一种Java编程语言中的接口,用于扩展服务器的功能,特别是在Web应用程序中处理HTTP请求。Servlet接口定义了服务器端程序如何响应客户端请求的方法。我们使用Servlet主要是因为它们可以提供...
字符编码过滤器用于统一整个Web应用程序中的字符编码,确保所有的输入输出都使用相同的字符集,避免乱码问题。实现方法如下: ```java import javax.servlet.*; import javax.servlet.http.HttpServletRequest; ...
4. **缓存控制**:设置响应头,控制浏览器缓存策略,防止敏感信息被缓存。 5. **日志记录**:记录请求信息,帮助调试和监控应用。 在实际应用中,可以创建自定义的Servlet Filter实现`javax.servlet.Filter`接口,...
- `setCharacterEncoding(String encoding)`:设置请求体的字符编码,防止中文乱码。 二、Response对象 `Response`对象代表HTTP响应报文,用于向客户端发送响应。其主要功能包括: 1. **设置响应消息**: - `...
7. **处理汉字信息**:在处理包含汉字的请求参数时,可能会遇到乱码问题。可以通过以下步骤解决: - 获取参数:`String textContent=request.getParameter("参数名")` - 编码转换:`byte[] b=textContent.getBytes...