理解 Servlet 的工作原理,掌握 Servlet 的应用开发方法;掌握常见 Servlet ;
(一)用 Servlet 获取表单数据
package servlet;import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet(urlPatterns = {"/accept"})
public class accept extends HttpServlet {public String codeToString(String str) {//处理中文字符串的函数String s = str;try {byte tempB[] = s.getBytes("ISO-8859-1");s = new String(tempB);return s;} catch (Exception e) {return s;}}public void init(ServletConfig config) throws ServletException {super.init(config);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
//设置mimeresponse.setContentType("text/html;charset=GB2312");PrintWriter out = response.getWriter();out.println("接收新用户注册 ");out.println("这是新用户注册所提交的数据:
");out.println("用户名是:" + codeToString(request.getParameter("username")) + "
");out.println("密码是:" + codeToString(request.getParameter("userpassword")) + "
");out.println("性别是:" + codeToString(request.getParameter("sex")) + "
");out.println("出生年月是:" + request.getParameter("year") + request.getParameter("month") + request.getParameter("day") + "
");out.println("电子邮箱是:" + request.getParameter("email") + "
");out.println("家庭住址是:" + codeToString(request.getParameter("address")) + "
");out.println(" ");}
}
register.jsp
<%@ page contentType="text/html;charset=gb2312" %>
新用户注册
运行结果:
过滤器是 web 服务器上的组件,它们对客户和资源之间的请求和响应进行过滤。
过滤器的工作原理是:当servlet容器接收到对某个资源的请求,它要检查是否有过滤器与之关联。如果有过滤器与该资源关联,servlet容器将把该请求发送给过滤器。在过滤器处理完请求后,它将做下面3件事:
过滤器 API 主要包括:Filter、FilterConfig 和 FilterChain 接口。
编写一个过滤器改变请求编码
【步骤 1】编写一个 loginform.html 文件,代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
使用过滤器改变请求编码
请输入用户名和口令:
【步骤 2】编写处理请求参数的 Servlet
package servlet;import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;public class CheckParamServlet extends HttpServlet {public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {String name = request.getParameter("name");String pass = request.getParameter("pass");response.setContentType("text/html;charset=gb2312");PrintWriter out = response.getWriter();out.println("Param Test ");out.println("你的用户名为:" + name + "
");out.println("你的口令为:" + pass + "
");out.println("