1.创建字符编码过滤器对象,名称为CharactorFilter类。该类实现了javax.servlet.Filter,并在都Filter()方法中对请求中的字符编码格式进行设置。代码如下:
package com.lyq.CharactorFilter;
import java.io.IOException;
import javax.servlet.*;
public class CharactorFilter implements Filter {
public CharactorFilter() {
// TODO Auto-generated constructor stub
}
String encoding = null;// 字符编码
public void init(FilterConfig filterCongig) throws ServletException {
encoding = filterCongig.getInitParameter("encoding");// 获取初始化参数
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
if (encoding != null) {// 判断字符编码是否为空
request.setCharacterEncoding(encoding);// 设置request字符编码
response.setContentType("text/html;charset=" + encoding);// 设置response字符编码
chain.doFilter(request, response);
}
}
public void destroy() {
encoding=null;
}
}
2.创建完过滤器后,还需要对过滤器进行配置才可以正常使用(配置路径可能有所不同,博主如下)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>Eleven</display-name>
<filter>
<filter-name>CharactorFilter</filter-name>
<filter-class>com.lyq.CharactorFilter.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>/index1.jsp</url-pattern><!-- URL映射 -->
</filter-mapping>
</web-app>
3.创建实例index1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*,Javabean.Demo"%>
<jsp:useBean id="user" class="Javabean.Demo" scope="request">
<jsp:setProperty name="user" property="*" />
</jsp:useBean>
<% request.setCharacterEncoding("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>EL输出用户信息</title>
</head>
<body bgcolor="yellow">
<form action="index1.jsp" method="post">
<table>
<tr>
<td colspan="2" align="center"><b>用户信息登入</b></td>
</tr>
<tr>
<td align="reight">用户名:</td>
<td align="left"><input type="text" name="username"></td>
</tr>
<tr>
<td align="reight">密 码:</td>
<td align="left"><input type="password" size="21" name="password"></td>
</tr>
<tr>
<td align="reight">年 龄:</td>
<td align="left"><input type="text" name="age"></td>
</tr>
<tr>
<td align="center"><input type="submit" name="Submit"
value="提交"></td>
<td align="center"><input type="reset" name="Reset" value="重置"></td>
</tr>
<br>
<tr>
<td align="reight">通过JavaBean获得参数的方法</td>
<td align="center">${user.username}</td>
<td align="center">${user.password}</td>
<td align="center">${user.age}</td>
</tr>
<tr>
<td align="reight">方法一:通过param对象获得参数</td>
<td align="center">${param.username}</td>
<td align="center">${param.password}</td>
<td align="center">${param.age}</td>
</tr>
<tr>
<td align="reight">方法二:通过param对象获得参数</td>
<td align="center">${param['username']}</td>
<td align="center">${param['password']}</td>
<td align="center">${param['age']}</td>
</tr>
</table>
</form>
</body>
</html>
运行结果如下