一、什么是Servlet
Servlet (java服务器小程序)是一个用 Java 编写的程序,此程序在服务器上运行以处理客户端请求。
二、Servlet的配置
只有 在web.xml中部署Servlet后才能够使用Servlet ,格式为:
<servlet>
<servlet-name>firstservlet</servlet-name>
<servlet-class>/FirstServlet</servlet-class>
</servlet>
<servlet-mapping> (对应的名称必须一致)
<servlet-name>firstservlet</servlet-name>
<url-pattern>/firstservlet</url-pattern>
</servlet-mapping>
三、常用的对象和接收客户的参数
1、Servlet中常用对象有:request,response,out等
2、接收客户的参数的方法有:getParameter()和getParameterValues(),getParameterNames();
1)当接收的参数个数为一时,用request.getParameter("参数名称") 必须与客户端的名称一致。
2)当接收参数多个用request.getParameterValues("参数名称"),比如:复选框
3)当不知道接收的参数是什么,用getParameterNames();
四、Servlet的转发
实现转发有三种方式:include(),forward(),sendRedirect(),其中前面2个要用到javax.servlet.RequestDispatcher接口。
1)request.getRequestDispatcher("url").include(request,response);包含关系
2) request.getRequestDispatcher("url").forward(request,response);转发关系
3)response.sendRedirect("url");重定向
五、Servlet运行参数的配置
我们可以在web.xml中配置对应的Servlet中加入配置,然后在Servlet中通过getInitParameter(String name)传入参数名,得到配置值。
<init-param>
<param-name>userName</param-name>
<param-value>likai</param-value>
</init-param>
<init-param>
<param-name>pwd</param-name>
<param-value>123456</param-value>
</init-param>
那么在对应的Servlet的中取得参数:
String initName=this.getInitParameter("userName");
String initPwd=this.getInitParameter("pwd");
因为只有在对应的Servlet中取,因此设置好的运行时参数只有在对应的Servlet使用。
六、get和post乱码问题
1、当提交页面的方法为get时,需要在每一个收到中文的Servlet对中文内容进行重新编码,如:
s=new String(s.getBytes("ISO-8859-1"),"GBK");
2、当提交页面的方法为post时,可以通过过滤器统一解决,使后台的输入输出都支持中文。