多看,多学习,加深记忆
初始页面
package cmo.xzy;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/tijiao")
public class Welcome extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter out=resp.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset=\"UTF-8\">");
out.println("<title>servlet</title>");
out.println("</head>");
out.println("<body>");
String str=req.getParameter("uname");
System.out.println(str);
out.println("<h1>Welcome,"+str+"</h1>");
out.println(" </body>");
out.println(" </html>");
out.close();
}
}
重写getParamter()
package cmo.xzy;
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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jdt.internal.compiler.ast.ThisReference;
@WebFilter("/*")
public class EncodeingFilter implements Filter {
FilterConfig fc;
@Override
public void destroy() {
// TODO 自动生成的方法存根
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException {
HttpServletRequest req=(HttpServletRequest)arg0;
HttpServletResponse resp=(HttpServletResponse)arg1;
String encode=null!=fc.getInitParameter("encode")?fc.getInitParameter("encode"):"utf-8";
MyRequest my=new MyRequest(req, encode);
arg2.doFilter(my, resp);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
this.fc=arg0;
}
}
class MyRequest extends HttpServletRequestWrapper
{
private String encode;
public MyRequest(HttpServletRequest request,String encode) {
super(request);
this.encode=encode;
}
@Override
public String getParameter(String name) {
String string=null;
String org=super.getParameter(name);
if(org!=null)
{
try {
byte[] bytes = org.getBytes("iso-8859-1");//转成单字节编码
string=new String(bytes,encode);
} catch (UnsupportedEncodingException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
return string;
}
}
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>
<form action="tijiao" method="post">
名字:<input type="text" name="uname"><br/>
<input type="submit" value="提交">
</form>
<img src="img/pic03.jpg" title="图片" />
</center>
</body>
</html>
web.xml配置
<?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_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>servlet18</display-name>
<context-param>
<param-name>encode</param-name>
<param-value>utf-8</param-value>
</context-param>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>