首页 技术 正文
技术 2022年11月23日
0 收藏 366 点赞 3,130 浏览 3012 个字

1.表单用get方式提交

<%@ 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>Insert title here</title>
</head>
<body>
<form action="/WEB24/encodingServlet" method="get">
<input type="text" name="username">
<input type="submit" value="提交">
</form>
</body>
</html>

2.创建一个servlet用于获取表单数据 并输出

package com.cc.servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/**
* Servlet implementation class EncodingServlet
*/
@WebServlet("/encodingServlet")
public class EncodingServlet extends HttpServlet {
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String parameter = request.getParameter("username");
System.out.println(parameter); } /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}}

3.创建过滤器,并增强request对象解决乱码

package com.cc.filter;import java.io.IOException;
import java.io.UnsupportedEncodingException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;public class EncodingFilter implements Filter{ @Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// TODO Auto-generated method stub
//request.setCharacterEncoding("UTF-8"); //被增强的对象
HttpServletRequest req = (HttpServletRequest) request;
EnhanceRequest enhanceRequest = new EnhanceRequest(req); chain.doFilter(enhanceRequest, response); }
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub }
@Override
public void destroy() {
// TODO Auto-generated method stub } class EnhanceRequest extends HttpServletRequestWrapper{
private HttpServletRequest request; public EnhanceRequest(HttpServletRequest request){
super(request);
this.request=request;
} //对getParameter增强
public String getParameter(String name){
String parameter=request.getParameter(name);//乱码 try {
parameter=new String(parameter.getBytes("iso8859-1"),"UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return parameter;
}
}}

4.编写web.xml

<filter>
<filter-name>encodeFilter</filter-name>
<filter-class>cn.cc.filter.EncodingFilter </filter-class> </filter> <filter-mapping>   <filter-name>encodeFilter</filter-name>   <url-pattern>/*</url-pattern> </filter-mapping>

5.控制台分别输出    处理前和处理后的输出

通过过滤器和增强request对象解决get提交请求服务器端乱码。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,951
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,477
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,290
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,107
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,739
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,773