字符编码过滤器以及Servlet实践
来源:互联网 发布:淘宝账号管理在哪 编辑:程序博客网 时间:2024/05/21 05:21
在JavaWeb程序开发中,由于Web容器内部所使用的编码格式并不支持中文字符集,web容器使用了ISO-8859-1的编码格式,所以会出现乱码,我们可以通过过滤器来处理字符编码。
CharactorFilter:
package com.home.web.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;/** * * @description 字符编码过滤器 * @author fj * @createTime 2017年2月24日 */public class CharactorFilter implements Filter { private String encoding = null; @Override public void destroy() { encoding = null; } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (encoding != null) { request.setCharacterEncoding(encoding); response.setContentType("text/html;charset=" + encoding); } chain.doFilter(request, response); } @Override public void init(FilterConfig filterConfig) throws ServletException { encoding = filterConfig.getInitParameter("encoding"); }}
过滤器配置:
<filter><filter-name>CharactorFilter</filter-name><filter-class>com.home.web.filter.CharactorFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>CharactorFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
这里设置为应用于所有请求
AddServlet:
package com.home.web.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class AddServlet */public class AddServlet extends HttpServlet {private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public AddServlet() { super(); }/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response);}/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); // 获取页面参数 String id = request.getParameter("id"); String name = request.getParameter("name"); String author = request.getParameter("author"); String price = request.getParameter("price"); // 输出图书信息 out.print("<h2> 图书馆信息添加成功</h2><hr>"); out.print("图书编号:" + id + "<br>"); out.print("图书名称:" + name + "<br>"); out.print("作者:" + author + "<br>"); out.print("价格:" + price + "<br>"); out.flush(); out.close();}}
servlet配置:
<servlet><servlet-name>AddServlet</servlet-name><servlet-class>com.home.web.servlet.AddServlet</servlet-class></servlet><servlet-mapping><servlet-name>AddServlet</servlet-name><url-pattern>/AddServlet</url-pattern></servlet-mapping>
这里也可以使用注解配置,在AddServlet类前面加上@WebServlet("/AddServlet")注解
接下来就是页面了,建立一个index.jsp页面,用于添加图书信息:
<%@page import="java.net.URLDecoder"%><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>起始页</title></head><body><form action="AddServlet" method="post"><table align="center" border="1" width="350"><tr><td class="2" align="center" colspan="2"><h2>添加图书信息</h2></td></tr><tr><td align="right">图书编号:</td><td><input type="text" name="id"></td></tr><tr><td align="right">图书名称:</td><td><input type="text" name="name"></td></tr><tr><td align="right">作 者:</td><td><input type="text" name="author"></td></tr><tr><td align="right">价 格:</td><td><input type="text" name="price"></td></tr><tr><td class="2" align="center" colspan="2"><input type="submit"value="添 加"></td></tr></table></form></body></html>
0 0
- 字符编码过滤器以及Servlet实践
- Servlet字符编码过滤器
- 字符编码过滤器 Servlet Filter
- Servlet实现字符编码过滤器
- servlet过滤器中应该注意的字符编码问题
- CharacterEncodingFilter 字符编码过滤器
- 字符编码的过滤器
- 自定义字符编码过滤器
- jsp字符编码过滤器
- Filter字符编码过滤器
- javaWEB字符编码过滤器
- 字符编码过滤器
- Filter字符编码过滤器
- Servlet用户登陆过滤器,编码校验过滤器
- Servlet编码过滤器(装饰模式)
- java 过滤器(过滤客户端表单特殊字符、服务器端特殊字符、以及编码过滤)
- 设置spring字符编码过滤器
- 设置spring字符编码过滤器
- 前端开源项目周报0221
- UDP主要丢包原因及具体问题分析
- 文章标题
- Bzoj 3122 [Sdoi2013]随机数生成器(BSGS+exgcd)
- 欢迎使用CSDN-markdown编辑器
- 字符编码过滤器以及Servlet实践
- vs2012只设置一次opencv库的方法
- 微信小程序之上拉加载(分页加载)实例 —— 微信小程序实战系列(2)
- oracle 每日一题-分析程序的内存开销(sga,pga,uga)
- 跨域解决方案JSONP
- jsp总结
- 《linux 命令行大全》读书笔记
- 读书系统
- 小米系统更新后android studio 通过USB安装报错:install_canceled_by_user